LInux 服務器狀態查詢 1.top 命令監控所有服務的佔用情況 2. top命令行詳解 3. free 命令 4.iostat 命令

最近幫助現場分析服務器的卡頓和使用情況,記錄一下用到過的一些命令行

1.top 命令監控所有服務的佔用情況


記錄下相關數據對應的信息

1.1 第一行

top - 14:09:54 up 55 days, 21:49, 3 users, load average: 1.51, 1.92, 2.12
翻譯過來就是:
系統時間:14:09:54 運行時間:55 days, 21:49 當前登錄用戶數:3個 負載均衡:load average: 1.51, 1.92, 2.12
ps:

  • 1.load average三個數字分別是 1分鐘、5分鐘、15分鐘前的狀態
    1. load average數據是每隔5秒鐘檢查一次活躍的進程數,然後按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了

1.2 第二行(進程狀態)

Tasks: 813 total, 1 running, 812 sleeping, 0 stopped, 0 zombie
翻譯:
總進程: 813total 運行:1 running 休眠:812 sleeping 停止: 0 stopped 殭屍進程: 0 zombie

1.3 第三行(CPU)

%Cpu(s): 1.2 us, 2.5 sy, 0.0 ni, 96.2 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
翻譯:
1.2us(用戶空間佔用百分比) 2.5 sy(系統內核佔用百分比) 0.0 ni(改變過優先級的進程佔用CPU的百分比) 96.2 id(空閒cpu百分比) 0.0 wa(等待IO的百分比) 0.1 si(硬中斷百分比) 0.0 st(軟中斷百分比)
這裏關注用戶佔用和空閒cpu百分比

1.4 第四行(內存佔用)

KiB Mem : 12359781+total, 26104952 free, 44029052 used, 53463812 buff/cache
翻譯:
`total 總內存
free 空閒內存

used 已被使用
buffer/cache 緩存
`

1.5 第五行(swap交換分區)

KiB Swap: 0 total, 0 free, 0 used. 74735824 avail Mem
可用內存=free + buffer + cached
ps:這個就關注used,這個最好不被使用,如果被使用,說明服務器已經到內存佔用非常嚴重的情況了

1.6 表格類數據

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
翻譯:

  • PID 服務進程ID
  • USER 進程的所有人
  • PR 進程優先級
  • NI nice值,會出現負值,負值優先級更高
  • VIRT 進程使用虛擬內存總量
  • RES 共享內存大小
  • kbS(簡略爲S) —進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程
  • %CPU 上次更新到現在的CPU時間佔用百分比
  • %MEM 進程使用的物理內存百分比
  • TIME+ — 進程使用的CPU時間總計,單位1/100秒
  • COMMAND — 進程名稱(命令名/命令行)

2. top命令行詳解

top的使用方式 top [-d number] | top [-bnp]

參數 含義
-d number number代表秒數,表示top命令顯示的頁面更新一次的間隔 (default=5s)
-b 以批次的方式執行top
-n 與-b配合使用,表示需要進行幾次top命令的輸出結果
-p 指定特定的pid進程號進行觀察

top命令顯示的頁面還可以輸入以下按鍵執行相應的功能(注意大小寫區分的)

參數 含義
顯示在top當中可以輸入的命令
P 以CPU的使用資源排序顯示
M 以內存的使用資源排序顯示
N 以pid排序顯示
T 由進程使用的時間累計排序顯示
k 給某一個pid一個信號,可以用來殺死進程(9)
r 給某個pid重新定製一個nice值(即優先級)
q 退出top(用ctrl+c也可以退出top)

3. free 命令

使用free -h可以查看linux的內存使用狀態


各自的含義如下所示:

  • total 是總內存數;

  • used 是已經使用的內存數;

  • free 是空閒的內存數;

  • shared 是多個進程共享的內存總數;

  • buffers 是緩衝內存數;

  • cached 是緩存內存數

ps:使用free -m 也是可以的,而且還可以用MB爲單位

4.iostat 命令

iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU使用情況。iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析

4.1 安裝服務

部分設備無法直接使用這個服務,需要提前安裝服務

# iostat屬於sysstat軟件包。可以直接安裝。
 yum install sysstat -y

4.2 使用

iostat 命令結果如下


cpu屬性值說明:

  • %user:CPU處在用戶模式下的時間百分比。

  • %nice:CPU處在帶NICE值的用戶模式下的時間百分比。

  • %system:CPU處在系統模式下的時間百分比。

  • %iowait:CPU等待輸入輸出完成時間的百分比。

  • %steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。

  • %idle:CPU空閒時間百分比。

  • tps:該設備每秒的傳輸次數

  • kB_read/s:每秒從設備(drive expressed)讀取的數據量;

  • kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量;

  • kB_read: 讀取的總數據量;

  • kB_wrtn:寫入的總數量數據量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章