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