Linux伺服器負載暴增和故障排查完全指南
類別 | 監控命令 | 描述 | 備註 |
記憶體瓶頸 | free | 檢視記憶體使用 | |
vmstat 3(間隔時間) 100(監控次數) | 檢視swap in/out詳細定位是否存在效能瓶頸 | 推薦使用 | |
sar -r 3 | 和free命令類似,檢視記憶體的使用情況,但是不包含swap的情況 | ||
cpu瓶頸 | top -H | 按照cpu消耗高低進行排序 | |
ps -Lp 程式號 cu | 檢視某個程式的cpu消耗排序 | ||
cat /proc/cpuinfo |grep ‘processor’|wc -l | 檢視cpu核數 | ||
top | 檢視cpu總體消耗,包括分項消耗如user,system,idle,nice等消耗 | ||
top 然後shift+h:顯示java執行緒,然後shift+M:按照記憶體使用進行排序;shift+P:按照cpu時間排序;shift+T:按照cpu累計使用時間排序 多核cpu,按“1”進入top檢視 | |||
sar -u 3(間隔時間) | 檢視cpu總體消耗佔比 | ||
sar -q | 檢視cpu load | ||
top -b -n 1 | awk ‘{if (NR<=7)print;else if($8==”D”){print;count++}}END{print “Total status D:”count}’ | 計算在cpu load裡面的uninterruptedsleep的任務數量 | uninterruptedsleep的任務會被計入cpu load,如磁碟堵塞 | |
網路瓶頸 | cat /var/log/messages | 檢視核心日誌,檢視是否丟包 | |
watch more /proc/net/dev | 用於定位丟包,錯包情況,以便看網路瓶頸 | 重點關注drop(包被丟棄)和網路包傳送的總量,不要超過網路上限 | |
sar -n SOCK | 檢視網路流量 | ||
netstat -na|grep ESTABLISHED|wc -l | 檢視tcp連線成功狀態的數量 | 此命令特別消耗cpu,不適合進行長時間監控資料收集 | |
netstat -na|awk’{print $6}’|sort |uniq -c |sort -nr | 看tcp各個狀態數量 | ||
netstat -i | 檢視網路錯誤 | ||
ss state ESTABLISHED| wc -l | 更高效地統計tcp連線狀態為ESTABLISHED的數量 | ||
cat /proc/net/snmp | 檢視和分析240秒內網路包量,流量,錯包,丟包 | 用於計算重傳率tcpetr=RetransSegs/OutSegs | |
ping ip | 測試網路效能 | ||
traceroute ip | 檢視路由經過的地址 | 常用於定位網路在各個路由區段的耗時 | |
dig 域名 | 檢視域名解析地址 | ||
dmesg | 檢視系統核心日誌 | ||
磁碟瓶頸 | iostat -x -k -d 1 | 詳細列出磁碟的讀寫情況 | 當看到I/O等待時間所佔CPU時間的比重很高的時候,首先要檢查的就是機器是否正在大量使用交換空間,同時關注iowait佔比cpu的消耗是否很大,如果大說明磁碟存在大的瓶頸,同時關注await,表示磁碟的響應時間以便小於5ms |
iostat -x | 檢視系統各個磁碟的讀寫效能 | 重點關注await和iowait的cpu佔比 | |
iotop | 檢視哪個程式在大量讀取IO | 一般先通過iostat檢視是否存在io瓶頸,再定位哪個程式在大量讀取IO | |
df -hl | 檢視磁碟剩餘空間 | ||
du -sh | 檢視磁碟使用了多少空間 | ||
應用瓶頸 | ps -ef | grep java | 檢視某個程式的id號 | |
ps -ef | grep httpd| wc -l | 檢視特定程式的數量 | ||
cat ***.log | grep ***Exception | wc -l | 統計日誌檔案中包含特定異常數量 | ||
jstack -l pid | 用於檢視執行緒是否存在死鎖 | ||
awk’{print $8}’ 2017-05-22-access_log|egrep ’301|302′| wc -l | 統計log中301、302狀態碼的行數,$8表示第八列是狀態碼,可以根據實際情況更改 | 常用於應用故障定位 | |
grep ‘wholesaleProductDetailNew’ cookie_log | awk ‘{if($10==”200″)}’print}’ | awk ‘print $12′ | more | 列印包含特定資料的12列資料 | ||
grep “2017:05:22″ cookielog | awk ‘($12>0.3){print $12 “–” $8}’ | sort > 目錄地址 | 對apache或者nginx訪問log進行響應時間排序,$12表示cookie log中的12列表示響應時間 | 用於排查是否是由於是某些訪問超長造成整體的RT變長 | |
grep -v ‘HTTP/1.1″ 200′ | 取出非200響應碼的URL | ||
pgm -A -f 應用叢集名稱 “grep “’301 ‘ log檔案地址 | wc -l | 檢視整個叢集的log中301狀態碼的數量 | ||
ps -efL | grep [PID] | wc -l | 檢視某個程式建立的執行緒數 | ||
find / -type f -name “*.log” | xargs grep “ERROR” | 統計所有的log檔案中,包含Error字元的行 | 這個在排查問題過程中比較有用 | |
jstat -gc [pid] | 檢視gc情況 | ||
jstat -gcnew [pid] | 檢視young區的記憶體使用情況,包括MTT(最大互動次數就被交換到old區),TT是目前已經交換的次數 | ||
jstat -gcold | 檢視old區的記憶體使用情況 | ||
jmap -J-d64 -dump:format=b,file=dump.bin PID | dump出記憶體快照 | -J-d64防止jmap導致虛擬機器crash(jdk6有bug) | |
-XX:+HeapDumpOnOutOfMemeryError | 在java啟動時加入,當出現記憶體溢位時,儲存記憶體快照 | ||
jmap -histo [pid] | 按照物件記憶體大小排序 | 注意會導致full gc | |
gcore [pid] | 匯出完成的記憶體快照 | 通常和jmap -permstat /opt/**/java gcore.bin 一起使用,將core dump轉換成heap dump | |
-XX:HeapDumpPath=/home/logs -Xloggc:/home/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps | 在Java啟動引數中加入,列印gc日誌 | ||
-server -Xms4000m -Xmx4000m -Xmn1500m -Xss256k -XX:PermSize=340m -XX:MaxPermSize=340m -XX:+UseConcMarkSweepGC | 調整JVM堆大小 | xss是棧大小 |
相關文章
- 伺服器負載暴漲以後…伺服器負載
- WebSphere的類載入和故障排查Web
- Oracle歸檔日誌暴增排查優化Oracle優化
- 光纖故障診斷和故障排查
- linux定位系統異常負載故障思路Linux負載
- 伺服器網路故障如何排查伺服器
- Linux 中的負載高低和 CPU 開銷並不完全對應Linux負載
- Bumblebee之負載、限流和故障處理實踐負載
- 伺服器的路由故障怎麼排查伺服器路由
- 故障排查
- 伺服器叢集和負載均衡伺服器負載
- 伺服器效能指標(一)——負載(Load)分析及問題排查伺服器指標負載
- Linux systemctl 命令完全指南Linux
- 【Linux】叢集和負載均衡Linux負載
- linux出現故障字符集亂碼故障排查思路Linux
- Linux 系統雙網路卡繫結配置實現負載均衡和故障轉移Linux負載
- 暴風影音宣告:DNS伺服器才是故障源頭DNS伺服器
- 【RAC】RAC中的負載均衡和故障切換--TAF配置負載
- Centos 伺服器系統記憶體故障排查CentOS伺服器記憶體
- 配置 RAC 負載均衡與故障轉移負載
- 伺服器負載均衡伺服器負載
- 伺服器負載分析伺服器負載
- nginx負載伺服器Nginx負載伺服器
- Apache負載伺服器Apache負載伺服器
- rsync 故障排查整理
- 應用故障排查
- Linux 硬體故障排除指南Linux
- linux伺服器平均負載上100,原因分析Linux伺服器負載
- Linux平均負載Linux負載
- Linux CPU負載Linux負載
- Linux CPU 上下文切換的故障排查Linux
- 在Linux中,如何進行系統故障排查?Linux
- 在Linux中,如何進行網路故障排查?Linux
- 減輕伺服器負載的建議和技巧伺服器負載
- 伺服器負載之Nginx伺服器負載Nginx
- php列印負載函式、Linux awk列印負載PHP負載函式Linux
- linux負載均衡總結性說明(四層負載/七層負載)Linux負載
- 優化Linux核心引數提高伺服器負載能力優化Linux伺服器負載