日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用coredump分析實(shí)例程序異常

更新時(shí)間:

coredump是指在程序運(yùn)行過程中發(fā)生異常終止或崩潰時(shí),操作系統(tǒng)將程序的內(nèi)存內(nèi)容轉(zhuǎn)儲(chǔ)到一個(gè)特殊的文件中,以便于后續(xù)的調(diào)試和分析。本文介紹如何為ECI實(shí)例開啟coredump,以便在容器異常終止時(shí)可以查看分析coredump生成的文件,從而定位問題原因,修復(fù)程序異常。

背景信息

在Linux中,如果程序突然異常終止或者崩潰,操作系統(tǒng)會(huì)將程序當(dāng)時(shí)的內(nèi)存狀態(tài)記錄下來,保存在一個(gè)文件中,這種行為就叫做coredump。此時(shí),您可以查看分析coredump生成的core文件,找出問題原因。

Linux中支持coredump(Action為Core)的Signal如下圖所示。

更多信息,請(qǐng)參見coredump file。

功能概述

ECI默認(rèn)關(guān)閉coredump,避免磁盤占用過多而導(dǎo)致業(yè)務(wù)不可用。您可以根據(jù)需要選擇以下一種方式開啟coredump:

  • 方式一:開啟coredump運(yùn)維任務(wù)

    手動(dòng)開啟coredump后,將生成一個(gè)運(yùn)維任務(wù)。在容器運(yùn)行異常終止或者退出時(shí),觸發(fā)coredump生成的core文件將自動(dòng)保存到OSS中。

  • 方式二:自定義設(shè)置core文件保存路徑

    支持自定義設(shè)置core文件保存到外掛存儲(chǔ)中,設(shè)置保存路徑后,將自動(dòng)開啟coredump。在容器運(yùn)行異常終止或者退出時(shí),觸發(fā)coredump生成的core文件,將保存到指定的外掛存儲(chǔ)的路徑下。

說明
  • 方式一便于操作,但有時(shí)效和地域等限制,可用于臨時(shí)調(diào)試和診斷程序。

    • 生成的運(yùn)維任務(wù)為一次性任務(wù),執(zhí)行成功獲取到一次core文件后,將會(huì)關(guān)閉coredump,并且運(yùn)維任務(wù)有一定的期限(12小時(shí)),超出時(shí)間后任務(wù)將會(huì)失效。

    • 不支持以下地域:華北6(烏蘭察布)、華南2(河源)、華南3(廣州)、華東5(南京-本地地域)、菲律賓(馬尼拉)、韓國(guó)(首爾)、泰國(guó)(曼谷)。

  • 方式二需要額外配置外掛存儲(chǔ),在程序運(yùn)行狀態(tài)不穩(wěn)定的情況下,可以采用該方式確保能夠獲取到core文件,但如果程序有問題,反復(fù)重啟可能會(huì)產(chǎn)生大量core文件。

方式一:開啟coredump運(yùn)維任務(wù)

控制臺(tái)

  1. 登錄彈性容器實(shí)例控制臺(tái)

  2. 為ECI實(shí)例開啟coredump。

    1. 單擊目標(biāo)實(shí)例ID,打開實(shí)例詳情頁(yè)面。

    2. 單擊運(yùn)維頁(yè)簽,然后選擇Coredump頁(yè)簽,單擊開啟。

      開啟coredump后,系統(tǒng)將生成一個(gè)運(yùn)維任務(wù),未觸發(fā)coredump時(shí),任務(wù)狀態(tài)為等待中。

      coredump-1

  3. 觸發(fā)coredump。

    連接ECI實(shí)例,在容器內(nèi)執(zhí)行sleep 100命令后按Ctrl+\鍵,觸發(fā)coredump,生成的core文件將自動(dòng)保存到OSS中。coredump2

  4. 下載core文件。

    觸發(fā)coredump生成core文件后,運(yùn)維任務(wù)的狀態(tài)將變?yōu)?b data-tag="uicontrol" id="cfb86c0e7ea9h" class="uicontrol">成功,此時(shí)單擊對(duì)應(yīng)結(jié)果列中的下載即可下載core文件到本地。

    coredump-2

    說明

    如果下載沒有反應(yīng),請(qǐng)檢查瀏覽器的網(wǎng)站權(quán)限設(shè)置。

OpenAPI

  1. 為ECI實(shí)例開啟coredump。

    調(diào)用CreateInstanceOpsTask接口創(chuàng)建運(yùn)維任務(wù),需指定目標(biāo)ECI實(shí)例,然后將OpsType設(shè)為coredump,OpsValue設(shè)為enable,即可開啟coredump。更多信息,請(qǐng)參見CreateInstanceOpsTask

    說明

    指定ECI實(shí)例時(shí),需確保目標(biāo)ECI實(shí)例在創(chuàng)建時(shí)沒有設(shè)置CorePattern。

  2. 觸發(fā)coredump。

    連接ECI實(shí)例,在容器內(nèi)執(zhí)行sleep 100命令后按Ctrl+\鍵,觸發(fā)coredump,生成的core文件將自動(dòng)保存到OSS中。coredump2

  3. 下載Core文件。

    調(diào)用DescribeInstanceOpsRecords接口查看運(yùn)維任務(wù)的結(jié)果,從返回信息的ResultContent中,可以獲取core文件保存在OSS中的地址,訪問該地址即可下載core文件。

方式二:自定義設(shè)置core文件保存路徑

