知識點051-判斷linux系統狀態命令彙總
一般和cpu個數一起參考,超過CPU的個數就有瓶頸
mpstat(單個CPU情況)
引數 | 解析 |
---|---|
mpstat -P ALL | 檢視所有CPU的平均情況 |
mpstat -P 2 | 檢視指定CPU的情況 |
pidstat(單個程序的情況)
yum install -y sysstat
引數 | 解析 |
---|---|
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 表示顯示裝置磁碟的使用狀態 -k 表示強制使用kilobytes為單位,如果是-m ,則是M 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的更多資訊 |
free(記憶體情況)
引數 | 解析 |
---|---|
Mem | 記憶體的使用情況 |
Swap | 交換空間 |
total | 系統總共可用的實體記憶體和交換空間大小 |
used | 已使用的實體記憶體和交換空間 |
free | 還有多少實體記憶體和交換空間 |
shared | 被共享的實體記憶體大小 |
buff/cache | 顯示被buffer和cache使用的實體記憶體 |
available | availble = free +buffer +cache |
sar (找出系統的瓶頸)
懷疑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(網絡卡流量)
引數 | 解析 |
---|---|
iftop -F 10.0.0.2/32 | 檢視某個ip的出入網絡卡的流量 |
L |
流量刻度顯示 |
依次輸入3 → t → B |
3 根據最近40s統計排序 t 傳送和接收合併一行 B 分別檢視最近2s 10s 和40s的統計 |
<= | 接收資料 |
=> | 傳送資料 |
netstat(埠相關)
引數 | 解析 |
---|---|
netstat -lntp | 伺服器中執行的埠情況 |
netstat -ie | 輸出和ifconfig資訊一樣 |
netstat -s | 列出所有埠的統計資訊 加上(-t和-u)對應tcp和udp |
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn | 網路連線狀態彙總 |
lsof(當前系統開啟檔案的工具)
引數 | 解析 |
---|---|
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(查詢檔案)
引數 | 解析 |
---|---|
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 的檔案並刪除 | <