Linux下的CPU與內存性能監控命令(建議收藏)

前沿:

CPU和內存是系統層面影響應用性能的重要因素

一.CPU性能監控

查看系統的cpu使用率是否有異常的常用命令有top,vmstat,ps等。

1.top命令

通過命令 top 查看CPU使用情況,按P查看佔用cpu最高的進程

top ##監控系統負載工具

在這裏插入圖片描述
%cpu

  • us 表示用戶進程處理所佔的百分比
  • sy 表示爲內核線程處理所佔的百分比
  • ni 表示被nice命令改變優先級的任務所佔的百分比
  • id 表示cpu的空閒時間所佔的百分比
  • wa 表示爲在執行過程中等待io所佔的百分比
  • hi 表示爲硬件中斷所佔的百分比
  • si 表示爲軟件中斷所佔的百分比
  • st 表示虛擬cpu等待實際cpu的時間的百分比

cpu性能監控主要通過us(用戶進程所佔用百分比)這個數據來看異常的進程信息。當us接近100%甚至更高時,可以確定是cpu繁忙造成的響應緩慢。一般說來,cpu繁忙的原因有以下幾個:

  • 線程中有無限空循環、無阻塞、正則匹配或者單純的計算
  • 頻繁的gc
  • 多線程頻繁的上下文切換

top顯示進程信息詳解

字段 說明
top 系統當期時間
up 系統運行時長
user 登錄當前系統的用戶數量
load average 平均負載1 ,5,15 分鐘的隊列長度
task 任務
Mem 物理內存
swap 交換分區佔用
%cpu cpu佔用百分比

top字段解釋

字段 解釋
PID 進程ID
USER 用戶名稱
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先級
VIRT 進程使用的虛擬內存總量
RES 進程使用的、未被換出的物理內存大小
SHR 共享內存大小
S 進程狀態 (D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程 )
%CPU 佔用cpu百分比
%MEM 佔用內存百分比
TIME+ 進程使用的CPU時間總計
COMMAND 進程名稱

top內部參數

參數 說明
P cpu百分比排序
M 內存百分比
T 累計佔用cpu時間
l 開啓/關掉uptime信息
t 開啓/關閉task&cpu信息
s 調整刷新頻率
k 終止進程
u 查看指定用戶進程

2.ps命令

ps ax -o %cpu,comm,pid --sort -%cpu | head -n 10  ##按照cpu負載進行排序

在這裏插入圖片描述
查使用CPU最多的K個進程

ps -aux | sort -k4nr | head -K

命令解釋:

  • ps -aux (a指代all——所有的進程,u指代userid——執行該進程的用戶id,x指代顯示所有程序,不以終端機來區分)
  • sort -k4nr中(k代表從第幾個位置開始,後面的數字4即是其開始位置,結束位置如果沒有,則默認到最後;n指代numberic sort,根據其數值排序;r指代reverse,這裏是指反向比較結果,輸出時默認從小到大,反向後從大到小。)。本例中,可以看到%MEM在第4個位置,根據%MEM的數值進行由大到小的排序。
  • head -K(K指代行數,即輸出前幾位的結果)
  • |爲管道符號,將查詢出的結果導到下面的命令中進行下一步的操作

3.vmstat

在這裏插入圖片描述

  • in 每秒CPU的中斷次數,包括時間中斷
  • cs 每秒上下文切換次數
  • us 用戶CPU時間。
  • sy 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
  • id 空閒 CPU時間,一般來說,id + us + sy = 100,一般我認爲id是空閒CPU使用率,us是用戶CPU使用率,sy是系統CPU使用率。
  • wt 等待IO CPU時間

二.內存性能監控

1.top命令

通過命令 top 查看內存使用情況,按M查看佔用內存最高的進程

2.ps命令

ps ax -o %mem,comm,pid --sort -%mem | less  ##按照內存負載進行排序

在這裏插入圖片描述
查看使用內存最多的進程

ps -aux | sort -k3nr | head -K

參考鏈接

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