排查線上問題必備的 6 個 Linux 命令!
1、top
相當(dāng)于Windows任務(wù)管理器
可以看到,輸出結(jié)果分兩部分,前5行是總覽,下面是具體的進(jìn)程資源占用情況。
下面逐行看一下
第1行
top - 18:14:58 up 112 days, 1:35, 1 user, load average: 0.00, 0.10, 0.11
依次表示:當(dāng)前時間、系統(tǒng)已經(jīng)運(yùn)行的時間、當(dāng)前登錄的用戶數(shù)、系統(tǒng)在過去的1分鐘,5分鐘,15分鐘的負(fù)載
PS:從這一行我們可以知道以下信息:
- 當(dāng)前時間是18:14:58
- 系統(tǒng)運(yùn)行了112天1小時35分鐘
- 當(dāng)前有1個用戶登錄
- 在過去1分鐘,5分鐘,15分鐘的負(fù)載分別是0.00, 0.10, 0.11
負(fù)載超過1,則表示超負(fù)荷
第2行
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
進(jìn)程信息
- total 進(jìn)程總數(shù)
- running 運(yùn)行中的進(jìn)程數(shù)
- sleeping 睡眠中的進(jìn)程數(shù)
- stopped 停止的進(jìn)程數(shù)
- zombie 僵尸進(jìn)程數(shù)
PS:從這一行我們可以知道,當(dāng)前總共225個進(jìn)程
第3行
Cpu(s): 1.8%us, 0.9%sy, 0.0%ni, 97.1%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
CPU使用情況
us :用戶進(jìn)程占用CPU百分比
sy :內(nèi)核進(jìn)程占用CPU百分比
ni :改變過優(yōu)先級的進(jìn)程占用CPU百分比
id :空閑CPU百分比
wa :IO等待的進(jìn)程占用CPU百分比
hi :硬中斷占用CPU的百分比
si :軟中斷占用CPU的百分比
st :
第4行
Mem: 32879852k total, 23633040k used, 9246812k free, 311552k buffers
物理內(nèi)存使用情況
- total 總的內(nèi)存大小
- used 已使用
- free 未使用
- buffers 內(nèi)核緩沖區(qū)
可用內(nèi)存 = free + buffers + cached
第5行
Swap: 4194300k total, 255104k used, 3939196k free, 10422508k cached
虛擬內(nèi)存使用情況
其余行
2、free -m
查看已使用和未使用的內(nèi)存情況
Mem total = used + free
Swap total = used + free
可用內(nèi)存 = free + buffers + cached
(-buffers/cache) used內(nèi)存數(shù) = Mem行中的 used – buffers – cached
(+buffers/cache) free內(nèi)存數(shù) = Mem行中的 free + buffers + cached
3、iostat
Java 程序員必須掌握的常用 Linux 命令
格式:iostat [ 選項(xiàng) ] [ <時間間隔> [ <次數(shù)> ]]
示例:
iostat -d
iostat -d 2 2
iostat -x 1 2
4、netstat
要特別關(guān)注一下“ESTABLISHED”的數(shù)量,如果ESTABLISHED越多,表示建立的連接越多,如果一直居高不下,那么就要引起注意了,因?yàn)橄到y(tǒng)對打開的連接數(shù)是有限制的。另外,Linux 系列面試題整理好了,微信搜索Java技術(shù)棧,在后臺發(fā)送面試可以獲取哦。
常見應(yīng)用:
1、查看連接數(shù)最多的IP
netstat -na | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c
2、統(tǒng)計(jì)TCP不同狀態(tài)的連接數(shù)
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
5、df -h
查看文件系統(tǒng)磁盤空間使用情況
6、du -sh
查看(計(jì)算)文件大小
還可以這樣:du --max-depth=2 --block-size=M
或者:ll --block-size=M
另外,關(guān)注公眾號Java技術(shù)棧,在后臺回復(fù):面試,可以獲取我整理的 Java/ Linux 系列面試題和答案,非常齊全。