如何快速排查機器負載過高的問題

2021-10-04 06:27:23 字數 1245 閱讀 2881

機器突然莫名其妙的很慢,負載很高,這時候需要如何排查問題出現在哪

1、首先使用 top ,檢視整體的機器情況

2、從上一步可以看出cpu占用高,使用者態和核心態都很高,負載也高,初步判斷是否有指令碼在跑,吃cpu資源,但是圖中的在跑著的程式,%cpu這一項都不是很高,所以有點蹊蹺

然後檢視機器的讀寫情況,看看是不是由很多讀寫操作

3、使用sar -d 1 10 檢視磁碟讀寫情況,發現wr_sec 和 rd_sec都是0,說明沒啥太大的讀寫程式在跑

4、那接下來是檢視網路情況,看看會不會是網路請求多的問題,下圖可以看出,確實有大流量進來,估計是有外部呼叫

5、然後我們用ps檢視下是哪些在跑著的程式占用cpu資源高

ps aux | head -n 1;ps aux| awk ''|sort -k3 | head -n 10

意思是:正在執行的程式,cpu占用排行靠前的10條資訊

上圖可以看出,有很多stress這個命令在跑著,這個是壓測用的,很奇怪,繼續追蹤,找出呼叫這個命令的父程式

ps -ef | grep /usr/local/bin/stress| awk ''| xargs ps -f| head -n 10

ps -ef 的第三列就是父程式的pid,然後傳給 ps -f去查是什麼

上圖看出,是php**在呼叫,又或者可以用 pstree | grep stress

6、然後我們就去搜尋我們的**專案,看看哪個檔案有用到stress這個命令的

排查順序基本是

1、機器的基本情況,top命令

2、機器的io讀寫和網路情況,sar

3、檢視具體是哪個程序有占用資源高的問題,ps

基本上面幾步走完,就能定位到問題的所在,至少知道是哪個程序在搞鬼,接下來就是具體去看這個程序的邏輯即可

如何優化MySQL服務CPU過高的問題

對於jvm引起的cpu過高的問題,已經有很多解決套路了,本文再來分析一下如果是mysql服務cpu過高應該如何排查!可以通過vmstat進行排查,關注使用者空間 us 系統空間 sy io等待 wa 軟硬中斷 in 空閒 id 而系統空間 sy 軟硬中斷 in 一般我們也控制不了,所以主要圍繞us ...

如何排查 Inodes 使用太多的問題

當碰到伺服器 inodes 報警,排查流程如下 作業系統環境 centos6.8 一 使用 df i 檢視那個分割槽用量最多 二 進入該分割槽,使用檔案數量統計指令碼 檔案數量統計指令碼 bin bash for i in ls do file num find i type f print wc ...

如何排查 Inodes 使用太多的問題

當碰到伺服器 inodes 報警,排查流程如下 作業系統環境 centos6.8 一 使用 df i 檢視那個分割槽用量最多 二 進入該分割槽,使用檔案數量統計指令碼 檔案數量統計指令碼 bin bash for i in ls do file num find i type f print wc ...