參數 | 解析 |
---|---|
load average: 1.15, 1.42, 1.44 | 1,5,15分鐘負載狀況,通常參數爲cpu內核數的1-1.5倍以上應關注 |
1 running, 559 sleeping, 0 stopped, 0 zombie | 正在運行、睡眠、中止、殭屍進程的數量,關注殭屍進程的數量 |
%sys | 系統佔用CPU百分比 |
id | CPU空閒率,越接近100%越好 |
top -c | 完整的進程命令顯示 |
top -bn1 | 打印當前的top 進程 |
數字1 | 顯示各個cpu的狀況及個數 |
shift +m | 內存佔用排行 |
shift +p | cpu佔用排行 |
top -bn1 | bn1顯示全部進程信息,top -n 1 只顯示一屏信息,供管道調用 |
參數 | 解析 |
---|---|
r | 表示多少個進程分配給cpunode 通常和cpu個數一塊兒參考,超過CPU的個數就有瓶頸ios |
b | 阻塞的進程,進程阻塞 |
swpd | 虛擬內存已使用的大小,若是大於0,表示機器物理內存不足,可能須要機器內存不足 |
free | 空閒的空間 |
buff | 存儲系統中目錄,權限等緩存 |
cache | 用來記憶咱們打開的文件,給文件作緩衝 |
si | 每秒從磁盤讀入虛擬內存的大小,若是這個值大於0,表示物理內存不夠用或者內存泄露 |
so | 每秒虛擬內存寫入磁盤的大小,若是這個值大於0,同上 |
bi | 設備每秒接收的塊數量,這裏的塊設備是指系統上全部的磁盤和其餘塊設備,默認塊大小是1024byte |
bo | 塊設備每秒發送的塊數量,例如咱們讀取文件,bo就要大於0。bi和bo通常都要接近0,否則就是IO過於頻繁,須要調整 |
in | 每秒CPU的中斷次數,包括時間中斷 |
cs | 每秒上下文切換次數,例如咱們調用系統函數,就要進行上下文切換,線程的切換,也要進程上下文切換,這個值要越小越好 |
us | 用戶CPU時間 |
sy | 系統CPU時間 |
id | 空閒 CPU時間 id+us +sy =100 |
wt | io等待磁盤寫進去 |
參數 | 解析 |
---|---|
mpstat -P ALL | 查看全部CPU的平均狀況 |
mpstat -P 2 | 查看指定CPU的狀況 |
yum install -y sysstat nginx
參數 | 解析 |
---|---|
pidstat -d -p 3679 | kB_rd/s - 任務從硬盤上的讀取速度(kb) |
pidstat -r -p 3679 | minflt/s - 從內存中加載數據時每秒出現的小的錯誤的數目,這些不要求從磁盤載入內存頁面。 |
pidstat -r 2 5 | 該命令比較容易定爲出問題的進程 |
pidstat -urd -h | 統計全部數據一塊兒打印出來 |
pidstat -w -p 3679 | Cswch/s - 每秒主動任務上下文切換數量 |
iostat (磁盤狀況)網絡
參數 | 解析 |
---|---|
iostat -d -k 2 5 | -d 表示顯示設備磁盤的使用狀態socket -k 表示強制使用kilobytes爲單位,若是是-m ,則是Mtcp 2 每2秒刷新函數 6 刷新6次 |
tps | 一次I/O請求 |
kB_read/s | 每秒從設備(drive expressed)讀取的數據量 |
kB_wrtn/s | 每秒向設備(drive expressed)寫入的數據量 |
kB_wrtn | 寫入的總數量數據量 |
kB_wrtn | 寫入的總數量數據量 |
iostat -c 2 5 | 相似mpstat -P ALL 命令,查看cpu 統計信息 |
iostat -d -x -k 2 5 | 多了-x 參數,用於顯示磁盤io的更多信息 |
參數 | 解析 |
---|---|
Mem | 內存的使用狀況 |
Swap | 交換空間 |
total | 系統總共可用的物理內存和交換空間大小 |
used | 已使用的物理內存和交換空間 |
free | 還有多少物理內存和交換空間 |
shared | 被共享的物理內存大小 |
buff/cache | 顯示被buffer和cache使用的物理內存 |
available | availble = free +buffer +cache |
懷疑CPU存在瓶頸,可用 sar -u 和 sar -q 等來查看
懷疑內存存在瓶頸,可用sar -B、sar -r 和 sar -W 等來查看
懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d 等來查看
參數 | 解析 |
---|---|
sar -f /var/log/sa/saxx (追溯系統中xx天的系統運行狀況) |
指定時間段s(start),e(end) sar -f /var/log/sa/saxx -s 00:00:00 -e 23:00:00 -r |
sar -u (CPU資源,磁盤IO) |
%user - 用戶模式下消耗的CPU時間的比例 |
sar -q (系統平均負載) |
runq-sz - 運行隊列的長度(等待運行的進程數) |
sar -r (內存和交換空間) |
kbmemfree - 這個值和free命令中的free值基本一致,因此它不包括buffer和cache的空間 |
sar -W (查看頁面交換髮生情況) |
pswpin/s - 每秒系統換入的交換頁面(swap page)數量 |
sar -v 10 3 (每10秒採樣一次,連續採樣3次,觀察覈心表狀態) |
dentunusd - 目錄高速緩存中未被使用的條目數量
|
sar -n SOCK 1 3 (針對socket進行彙報)
|
totsck - 被使用的socket的總數目 |
sar -n EDEV 1 3 (網絡數據包使用狀況,EDEV失敗的狀況,DEV正確的狀況) |
rxerr/s - 每秒鐘接收到的損壞的包的數目 |
參數 | 解析 |
---|---|
iftop -F 10.0.0.2/32 | 查看某個ip的出入網卡的流量 |
L |
流量刻度顯示 |
依次輸入3 → t → B |
3 根據最近40s統計排序 t 發送和接收合併一行 B 分別查看最近2s 10s 和40s的統計 |
<= | 接收數據 |
=> | 發送數據 |
參數 | 解析 |
---|---|
netstat -lntp | 服務器中運行的端口狀況 |
netstat -ie | 輸出和ifconfig信息同樣 |
netstat -s | 列出全部端口的統計信息 加上(-t和-u)對應tcp和udp |
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn | 網絡鏈接狀態彙總 |
參數 | 解析 |
---|---|
lsof | 列出系統中打開的文件 |
lsof -u xxxx -c nginx | 列出xxxx用戶的nginx進程打開文件的信息 |
lsof -p xxx | 進程號xxx打開文件的信息 |
lsof -i :80 | 打開80端口的信息 |
lsof +d /usr/local | 顯示目錄下被進程開啓的文件 |
lsof +D /usr/local | 同上,目錄下的目錄會被找 |
lsof -g gid | 顯示進程歸屬gid的進程狀況 |
參數 | 解析 |
---|---|
find /data/logs/xxx/ -type f -mtime +3 -iname "*.log" | 找出3天前/data/logs/xxx/ 目錄中爲*.log 的文件 |
find /data/logs/xxx/ -type f -iname "*.log" -exec rm -f {}\; | 找出3天前/data/logs/xxx/ 目錄中爲*.log 的文件並刪除 |