Linux性能查詢常用指令
類別 | 監控指令 | 描述 | 備註 |
內存 瓶頸 |
free | 查看內存使用 | |
cpu 瓶頸 |
top -Hp | 查看cpu使用最高的進程 | |
vmstat 3(間隔時間) 100(監控次數) | 查看swap in/out定位性能瓶頸 | 推薦使用 | |
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視圖 |
|
網絡 瓶頸 |
cat /var/log/messages | 查看內核日誌,查看是否丟包 | |
watch more /proc/net/dev |
用於定位丟包,錯包情況, 以便看網絡瓶頸 |
重點關註drop(包被丟棄) 和網絡包傳送的總量, 不要超過網絡上限 |
|
netstat -i | 查看網絡錯誤 | ||
ping ip | 測試網絡性能 | ||
磁盤 瓶頸 |
iostat -x -k -d 1 | 磁盤的io讀寫情況 |
當看到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 java|wc -l | 查看特定進程的數量 | ||
netstat -tln|grep 8080 | 查看端口占用情況 | ||
lsof -i:8080 | 查看端口屬於哪個進程 | ||
cat ***.log | grep ***Exception | wc -l |
統計日誌文件中包含特定異常數量 | ||
jstack -l pid | 用於查看線程是否存在死鎖 | ||
grep -v ‘HTTP/1.1″ 200′ | 取出非200響應碼的URL | ||
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是棧大小 |
Linux性能查詢常用指令