天天看點

Linux 系統監控常用指令

簡介

列舉作業系統級監控常用的幾個方法,建議收藏使用

CPU

top 指令可用于監控系統整體負載,包括cpu、記憶體使用等,能夠實時顯示系統中各個程序的資源占用狀況

輸出樣例

top - 19:37:41 up 192 days,  9:14,  1 user,  load average: 0.39, 0.28, 0.27
Tasks: 126 total,   1 running, 125 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:     32113M total,    11351M used,    20762M free,      266M buffers
Swap:     4091M total,        0M used,     4091M free,      304M cached

  PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND                                                                                                                                                                     
    1 root      20   0 25280 1016  968 S      0  0.0   2:37.44 init                                                                                                                                                                         
    2 root      20   0     0    0    0 S      0  0.0   0:02.40 kthreadd                                                                                                                                                                     
    3 root      20   0     0    0    0 S      0  0.0   3:28.59 ksoftirqd/0                                                                                                                                                                  
    5 root      20   0     0    0    0 S      0  0.0   0:00.59 kworker/u:0                                                                                                                                                                  
    6 root      RT   0     0    0    0 S      0  0.0   0:11.39 migration/0            

名額說明

  • load average: 0.06, 0.60, 0.48

    系統負載,即任務隊列的長度。分别為 1分鐘、5分鐘、15分鐘内的平均值。

  • Tasks

    程序彙總,包括運作中、睡眠、停止、僵屍态的梳理

  • Cpu(s)
名額 說明
0.3% us 使用者空間占用CPU百分比
1.0% sy 核心空間占用CPU百分比
0.0% ni 使用者程序優先級排程CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi 硬體CPU中斷占用百分比
0.0% si 軟中斷占用百分比
0.0% st 虛拟機占用百分比
  • Mem

    記憶體統計,包括實體記憶體、已使用記憶體、空閑記憶體、核心緩存

  • Swap

    交換區統計,包括總量、已使用、空閑量、緩存量

  • 程序清單
PID 程序ID
USER 程序所有者的使用者名
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先級
VIRT 程序使用的虛拟記憶體總量,機關kb。VIRT=SWAP+RES
RES 程序使用的、未被換出的實體記憶體大小,機關kb。RES=CODE+DATA
SHR 共享記憶體大小,機關kb
S 程序狀态(D=不可中斷的睡眠狀态,R=運作,S=睡眠,T=跟蹤/停止,Z=僵屍程序)
%CPU 程序使用的CPU百分比
%MEM 程序使用的實體記憶體百分比
TIME+ 程序使用的CPU時間總計,機關1/100秒
SWAP 程序使用的虛拟記憶體中,被換出的大小,機關kb
CODE 可執行代碼占用的實體記憶體大小,機關kb
DATA 可執行代碼以外的部分(資料段+棧)占用的實體記憶體大小,機關kb
COMMAND 指令名/指令行

按F鍵可以選擇顯示不同的名額,非常詳細

參考文檔

記憶體監控

vmstat 指虛拟記憶體統計(Virtual Meomory Statistics), 是常用的實時系統監控工具。

~-> vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
 r  b   swpd   free   buff  cache     si   so    bi    bo   in   cs us sy id wa st
 0  0    212 21250404 272916 320572    0    0     0     2    0    0  0  0 100  0  0
 0  0    212 21250652 272916 320576    0    0     0     0  535 1061  0  0 100  0  0
 0  0    212 21250652 272916 320576    0    0     0     0  496 1062  0  0 100  0  0
 2  0    212 21250256 272916 320576    0    0     0     0  751 1107  0  0 99  0  0
 0  0    212 21250404 272916 320568    0    0     0     0  496 1056  0  0 100  0  0
 0  0    212 21250404 272916 320568    0    0     0     0  593 1089  0  0 100  0  0
 0  0    212 21250404 272916 320568    0    0     0    56  539 1074  0  0 100  0  0
 0  0    212 21250404 272916 320568    0    0     0     0  589 1137  0  0 100  0  0
 0  0    212 21250404 272916 320564    0    0     0     0  608 1154  0  0 100  0  0
 0  0    212 21250404 272916 320564    0    0     0     0  601 1156  0  0 100  0  0
 1  0    212 21250404 272916 320564    0    0     0     0  611 1155  0  0 100  0  0
 0  0    212 21250404 272916 320564    0    0     0     0  599 1151  0  0 100  0  0           
procs.r 等待cpu時間片的程序數
procs.b 等待資源的程序數,比如等待IO或記憶體交換等
cpu.us 使用者态CPU 時間百分比
cpu.sy 核心态CPU 時間百分比,參考值us+sy<=80%
cpu.wa IO等待所占用的CPU 時間百分比,參考值wa<=30
cpu.id 空閑狀态CPU 時間百分比
cpu.st 虛拟機CPU占用時間百分比,存在超分時可能較高
system.in 裝置中斷數
system.cs 上下文切換次數
memory.swpd 記憶體交換區的記憶體數量(KB)
memory.free 空閑頁的記憶體數量(KB)
memory.buff buffer cache的記憶體數量,一般在塊裝置讀寫使用
memory.cache 作為page cache的記憶體數量,一般作為檔案系統的cache
swap.si 由記憶體進入記憶體交換區數量
swap.so 由記憶體交換區進入記憶體數量
io.bi 從塊裝置讀入的資料量(KB/S)
io.bo 向塊裝置寫入的資料量(KB/S)
關于 linux OOM Killer free 檢視可用記憶體

