共計(jì) 3743 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。
本篇內(nèi)容主要講解“l(fā)inux abrtd 服務(wù)指的是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓丸趣 TV 小編來(lái)帶大家學(xué)習(xí)“l(fā)inux abrtd 服務(wù)指的是什么”吧!
linux abrtd 是一個(gè)守護(hù)進(jìn)程監(jiān)控的應(yīng)用程序崩潰;當(dāng)發(fā)生崩潰時(shí),它將收集的崩潰 application,并采取措施根據(jù)類(lèi)型崩潰 abrt.conf config 文件中的配置中,位于“/etc/abrt”目錄下的有其配置“abrt.conf”等。
問(wèn)題描述
咱們開(kāi)發(fā)環(huán)境的有一個(gè)進(jìn)程特別耗資源,能幫分析下原因嗎?之前場(chǎng)內(nèi)和公有云也出現(xiàn)過(guò)幾次,最終這個(gè)進(jìn)程會(huì)把機(jī)器內(nèi)存打滿(mǎn)宕機(jī)?,F(xiàn)在剛好發(fā)現(xiàn)這個(gè)問(wèn)題現(xiàn)場(chǎng)
解決思路加方法
對(duì)于進(jìn)程跑滿(mǎn)的現(xiàn)象第一件事就是看一下進(jìn)程名,目測(cè)一下 結(jié)束了,第一次見(jiàn)
top -pH 48297 看一下具體進(jìn)程中的哪一個(gè)線程有問(wèn)題 發(fā)現(xiàn)只有一個(gè)進(jìn)程 沒(méi)有線程
ps 看一下這個(gè)服務(wù)的目錄在哪
[root@yq01-kg-section1-bud3 libexec]# ps -ef | grep abrt-hook-ccpp
root 45733 11797 0 12:18 pts/8 00:00:00 grep --color=auto abrt-hook-ccpp
root 48297 2 99 Nov16 ? 15:42:50 /usr/libexec/abrt-hook-ccpp 11 0 8669 0 0 1605530067 e 8669 8669
毫無(wú)頭緒??!開(kāi)始百度搜到了如下
abrtd
abrtd 是一個(gè)守護(hù)進(jìn)程監(jiān)控的應(yīng)用程序崩潰. 當(dāng)發(fā)生崩潰時(shí), 它將收集的崩潰 (核心文件的命令行, etc .)application , 并采取措施根據(jù)類(lèi)型崩潰并根據(jù) abrt.conf config 文件中的配置中. 有插件的各種動(dòng)作: 例如 bugzilla 報(bào)表的崩潰, 將該報(bào)表. 通過(guò) ftp 傳輸或報(bào)表或 scp . 請(qǐng)查看手冊(cè)頁(yè)的相應(yīng)的插件.
abrtd: automatically bug report daemon. 自動(dòng)的 bug 報(bào)告守護(hù)進(jìn)程
linux 調(diào)試程序,最痛苦的就是程序異常宕掉,但是找不到 core 文件,很難定位問(wèn)題。但是有了 core 文件就容易定位多了。
一般是可以通過(guò)在環(huán)境變量中設(shè)置 ulimit -c unlimited。但是現(xiàn)場(chǎng)實(shí)施人員有時(shí)會(huì)忘記設(shè)置這條命令。那么怎么辦呢,可以通過(guò)設(shè)置 linux 的 abrt 服務(wù)來(lái)實(shí)現(xiàn)。
修改 abrt-action-save-package-data.conf 文件
將其修改為:
vi /etc/abrt/abrt-action-save-package-data.conf
# With this option set to yes ,
# only crashes in signed packages will be analyzed.
# the list of public keys used to check the signature is
# in the file gpg_keys
#
OpenGPGCheck = no
# Blacklisted packages
#
BlackList = nspluginwrapper, valgrind, strace, mono-core
# Process crashes in executables which do not belong to any package?
#
ProcessUnpackaged = yes
# Blacklisted executable paths (shell patterns)
#
BlackListedPaths = /usr/share/doc/, /example*, /usr/bin/nspluginviewer, /usr/lib/xulrunner-*/plugin-container
還可以調(diào)整 core 文件的大小:
[root@xx-host2 abrt]# cat abrt.conf
# Enable this if you want abrtd to auto-unpack crashdump tarballs which appear
# in this directory (for example, uploaded via ftp, scp etc).
# Note: you must ensure that whatever directory you specify here exists
# and is writable for abrtd. abrtd will not create it automatically.
#
#WatchCrashdumpArchiveDir = /var/spool/abrt-upload
# Max size for crash storage [MiB] or 0 for unlimited
#
MaxCrashReportsSize = 1000
# Specify where you want to store coredumps and all files which are needed for
# reporting. (default:/var/spool/abrt)
#
# Changing dump location could cause problems with SELinux. See man abrt_selinux(8).
#
#DumpLocation = /var/spool/abrt
# If you want to automatically clean the upload directory you have to tweak the
# selinux policy.
#
DeleteUploaded = no
重啟 abrtd 服務(wù):service abrtd restart
有了 core 文件也需要及時(shí)刪除,通過(guò) abrt-cli list 查看文件的包,然后用 abrt-cli rm【文件包】就可以了。
遇到程序崩潰的時(shí)候 abrt-hook-ccpp 使用 CPU 太多,IO 也太高導(dǎo)致系統(tǒng)跑滿(mǎn)了,干脆停用算了
systemctl stop abrt-ccpp.service
systemctl disable abrt-ccpp.service
systemctl status abrt-ccpp.service
查了一下 systemctl status abrt-ccpp.service 發(fā)現(xiàn)根本就沒(méi)有起這個(gè)服務(wù)
再次百度
usr/libexec/abrt-hook-ccpp 為什么這個(gè)進(jìn)程一直在增加
因?yàn)闊o(wú)法創(chuàng)建 ccpp 文件導(dǎo)致的
需要修改 /etc/abrt/abrt-action-save-package-data.conf 中 ProcessUnpackaged 參數(shù)。
修改 /etc/abrt/abrt-action-save-package-data.conf 中 ProcessUnpackaged 參數(shù)
sed -i s/ProcessUnpackaged = no/ProcessUnpackaged = yes/g /etc/abrt/abrt-action-save-package-data.conf service abrtd restart
修改后還是不行 查看系統(tǒng)日志
Nov 17 13:15:15 yq01-kg-section1-bud3 abrtd: Lock file .lock is locked by process 48297
Nov 17 13:15:15 yq01-kg-section1-bud3 abrtd: Lock file .lock is locked by process 48297
Nov 17 13:15:16 yq01-kg-section1-bud3 abrtd: Lock file .lock is locked by process 48297
Nov 17 13:15:16 yq01-kg-section1-bud3 abrtd: Lock file .lock is locked by process 48297
Nov 17 13:15:17 yq01-kg-section1-bud3 abrtd: Lock file .lock is locked by process 48297
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: abrtd.service stop-sigterm timed out. Killing.
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: abrtd.service: main process exited, code=killed, status=9/KILL
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: Unit abrtd.service entered failed state.
Nov 17 13:15:17 yq01-kg-section1-bud3 systemd: abrtd.service failed.
Nov 17 13:15:17 yq01-kg-section1-bud3 abrtd: Lock file .lock is locked by process 48297
發(fā)現(xiàn)服務(wù)沒(méi)有重啟,而且顯示一直被這個(gè)進(jìn)程鎖死,而這個(gè)進(jìn)程就是那個(gè)占用資源特別多的一個(gè)進(jìn)程
kill -9 48297
重啟服務(wù)
查看服務(wù)狀態(tài)
top 重新看一下進(jìn)程 哦耶!
到此,相信大家對(duì)“l(fā)inux abrtd 服務(wù)指的是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!