救火必備linux命令小結(一)------查問題
線上查問題的時候有些命令是必備,有必要把一些常用命令總結一下(這類命令和相關參數相當多,只總結自己常用得到的),查找問題一般可以分為系統參數、性能參數、進程、內存、網絡、存儲、內存和jvm這麼幾類:
系統參數
cat /proc/cpuinfo cpu相關參數
cat /proc/meminfo 內存相關參數
cat /proc/loadavg 負載情況
性能參數
1)top
M:按內存使用排序
P:按CPU占用排序
1:顯示各CPU的使用情況
k:kill進程
o:更多排序規則
回車:刷新數據
2)ulimit
ulimit -a:顯示本用戶的系統限制參數
ulimit -Hn <num>:更改最大Hard open file數
ulimit -Sn <num>:更改最大Soft open file數
3)vmstat
vmstat 5 -S m:以5秒的數據刷新vmstat數據(單位為m)
進程
1)ps
ps aux:顯示所有用戶進程詳情
ps -ef:顯示所有用戶進程詳情另一種風格
如果顯示不全可以通過-w加寬,如ps aux -www
網絡
1)netstat
netstat -na:顯示所有網絡連接
netstat -nap:顯示所有網絡連接,並帶上進程相關信息
netstat -nat:顯示所有tcp類型的網絡連接
netstat -ln:顯示所有監聽狀態的網絡連接
存儲
1)df -h:硬盤存儲總體情況
2)du --max-depth=1 -h <路徑>:指定路徑下所有文件夾的大小(遞歸一層)
3)du -sh <路徑>:指定目錄的大小
內存
free -m
值得注意的是:空閒內存=free+buffers+cached=total-used
JVM
1)jstat
jstat -gccapacity <jpid>:JVM各區的剩余狀態
jstat -gcutil <jpid>:JVM各區的占用情況
jstat -gccause <jpid>:jstat -gcutil基礎加上gc的原因
另外可以指定更新頻率,如-h5 1s:每一秒更新一次,並每隔5條加上header顯示
2)jps
目前正在運行中的java進程
3)jmap
jmap -dump:format=b,file=jmap.log <jpid>:生成heap dump文件
jmap -heap <jpid>:顯示jvm heap總體情況
jmap -histo:live <jpid> :顯示類實例占用內存情況
4)jstack
jstack -l <jpid>:顯示線程阻塞/死鎖情況