Linux經常使用主機性能測試

 sar是System Activity Reporter(系統活動狀況報告)的縮寫。sar工具將對系統當前的狀態進行取樣,而後經過計算數據和比例來表達系統的當前運行狀態。它的特色是能夠連續對系統取樣,得到大量的取樣數據;取樣數據和分析的結果均可以存入文件,所需的負載很小。sar是目前Linux上最爲全面的系統性能分析工具之一,能夠從14個大方面對系統的活動進行報告,包括文件的讀寫狀況、系統調用的使用狀況、串口、CPU效率、內存使用情況、進程活動及IPC有關的活動等,使用也是較爲複雜。linux

查看CPU使用率: sar -u 1 2 (後面兩個參數表示監控的頻率,好比例子中的1和2,表示每秒採樣一次,總共採樣兩次)ios

截圖23.png

· %user 用戶模式下消耗的CPU時間的比例;git

· %nice 經過nice改變了進程調度優先級的進程,在用戶模式下消耗的CPU時間的比例github

· %system 系統模式下消耗的CPU時間的比例;算法

· %iowait CPU等待磁盤I/O致使空閒狀態消耗的時間比例;express

· %steal 利用Xen等操做系統虛擬化技術,等待其它虛擬CPU計算佔用的時間比例;緩存

· %idle CPU空閒時間比例;ide

[root@localhost ~]# sar -q 1 2

截圖24.png

· runq-sz:運行隊列的長度(等待運行的進程數)工具

· plist-sz:進程列表中進程(processes)和線程(threads)的數量性能

· ldavg-1:最後1分鐘的系統平均負載

· ldavg-5:過去5分鐘的系統平均負載

· ldavg-15:過去15分鐘的系統平均負載

查詢內存: sar -r 1 2

[root@localhost ~]# sar -r 1 2

截圖25.png

· 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 1 3

[root@localhost ~]# sar -W 1 3

截圖26.png

· pswpin/s:每秒系統換入的交換頁面(swap page)數量

· pswpout/s:每秒系統換出的交換頁面(swap page)數量

free

free工具用來查詢系統可用內存,顯示當前系統未使用和已使用的內存數目,還能夠顯示被內核使用的內存緩存區。

截圖27.png

· total:內存總數

· used:已經使用的內存數

· free:空閒的內存數

· shared:當前已經廢棄不用

· buffers Buffer:緩存內存數

程序實實在在吃掉的內存數:Mem中的used - buff/cache

能夠挪用的內存總數:Mem中的free + buff/cache

 

swap:也就是咱們一般所說的虛擬內存。當內存使用到必定值的時候,會開始進行交換(怎麼查看額定值 cat /proc/meminfo)

 

page cache 和 buffer cache的區別?

    簡單來講,page cache用來緩存文件數據,buffer cache用來緩存磁盤數據。在有文件系統的狀況下,對文件操做,那麼數據會緩存到page cache。若是直接採用dd等工具對磁盤進行讀寫,那麼數據會緩存到buffer cache。

 

free -s 10  #週期性的查詢內存使用狀況,每10s 執行一次命令 

iostat

    被用於監視系統輸入輸出設備和CPU使用狀況,它的特色是彙報磁盤活動統計狀況,同時也會彙報出CPU的使用狀況。

[root@localhost ~]# iostat 1 1

截圖28.png

注:若是%iowait的值太高,表示硬盤存在I/O瓶頸。 %idle值高,表示CPU較空閒。若是%idle值高但系統響應慢時,有多是CPU等待分配內存,此時應加大內存容量。%idle值若是持續低於10,那麼系統的CPU處理能力相對較低,代表系統中最須要解決的資源是CPU。

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

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

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

· kB_read:讀取的總數據量;kB_wrtn:寫入的總數量數據量;

vmstat

顯示虛擬內存狀態,可是他能夠報告關於進程、內存、I/O等系統運行狀態。

截圖29.png

Procs(進程)
    r: 運行隊列中進程數量,這個值也能夠判斷是否須要增長CPU。(長期大於1)
    b: 等待IO的進程數量。

Memory(內存)
    swpd: 使用虛擬內存大小,若是swpd的值不爲0,可是SI,SO的值長期爲0,這種狀況不會影響系統性能。
    free: 空閒物理內存大小。
    buff: 用做緩衝的內存大小。
    cache: 用做緩存的內存大小,若是cache的值大的時候,說明cache處的文件數多,若是頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會很是小。

Swap
    si: 每秒從交換區寫到內存的大小,由磁盤調入內存。
    so: 每秒寫入交換區的內存大小,由內存調入磁盤。
    注意:內存夠用的時候,這2個值都是0,若是這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閒內存(free)不多的或接近於0時,就認爲內存不夠用了,不能光看這一點,還要結合si和so,若是free不多,可是si和so也不多(大多時候是0),那麼不用擔憂,系統性能這時不會受到影響的。

