Linux性能检查命令总结
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Linux性能检查命令总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                如果你的Linux服務器突然負載暴增,告警短信快發(fā)爆你的手機,如何在最短時間內(nèi)找出Linux性能問題所在?
| 類別 | 監(jiān)控命令 | 描述 | 備注 | 
| 內(nèi)存瓶頸 | free | 查看內(nèi)存使用 | ? | 
| ? | vmstat 3(間隔時間) 100(監(jiān)控次數(shù)) | 查看swap in/out詳細定位是否存在性能瓶頸 | 推薦使用 | 
| ? | sar -r 3 | 和free命令類似,查看內(nèi)存的使用情況,但是不包含swap的情況 | ? | 
| cpu瓶頸 | top -H | 按照cpu消耗高低進行排序 | ? | 
| ? | ps -Lp 進程號 cu | 查看某個進程的cpu消耗排序 | ? | 
| ? | cat /proc/cpuinfo |grep 'processor'|wc -l | 查看cpu核數(shù) | ? | 
| ? | top | 查看cpu總體消耗,包括分項消耗如user,system,idle,nice等消耗 | ? | 
| ? | top 然后shift+h:顯示java線程,然后shift+M:按照內(nèi)存使用進行排序;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的任務數(shù)量 | uninterruptedsleep的任務會被計入cpu load,如磁盤堵塞 | 
| 網(wǎng)絡瓶頸 | cat /var/log/messages | 查看內(nèi)核日志,查看是否丟包 | ? | 
| ? | watch more /proc/net/dev | 用于定位丟包,錯包情況,以便看網(wǎng)絡瓶頸 | 重點關注drop(包被丟棄)和網(wǎng)絡包傳送的總量,不要超過網(wǎng)絡上限 | 
| ? | sar -n SOCK | 查看網(wǎng)絡流量 | ? | 
| ? | netstat -na|grep ESTABLISHED|wc -l? | 查看tcp連接成功狀態(tài)的數(shù)量 | 此命令特別消耗cpu,不適合進行長時間監(jiān)控數(shù)據(jù)收集 | 
| ? | netstat -na|awk'{print $6}'|sort |uniq -c |sort -nr | 看tcp各個狀態(tài)數(shù)量 | ? | 
| ? | netstat -i | 查看網(wǎng)絡錯誤 | ? | 
| ? | ss state ESTABLISHED| wc -l | 更高效地統(tǒng)計tcp連接狀態(tài)為ESTABLISHED的數(shù)量 | ? | 
| ? | cat /proc/net/snmp | 查看和分析240秒內(nèi)網(wǎng)絡包量,流量,錯包,丟包 | 用于計算重傳率tcpetr=RetransSegs/OutSegs | 
| ? | ping ip | 測試網(wǎng)絡性能 | ? | 
| ? | traceroute ip | 查看路由經(jīng)過的地址 | 常用于定位網(wǎng)絡在各個路由區(qū)段的耗時 | 
| ? | dig 域名 | 查看域名解析地址 | ? | 
| ? | dmesg | 查看系統(tǒng)內(nèi)核日志 | ? | 
| 磁盤瓶頸 | iostat -x -k -d 1 | 詳細列出磁盤的讀寫情況 | 當看到I/O等待時間所占CPU時間的比重很高的時候,首先要檢查的就是機器是否正在大量使用交換空間,同時關注iowait占比cpu的消耗是否很大,如果大說明磁盤存在大的瓶頸,同時關注await,表示磁盤的響應時間以便小于5ms | 
| ? | iostat -x | 查看系統(tǒng)各個磁盤的讀寫性能 | 重點關注await和iowait的cpu占比 | 
| ? | iotop | 查看哪個進程在大量讀取IO | 一般先通過iostat查看是否存在io瓶頸,再定位哪個進程在大量讀取IO | 
| ? | df -hl | 查看磁盤剩余空間 | ? | 
| ? | du -sh | 查看磁盤使用了多少空間 | ? | 
| 應用瓶頸 | ps -ef | grep java | 查看某個進程的id號 | ? | 
| ? | ps -ef | grep httpd| wc -l | 查看特定進程的數(shù)量 | ? | 
| ? | cat ***.log | grep ***Exception | wc -l | 統(tǒng)計日志文件中包含特定異常數(shù)量 | ? | 
| ? | jstack -l pid | 用于查看線程是否存在死鎖 | ? | 
| ? | awk'{print $8}' 2017-05-22-access_log|egrep '301|302'| wc -l | 統(tǒng)計log中301、302狀態(tài)碼的行數(shù),$8表示第八列是狀態(tài)碼,可以根據(jù)實際情況更改 | 常用于應用故障定位 | 
| ? | grep 'wholesaleProductDetailNew' cookie_log | awk '{if($10=="200")}'print}' | awk 'print $12' | more | 打印包含特定數(shù)據(jù)的12列數(shù)據(jù) | ? | 
| ? | 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狀態(tài)碼的數(shù)量 | ? | 
| ? | ps -efL | grep [PID] | wc -l | 查看某個進程創(chuàng)建的線程數(shù) | ? | 
| ? | find / -type f -name "*.log" | xargs grep "ERROR" | 統(tǒng)計所有的log文件中,包含Error字符的行 | 這個在排查問題過程中比較有用 | 
| ? | jstat -gc [pid] | 查看gc情況 | ? | 
| ? | jstat -gcnew [pid] | 查看young區(qū)的內(nèi)存使用情況,包括MTT(最大交互次數(shù)就被交換到old區(qū)),TT是目前已經(jīng)交換的次數(shù) | ? | 
| ? | jstat -gcold | 查看old區(qū)的內(nèi)存使用情況 | ? | 
| ? | jmap -J-d64 -dump:format=b,file=dump.bin PID | dump出內(nèi)存快照 | -J-d64防止jmap導致虛擬機crash(jdk6有bug) | 
| ? | -XX:+HeapDumpOnOutOfMemeryError | 在java啟動時加入,當出現(xiàn)內(nèi)存溢出時,存儲內(nèi)存快照 | ? | 
| ? | jmap -histo [pid] | 按照對象內(nèi)存大小排序 | 注意會導致full gc | 
| ? | gcore [pid] | 導出完成的內(nèi)存快照 | 通常和jmap -permstat /opt/**/java gcore.bin 一起使用,將core dump轉(zhuǎn)換成heap dump | 
| ? | -XX:HeapDumpPath=/home/logs -Xloggc:/home/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps | 在Java啟動參數(shù)中加入,打印gc日志 | ? | 
| ? | -server -Xms4000m -Xmx4000m -Xmn1500m -Xss256k -XX:PermSize=340m -XX:MaxPermSize=340m -XX:+UseConcMarkSweepGC | 調(diào)整JVM堆大小 | xss是棧大小 | 
| ? | ? | ? | ? | 
總結(jié)
以上是生活随笔為你收集整理的Linux性能检查命令总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: R语言学习记录:主成分分析的R实现
- 下一篇: 数仓实时数据同步 debezium
