天天看點

Linux系統排查工具詳解--cpu篇(待更新)

一、CPU

1、Uptime 指令:一個簡單的檢視平均負載的指令

[[email protected] ~]# uptime  後三項為1、5、15分鐘的平均負載
 15:37:33 up 1 min,  2 users,  load average: 0.10, 0.07, 0.03
 
[[email protected] ~]# uptime -help
 
Usage:
 uptime [options]
 
Options:
 -p, --pretty   show uptime in pretty format
 -h, --help     display this help and exit
 -s, --since    system up since
 -V, --version  output version information and exit
 
For more details see uptime(1).
           

2、vmstat:Virtual Meomory Statistics虛拟記憶體統計,一種功能比較齊全的監控工具,可以對作業系統的虛拟記憶體、程序、cpu活動進行監控,包括系統範圍内的cpu平均負載。

實體記憶體與虛拟記憶體:實體記憶體是系統硬體提供的記憶體大小,相對于實體記憶體,在linux下還有一個虛拟記憶體的概念,虛拟記憶體就是為了滿足實體記憶體的不足而提出的政策,它是利用磁盤空間虛拟出的一塊邏輯記憶體,用作虛拟記憶體的磁盤空間被稱為交換空間(Swap Space)。

虛拟記憶體是實體記憶體的擴充,linux會在實體記憶體不足時,使用交換分區的虛拟記憶體,更詳細的說,就是核心會将暫時不用的記憶體塊資訊寫到交換空間,這樣以來,實體記憶體得到了釋放,這塊記憶體就可以用于其它目的,當需要用到原始的内容時,這些資訊會被重新從交換空間讀入實體記憶體。

Linux記憶體管理采用分頁的機制,在進行頁面交換時采用的算法是LRU(最近最久未使用)算法。

如果程序太多,每個程序配置設定到的頁框越少(頁:程序的邏輯位址空間劃分成的大小相同的片;頁框:實體記憶體空間劃分成的與頁大小相同的存儲塊,)程序會頻繁請求調頁,這樣就會産生系統抖動。

vmstat可以指定采樣周期和采樣次數,例如5秒鐘進行5次采樣

[[email protected] ~]# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3783784   2108 130928    0    0    52     3   52   45  0  0 99  0  0
 1  2      0 3783792   2108 130940    0    0     0    11   23   23  0  0 100  0  0
 0  0      0 3783792   2108 130940    0    0     0     0   16   15  0  0 100  0  0
 0  0      0 3783792   2108 130940    0    0     0     0   14   13  0  0 100  0  0
 0  0      0 3783792   2108 130940    0    0     0     0   11   11  0  0 100  0  0
           

vmstat會吐出來6列資料:

Linux系統排查工具詳解--cpu篇(待更新)

如果出現CPU繁忙的情況,一般可以調整應用程式對CPU的占用或者增加資源。大多數情況都是因為應用程式導緻的,例如資料庫中不好的SQL語句導緻的CPU占用。

其他常用的指令:

檢視系統啟動後fork出的程序數量:

[[email protected] ~]# vmstat -f
         1314 forks
           

檢視磁盤的讀寫:

[[email protected] ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
     total merged sectors      ms  total merged sectors      ms    cur    sec
sda     6313      1  237116   11735   1301    160   29383    7502      0     11
sr0        0      0       0       0      0      0       0       0      0      0
sr1        0      0       0       0      0      0       0       0      0      0
dm-0    5897      0  216613   11356   1252      0   25287   10767      0     11
dm-1      94      0    4456      80      0      0       0       0      0      0

           

檢視某個磁盤的讀寫:

[[email protected] ~]# vmstat -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                152      11223          4       4096