伺服器問題 排查思路
一.儘可能搞清楚問題的前因後果
1.故障是什麼時候發現的?
2.故障的表現是什麼?無響應?報錯?
3.最後一次對整個平臺進行更新的內容是什麼(程式碼、伺服器等)
二.當前有誰在,做過什麼操作
1. w/who
2. last
3. history
三.現在執行的程序有什麼
1. pstree -a //以樹狀圖顯示程序見的關係
2. ps -aux
四.監聽的網路服務
1. netstat -nalp
2.netstat -ntlp
3.netstat -nulp
-n或--numeric 直接使用IP地址,而不通過域名伺服器。
-a或--all 顯示所有連線中的Socket。
-l或--listening 顯示監控中的伺服器的Socket。
-p或--programs 顯示正在使用Socket的程式識別碼和程式名稱。
-t或--tcp 顯示TCP傳輸協議的連線狀況。
-u或--udp 顯示UDP傳輸協議的連線狀況。
五. 記憶體 CPU 磁碟空間
1.記憶體
(1) free -m
第一行 : 記憶體總數 已使用記憶體數 空閒記憶體數 廢棄記憶體數 快取記憶體數 快取記憶體數
第二行: - buffers/cache: 已使用記憶體數 (指的第一行中的used – buffers – cached)
+ buffers/cache: 空閒記憶體數(指的第一行中的free + buffers + cached)
第三行: 指交換分割槽, Linux的Swap類似於Windows的虛擬記憶體,就是把一部分硬碟空間虛擬成記憶體使用,用來解決記憶體容量不足的問題。如果有使用到Swap,說明伺服器該升級配置了。
2.CPU
(1)uptime
系統時間 系統執行時間 已登入使用者的數量 系統的平均負載量: 過去一分鐘 五分鐘 十五分鐘
注:有一種說法,當load avarage <3 系統良好,大於5 則有嚴重的效能問題
(2)top
第一行同uptime
第二行為程序的資訊
總程序數 正在執行的程序數 睡眠程序數 停止程序數 殭屍程序數
第三行為CPU資訊
us: 使用者空間佔用CPU百分比
sy 核心空間佔用CPU百分比
ni 使用者程序空間內改變過優先順序的程序佔用CPU百分比
id 空閒CPU百分比 //比較重要
wa 等待輸入輸出的CPU時間百分比
第四、五行為記憶體資訊
Mem : 8169876 k total , 7686472 k used , 483404 k free , 35272 k buffers
實體記憶體總量 使用的實體記憶體總量 空閒記憶體總量 用作核心快取的記憶體量 Swap : 4096532 k total , 160 k used , 4096372 k free , 2477532 k cached
交換分割槽總量 使用的交換區總量 空閒交換區總量 緩衝的交換區總量
3.磁碟空間
(1) df -h 顯示目前在Linux系統上的檔案系統的磁碟使用情況統計
檔案系統的名稱 總記憶體 使用中的記憶體 可使用的記憶體 使用的記憶體佔總記憶體的百分比 掛載點
(2) du -sh * 檢視當前資料夾下所有目錄大小
六.io效能
1.iotop
讀取速度 寫入速度
2. dstat --top-mem --top-io --top-cpu 檢視當前佔用記憶體、io、CPU最高的程序資訊