最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

core dump 路徑定義以及監(jiān)控

2023-06-13 15:10 作者:SRETalk  | 我要投稿

Core Dump 是什么?

Core Dump 是指進(jìn)程異常退出時(shí),操作系統(tǒng)將進(jìn)程的內(nèi)存狀態(tài)保存到文件中,這個(gè)文件就是 Core Dump 文件,中文一般翻譯為“核心轉(zhuǎn)儲(chǔ)”,哈,看起來(lái)還不如不翻譯。

我們可以認(rèn)為 Core Dump 是“內(nèi)存快照”,但實(shí)際上,除了內(nèi)存信息之外,還有些關(guān)鍵的程序運(yùn)行狀態(tài)也會(huì)同時(shí) dump 下來(lái),例如寄存器信息(包括程序指針、棧指針等)、內(nèi)存管理信息、其他處理器和操作系統(tǒng)狀態(tài)和信息。

Core Dump 有什么用?

一個(gè)是用于排查問(wèn)題,例如程序 crash 了,我們可以通過(guò) gdb 等工具來(lái)分析 core dump 文件,找到問(wèn)題的原因。另一個(gè)是監(jiān)控,我們可以通過(guò)監(jiān)控手段及時(shí)發(fā)現(xiàn)程序 crash 了,及時(shí)處理。

程序自身產(chǎn)生的 Core Dump 文件一般可以用來(lái)分析程序運(yùn)行到哪里出錯(cuò)了。

Linux 平臺(tái)常用的 coredump 文件分析工具是 gdb;Solaris 平臺(tái)用 pstack 和 pflags;Windows 平臺(tái)用 userdump 和 windbg。

測(cè)試生成 Core Dump 文件

這將會(huì)在你當(dāng)前的 shell 下觸發(fā)一個(gè)段錯(cuò)誤,進(jìn)而生成一個(gè) core dump 文件,文件名為 core 或 core.pid,pid 是當(dāng)前 shell 的進(jìn)程號(hào)。

注意,ulimit -c unlimited?是告訴操作系統(tǒng),不要限制 core dump 文件的大小,如果你執(zhí)行?ulimit -c?看到輸出 0,就表示 core dump 文件大小限制為 0 了,也就不會(huì)生成。比如我的機(jī)器環(huán)境:

注意 core file size 那一行,我的環(huán)境是 0,就表示限制了 core dump 文件的生成。

Core Dump 文件路徑定義

在 Linux 下,core dump 文件的路徑是由?/proc/sys/kernel/core_pattern?定義的,如果這個(gè)文件不存在,或者內(nèi)容為空,那么 core dump 文件就會(huì)生成在當(dāng)前目錄下。

上面的輸出表示,core dump 文件會(huì)生成在當(dāng)前目錄下,文件名為 core。

我們可以通過(guò)修改?/proc/sys/kernel/core_pattern?來(lái)定義 core dump 文件的路徑和文件名,例如:

然后,我們重新生成 core dump 文件:

此時(shí),我們會(huì)生成一個(gè)類似這樣的文件:/tmp/cores/core.bash.8539.VM-0-33-debian.1236975953。其中,bash 是進(jìn)程名,8539 是進(jìn)程號(hào),VM-0-33-debian 是主機(jī)名,1236975953 是時(shí)間戳。文件存儲(chǔ)在 /tmp/cores 目錄下。

對(duì)于 core_pattern 的定義,可以使用如下的占位符:

其中,%h?hostname 最好加上,假如我們把 core dump 文件存放在 NFS 上,就可以用?%h?來(lái)區(qū)分 core dump 文件來(lái)自哪個(gè)機(jī)器了。

echo "/tmp/cores/core.%e.%p.%h.%t" > /proc/sys/kernel/core_pattern?這種設(shè)置方式,是臨時(shí)生效,如果機(jī)器重啟,就會(huì)失效。如果想要永久生效,可以修改?/etc/sysctl.conf?文件,添加一行:

然后執(zhí)行?sysctl -p?命令,使配置生效。

Core Dump 文件監(jiān)控

一般來(lái)講,對(duì)于規(guī)范化做的好的公司,core_pattern 是系統(tǒng)部交付機(jī)器的時(shí)候,統(tǒng)一設(shè)置好的,公司所有的機(jī)器的 core_pattern 都是一致的,會(huì)設(shè)置成一個(gè)統(tǒng)一的目錄,例如 /opt/cores,這樣就可以方便地對(duì) core dump 新文件進(jìn)行監(jiān)控了。

這里,推薦大家使用 catpaw(基本介紹參考這里:太卷了,史上最簡(jiǎn)單的監(jiān)控系統(tǒng) catpaw 簡(jiǎn)介),catpaw 從 v0.3.0 版本開始,引入了 mtime 監(jiān)控插件,可以監(jiān)控近期的文件變更,進(jìn)而監(jiān)控新的 core dump 文件的產(chǎn)生。

mtime 插件的配置如下:

上面的意思表示,每 30s 探測(cè)一次,每次探測(cè)最近 3 分鐘內(nèi)是否有文件變更或新文件產(chǎn)生。比如我隨便對(duì)某個(gè)目錄做了測(cè)試,最終輸出的內(nèi)容長(zhǎng)這個(gè)樣子:

總結(jié)

希望本文介紹的內(nèi)容對(duì)你有幫助,愿不吝點(diǎn)贊、在看。如果有其他這類事件監(jiān)控的場(chǎng)景需求,也可以聯(lián)系我,后面都會(huì)一并做到 catpaw 里。

雖然 FlashDuty 有免費(fèi)套餐,如果就是不想用,也可以模仿 FlashDuty 的事件接收接口自己搞個(gè) HTTP Server,接收 catpaw 的事件推送,然后自己處理,比如發(fā)送到釘釘、飛書、郵件等。

enjoy…make a better world :)


core dump 路徑定義以及監(jiān)控的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
松阳县| 章丘市| 景谷| 临海市| 浮梁县| 喀什市| 广西| 霍林郭勒市| 饶阳县| 陆河县| 东海县| 浦北县| 革吉县| 六枝特区| 浮梁县| 凤翔县| 武山县| 淅川县| 玉门市| 霞浦县| 寿宁县| 侯马市| 新化县| 忻城县| 新竹县| 淮滨县| 昂仁县| 南部县| 渝中区| 阳城县| 琼结县| 新巴尔虎左旗| 自贡市| 板桥市| 惠水县| 江都市| 盘锦市| 泽库县| 灵寿县| 上杭县| 阜城县|