linux的CPU使用率達(dá)到100%的快速定位過程
問題現(xiàn)象
Linux服務(wù)器(操作系統(tǒng)版本是centos7.9)上面部署了若干Java站點(diǎn)服務(wù),突然收到運(yùn)維的CPU異常g告警,到了影響業(yè)務(wù)的情況發(fā)生,經(jīng)初步排查,未出現(xiàn)異常進(jìn)程,排除挖礦病毒的原因。
排查思路
(1)找到最耗CPU的進(jìn)程;
(2)找到最耗CPU的線程;
(3)查看堆棧,定位線程在干嘛,定位對(duì)應(yīng)代碼;
排查步驟
1.找到最耗CPU的進(jìn)程
方法:使用top命令
- 執(zhí)行top -c ,顯示進(jìn)程運(yùn)行信息列表
- 鍵入P (大寫p),進(jìn)程按照CPU使用率排序
2.找到最耗CPU的線程
方法:使用top工具
- top -Hp ,顯示一個(gè)進(jìn)程的線程運(yùn)行信息列表
- 鍵入P (大寫p),線程按照CPU使用率排序
- top -Hp 30365
3.查看堆棧,定位線程在干嘛,定位對(duì)應(yīng)代碼
- 首先,將線程PID轉(zhuǎn)化為16進(jìn)制。
- 工具:printf
- 方法:printf "%x\n" 6080
如上圖,6080對(duì)應(yīng)的16進(jìn)制是0x17c0
之所以要轉(zhuǎn)化為16進(jìn)制,是因?yàn)槎褩@?,線程id是用16進(jìn)制表示的
4.查看堆棧,找到線程在干嘛
- 工具:jstack
- 方法:jstack 30365 | grep '0x17c0' -C5 --color
- 最后,根據(jù)堆棧里的信息,找到對(duì)應(yīng)的代碼.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux下獲取當(dāng)前時(shí)間的相關(guān)函數(shù)
這篇文章主要介紹了linux下獲取當(dāng)前時(shí)間的相關(guān)函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,2023-09-09RHE5服務(wù)器配置-搭建Samba服務(wù)器步驟(圖)
Samba的核心是兩個(gè)守護(hù)進(jìn)程,即smbd和nmbd。服務(wù)器啟動(dòng)到停止期間持續(xù)運(yùn)行,smba監(jiān)聽139TCP端口;nmbd監(jiān)聽137和138UDP端口2013-02-02詳解CentOS安裝tomcat并且部署Java Web項(xiàng)目
本篇文章主要介紹了CentOS安裝tomcat并且部署Java Web項(xiàng)目,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11預(yù)防PHPDDOS的發(fā)包攻擊別人的方法(iis+linux)
最近很多美國VPS客戶被人通過dedecms漏洞等等入侵.導(dǎo)致phpddos 很猖狂,占用大量帶寬,影響網(wǎng)站,浪費(fèi)流量2012-04-04Apache中偽靜態(tài)Rewrite的使用方法和URL重寫規(guī)則表達(dá)式講解
apache中的mod_rewrite模塊提供了一個(gè)基于正則表達(dá)式分析器的重寫引擎來實(shí)時(shí)重寫URL請(qǐng)求,主要的功能就是實(shí)現(xiàn)URL的跳轉(zhuǎn),它的正則表達(dá)式是基于Perl語言??苫诜?wù)器級(jí)的(httpd.conf)和目錄級(jí)的(.htaccess)兩種方式,允許通過它來改變Apache?Web服務(wù)器的配置。2022-11-11linux系統(tǒng)對(duì)外開放3306、8080等端口,防火墻設(shè)置詳解
這篇文章主要介紹了linux系統(tǒng)對(duì)外開放3306、8080等端口,防火墻設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05