網絡連接配接

netstat 指令用于顯示各種網絡相關資訊,如網絡連接配接,路由表,接口狀态等。

iotweb@kwe1000111753:~> netstat -ano |head
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State    
tcp        0      0 0.0.0.0:4444            0.0.0.0:*               LISTEN   
tcp        0      0 0.0.0.0:19999           0.0.0.0:*               LISTEN   
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN   
tcp        0      0 0.0.0.0:6380            0.0.0.0:*               LISTEN   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN              

常見用法

  • 檢查出TIME_WAIT的數量
netstat -an | grep -c TIME_WAIT            
  • 檢查全部socket狀态
netstat -nat| awk '{print awk $NF}'|sort|uniq -c|sort -n             
  • 檢查程序及socket數量
netstat -nap| awk '{print awk $NF}'|sort|uniq -c|sort -n             
  • 檢視端口連接配接數
netstat -anp |grep 27071|wc -l           

磁盤使用

iostat 用于監控磁盤的IO吞吐及資源占用情況

指令

iostat -d -x -k 1 10           

-d為檢視磁盤狀況,-k表示以KB為機關,-x表示輸出更多的擴充字段

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.01     8.32    0.49    4.94     6.82    53.08    22.06     0.11   19.68   1.76   0.95
xvde              0.02   841.11   33.24  304.80   331.20  4583.79    29.08     1.67    4.93   1.15  38.76
dm-0              0.00     0.00   33.26 1145.95   331.20  4583.79     8.34     0.30    2.61   0.33  38.81           
rrqm/s 每秒merge的讀取請求數(同一個Block存在merge機制)
每秒merge的寫入請求數(同一個Block存在merge機制)
r/s 每秒送出的讀取請求數
w/s 每秒送出的寫入請求數
await IO請求的平均響應時間,參考值<=10ms
rkB/s 每秒讀取資料量
wkb/s 每秒寫入資料量
avgrq-sz IO平均請求大小(扇區)
avgqu-sz IO平均請求隊列大小
svctm IO請求平均執行時間
%util CPU占用百分比

程序監控

ps指令能夠給出目前系統中程序的快照

  • 查找程序方法
ps -ef |grep nscl           
  • 按cpu占用排序檢視前10程序
-> ps -aux --sort -pcpu |head -n 10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
iotweb    9313  1.0 14.3 6277488 4708752 ?     Sl   Nov03 687:08 ./bin/mongod -f conf/mongodb.conf --auth
iotweb   16957  0.3 10.1 10208428 3322260 ?    Sl   Nov01 251:37 java -jar redis-stat-0.4.14.jar 127.0.0.1:6380 3 --server=63800
root      2822  0.1  0.0 133196  1288 ?        Sl   Jun07 431:05 /usr/bin/vm-agent
iotweb   16942  0.1  0.0  52364 13304 ?        Ssl  Nov01  95:57 ./bin/redis-server 0.0.0.0:6380           
程序 owner
CPU占用率
記憶體占用率
TTY 終端
STAT 程序狀态
VSZ 虛拟記憶體占用
RSS 實體記憶體占用
START 開始日期
TIME 啟動時長
Bash指令

檔案占用

lsof(list open files)用于列出目前系統打開檔案句柄,包括網絡套接字、裝置句柄等。

~->lsof /opt

COMMAND  PID   USER   FD   TYPE DEVICE  SIZE/OFF   NODE NAME
mongod  9313 iotweb  txt    REG  252,0  36409888 761870 /opt/local/mongodb/bin/mongod
mongod  9313 iotweb    4w   REG  252,0   7082638 778244 /opt/local/mongodb/log/mongodb.log
mongod  9313 iotweb    8uW  REG  252,0         5 778246 /opt/local/mongodb/data/mongod.lock
mongod  9313 iotweb    9uw  REG  252,0        21 778247 /opt/local/mongodb/data/WiredTiger.lock
mongod  9313 iotweb   15u   REG  252,0     36864 778253 /opt/local/mongodb/data/sizeStorer.wt           
程序的名稱
程序所有者
FD 檔案描述符
TYPE 檔案類型,如DIR、REG等
DEVICE 指定磁盤的名稱
SIZE 檔案的大小
NODE 檔案索引節點
NAME 檔案的名稱
Linux 系統監控常用指令

作者:

zale

出處:

http://www.cnblogs.com/littleatp/

, 如果喜歡我的文章,請

關注我的公衆号

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出

原文連結

 如有問題, 可留言咨詢.

繼續閱讀