IO(如今的Linux版本塊的大小爲1kb)
    bi: 每秒讀取的塊數
    bo: 每秒寫入的塊數
    注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

system(系統)
    in: 每秒中斷數,包括時鐘中斷。
    cs: 每秒上下文切換數。
    注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。

CPU(以百分比表示)
    us: 用戶進程執行時間百分比(user time)
    us的值比較高時,說明用戶進程消耗的CPU時間多,可是若是長期超50%的使用,那麼咱們就該考慮優化程序算法或者進行加速。
    sy: 內核系統進程執行時間百分比(system time)
    sy的值高時,說明系統內核消耗的CPU資源多,這並非良性表現,咱們應該檢查緣由。
    wa: IO等待時間百分比
    wa的值高時,說明IO等待比較嚴重,這可能因爲磁盤大量做隨機訪問形成,也有可能磁盤出現瓶頸(塊操做)。

    id: 空閒時間百分比

 top

能夠實時動態地查看系統的總體運行狀況,是一個綜合了多方信息監測系統性能和運行信息的實用工具,是Linux下的任務管理器。經過top命令所提供的互動式界面,用熱鍵能夠管理。熱鍵以下:

· q:退出top命令

· <Space>:當即刷新

· s:設置刷新時間間隔

· c:顯示命令徹底模式

· t::顯示或隱藏進程和CPU狀態信息

· m:顯示或隱藏內存狀態信息

· l:顯示或隱藏uptime信息

· f:增長或減小進程顯示標誌

· S:累計模式,會把已完成或退出的子進程佔用的CPU時間累計到父進程的MITE+

· P:按%CPU使用率排行

· T:按MITE+排行

· M:按%MEM排行

· u:指定顯示用戶進程

· r:修改進程renice值

· kkill:進程

· i:只顯示正在運行的進程

· W:保存對top的設置到文件^/.toprc,下次啓動將自動調用toprc文件的設置。

· h:幫助命令。

· q:退出

注:強調一下,使用頻率最高的是P、T、M,由於一般使用top,咱們就想看看是哪些進程最耗cpu資源、佔用的內存最多; 注:經過」shift + >」或」shift + <」能夠向右或左改變排序列 若是隻須要查看內存:可用free命令。只查看uptime信息(第一行),可用uptime命令

[root@localhost ~]# top

截圖30.png

第一行

· 16:56:31  系統當前時間

· , 30 系統開機到如今通過了多少時間

· 3 users : 當前3用戶在線

· load average: 0.15, 0.13, 0.18 系統1分鐘、5分鐘、15分鐘的CPU負載信息

第二行

· Tasks:任務;

· 205 total:很好理解,就是當前有358個任務,也就是358個進程。

· 3 running:3個進程正在運行

· 202 sleeping:202個進程睡眠

· 0 stopped:中止的進程數

· 0 zombie:僵死的進程數

第三行

· Cpu(s):表示這一行顯示CPU整體信息

· 0.7%us:用戶態進程佔用CPU時間百分比,不包含renice值爲負的任務佔用的CPU的時間。

· 2.2%sy:內核佔用CPU時間百分比

· 2.6%ni:改變過優先級的進程佔用CPU的百分比

· 93.7%id:空閒CPU時間百分比

· 0.0%wa:等待I/O的CPU時間百分比

· 0.0%hi:CPU硬中斷時間百分比

· 0.7%si:CPU軟中斷時間百分比

· 注:這裏顯示數據是全部cpu的平均值,若是想看每個cpu的處理狀況,按1便可;摺疊,再次按1;

第四

· Men:內存的意思

· total:物理內存總量

· used:使用的物理內存量

· free:空閒的物理內存量

· buffers:用做內核緩存的物理內存量

第五行

· Swap:交換空間

· total:交換區總量

· used:使用的交換區量

· free:空閒的交換區量

· cached:緩衝交換區總量

進程信息

· PID:進程的ID

· USER:進程全部者

· PR:進程的優先級別,越小越優先被執行

· NInice:值

· VIRT:進程佔用的虛擬內存

· RES:進程佔用的物理內存

· SHR:進程使用的共享內存

· S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數

· %CPU:進程佔用CPU的使用率

· %MEM:進程使用的物理內存和總內存的百分比

· TIME+:該進程啓動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。

· COMMAND:進程啓動命令名稱

Github上發現了一個Linux命令搜索工具,很好用,介紹給你們:https://jaywcjlove.github.io/linux-command/
相關文章
相關標籤/搜索