知識點051-判斷linux系統狀態命令彙總

系統狀態信息查看

top (服務器進程,負載,cpu,內存狀況)

參數 解析
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 只顯示一屏信息,供管道調用

vmstat(進程,磁盤,cpu,內存狀況)

參數 解析
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(單個CPU狀況)

參數 解析
mpstat -P ALL 查看全部CPU的平均狀況
mpstat -P 2 查看指定CPU的狀況

pidstat(單個進程的狀況)

yum install -y sysstat  nginx

參數 解析
pidstat -d -p 3679

kB_rd/s - 任務從硬盤上的讀取速度(kb)
kB_wr/s - 任務向硬盤中的寫入速度(kb)
kB_ccwr/s - 任務寫入磁盤被取消的速率(kb)express

pidstat -r -p 3679

minflt/s - 從內存中加載數據時每秒出現的小的錯誤的數目,這些不要求從磁盤載入內存頁面。
majflt/s - 從內存中加載數據時每秒出現的較大錯誤的數目,這些要求從磁盤載入內存頁面。
VSZ - 虛擬容量:整個進程的虛擬內存使用(kb)
RSS - 長期內存使用:任務的不可交換物理內存的使用量(kb)緩存

pidstat -r 2 5 該命令比較容易定爲出問題的進程
pidstat -urd -h 統計全部數據一塊兒打印出來
pidstat -w -p 3679

Cswch/s - 每秒主動任務上下文切換數量
Nvcswch/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的更多信息

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時間的比例
%nice - 經過nice改變了進程調度優先級的進程,在用戶模式下消耗的CPU時間的比例
%system - 系統模式下消耗的CPU時間的比例
%iowait - CPU等待磁盤I/O致使空閒狀態消耗的時間比例
%steal - 利用Xen等操做系統虛擬化技術,等待其它虛擬CPU計算佔用的時間比例
%idle - CPU空閒時間比例

sar -q

(系統平均負載)

runq-sz - 運行隊列的長度(等待運行的進程數)
plist-sz - 進程列表中進程(processes)和線程(threads)的數量

sar -r

(內存和交換空間)

kbmemfree - 這個值和free命令中的free值基本一致,因此它不包括buffer和cache的空間
kbmemused - 這個值和free命令中的used值基本一致,因此它包括buffer和cache的空間
%memused - 物理內存使用率,這個值是kbmemused和內存總量(不包括swap)的一個百分比
kbbuffers和kbcached - 這兩個值就是free命令中的buffer和cache
kbcommit - 保證當前系統所須要的內存,即爲了確保不溢出而須要的內存(RAM+swap)
%commit - 這個值是kbcommit與內存總量(包括swap)的一個百分比

sar -W

(查看頁面交換髮生情況)

pswpin/s - 每秒系統換入的交換頁面(swap page)數量
pswpout/s - 每秒系統換出的交換頁面(swap page)數量

sar -v 10 3

(每10秒採樣一次,連續採樣3次,觀察覈心表狀態)

 

dentunusd - 目錄高速緩存中未被使用的條目數量
file-nr - 文件句柄(file handle)的使用數量
inode-nr - 索引節點句柄(inode handle)的使用數量
pty-nr - 使用的pty數量

 

sar -n SOCK 1 3

(針對socket進行彙報)

 

totsck - 被使用的socket的總數目
tcpsck - 當前正在被使用於TCP的socket數目
udpsck - 當前正在被使用於UDP的socket數目
rawsck - 當前正在被使用於RAW的socket數目
ip-frag - 當前的IP分片的數目

sar -n EDEV 1 3

(網絡數據包使用狀況,EDEV失敗的狀況,DEV正確的狀況)

rxerr/s - 每秒鐘接收到的損壞的包的數目
txerr/s - 當發送包時,每秒鐘發生的錯誤數
coll/s - 當發送包時,每秒鐘發生的衝撞(collisions)數(這個是在半雙工模式下才有)
rxdrop/s - 因爲緩衝區滿,網絡設備接收端,每秒鐘丟掉的網絡包的數目
txdrop/s - 因爲緩衝區滿,網絡設備發送端,每秒鐘丟掉的網絡包的數目
txcarr/s - 當發送數據包時,每秒鐘載波錯誤發生的次數
rxfram/s - 在接收數據包時,每秒鐘發生的幀對齊錯誤的次數
rxfifo/s - 在接收數據包時,每秒鐘緩衝區溢出錯誤發生的次數
txfifo/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 的文件並刪除
相關文章
相關標籤/搜索