core文件一般用于離線分析問題,因此設(shè)置core文件的保存路徑時(shí),一般采用外掛存儲(chǔ),而不是保存在容器本地路徑,避免容器退出而丟失core文件。ECI支持自定義設(shè)置core文件保存路徑,設(shè)置后將自動(dòng)開啟coredump。

調(diào)用CreateContainerGroup接口創(chuàng)建ECI實(shí)例時(shí),可傳入CorePattern參數(shù)來設(shè)置core文件保存路徑。相關(guān)參數(shù)說明如下,更多信息,請(qǐng)參見CreateContainerGroup。

說明

示例以NFSVolume作為示例,Volume相關(guān)參數(shù)請(qǐng)根據(jù)實(shí)際Volume類型進(jìn)行配置。

名稱

類型

示例值

描述

CorePattern

String

/data/dump-a/core

自定義設(shè)置Core dump文件的保存目錄。

重要

配置的路徑不能以|開頭,即不能通過coredump來配置可執(zhí)行程序。

Volume.N.Name

String

volume1

數(shù)據(jù)卷名稱。

Volume.N.Type

String

NFSVolume

數(shù)據(jù)卷類型。本文以NFSVolume為例。

Volume.N.NFSVolume.Path

String

/dump

NFS數(shù)據(jù)卷的路徑。

Volume.N.NFSVolume.Server

String

143b24****-gfn3.cn-beijing.nas.aliyuncs.com

NFS服務(wù)器地址。

如果使用阿里云文件存儲(chǔ)NAS,則此處為NAS文件系統(tǒng)的掛載點(diǎn)地址。

Container.N.VolumeMount.N.Name

String

volume1

要掛載到容器的數(shù)據(jù)卷的名稱,對(duì)應(yīng)Volume.N.Name的值。

Container.N.VolumeMount.N.MountPath

String

/data/dump-a/

掛載目錄。

容器掛載目錄下的內(nèi)容會(huì)被數(shù)據(jù)卷的內(nèi)容直接覆蓋,請(qǐng)準(zhǔn)確填寫。

以使用NAS作為外掛存儲(chǔ)為例,示例如下:

  1. 創(chuàng)建一臺(tái)ECI實(shí)例A,掛載NAS并設(shè)置core文件保存路徑。

    調(diào)用CreateContainerGroup接口創(chuàng)建ECI實(shí)例A時(shí)傳入以下參數(shù),將NAS的/dump/目錄掛載到容器的/data/dump-a/目錄,將core文件保存路徑設(shè)置為/data/dump-a/core。

    ContainerGroupName=test-a
    SecurityGroupId=sg-bp1daxpbz9lzpvvc****
    VSwitchId=vsw-bp1gds63lmlm7ib05****
    # 聲明數(shù)據(jù)卷
    Volume.1.Name=volume1
    Volume.1.Type=NFSVolume
    Volume.1.NFSVolume.Path=/dump/
    Volume.1.NFSVolume.Server=143b24****-gfn3.cn-beijing.nas.aliyuncs.com
    # 為容器掛載數(shù)據(jù)卷
    Container.1.Name=nginx
    Container.1.Image=registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
    Container.1.VolumeMount.1.Name=volume1
    Container.1.VolumeMount.1.MountPath=/data/dump-a/
    # 設(shè)置core文件保存路徑
    CorePattern=/data/dump-a/core
  2. 在實(shí)例A的容器任意目錄下觸發(fā)coredump。

    如下示例,在容器內(nèi)執(zhí)行sleep 100命令后同時(shí)按Ctrl鍵和\鍵,觸發(fā)coredump后,core文件已保存到容器的/data/dump-a/路徑下。

    coredump4

  3. 釋放ECI實(shí)例A。

  4. 將同一NAS掛載到另一臺(tái)ECI實(shí)例B。

    調(diào)用CreateContainerGroup接口創(chuàng)建ECI實(shí)例B時(shí)傳入以下參數(shù),將同一NAS的/dump/目錄掛載到容器的/data/dump-b/目錄。

    ContainerGroupName=test-nas-b
    SecurityGroupId=sg-bp1daxpbz9lzpvvc****
    VSwitchId=vsw-bp1gds63lmlm7ib05****
    # 聲明數(shù)據(jù)卷
    Volume.1.Name=volume1
    Volume.1.Type=NFSVolume
    Volume.1.NFSVolume.Path=/dump/
    Volume.1.NFSVolume.Server=143b24****-gfn3.cn-beijing.nas.aliyuncs.com
    # 為容器掛載數(shù)據(jù)卷
    Container.1.Name=nginx
    Container.1.Image=registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
    Container.1.VolumeMount.1.Name=volume1
    Container.1.VolumeMount.1.MountPath=/data/dump-b/
  5. 在實(shí)例B的容器中查看core文件。

    如下示例,在容器的/data/dump-b/路徑下可以看到core文件,core文件保存到外掛存儲(chǔ)后,并沒有隨著實(shí)例A的釋放而丟失,您仍可以查看分析core文件。

    coredump5

常見問題

觸發(fā)coredump后,在控制臺(tái)下載core文件沒有反應(yīng),怎么辦?

如果下載沒有反應(yīng),請(qǐng)檢查瀏覽器的網(wǎng)站權(quán)限設(shè)置。例如Chrome瀏覽器可以參考以下方式開啟權(quán)限:

  1. 打開彈性容器實(shí)例控制臺(tái),單擊瀏覽器地址欄前面的瀏覽器圖標(biāo)圖標(biāo),選擇網(wǎng)站設(shè)置。瀏覽器設(shè)置1

  2. 將配置項(xiàng)不安全內(nèi)容改為允許。瀏覽器設(shè)置2