Linux系統性能分析——CPU

一、引言
Linux系統的性能分析,基本上是分爲CPU、內存、磁盤IO、網絡這幾個部分。

本篇介紹CPU的性能分析。

二、CPU信息
1、 /proc/cpuinfo
cpuinfo
具體參數:
processor :系統中邏輯處理器唯一標識
vendor_id :CPU製造商
cpu family : CPU產品系列代號
model   :CPU屬於其系列中的哪一代的代號
model name:CPU屬於的名字及其編號、標稱主頻
cpu MHz  :CPU的實際使用主頻
physical id :每個物理封裝的唯一標識
core id :一個物理封裝中每個內核的唯一標識
siblings :一個物理封裝上邏輯處理器個數
cpu cores :一個物理封裝中內核數量(超線程技術可以使1個內核分爲2個邏輯處理器)
2、lscpu
lsusb

3、dmidecode
dmidecode
使用說明:
#dmidecode -t processor
還可以查看其他參數:
other

三、CPU使用情況
1、top
top
具體參數:
load average: 0.77, 0.87, 0.72:系統負載,即任務隊列的平均長度。三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值。數值越高負載越重,一般要求最好不要超過cpu的核數。
total:進程總數
running:正在運行的進程數
sleeping:睡眠的進程數
stopped:停止的進程數
zombie: 殭屍進程數
Cpu(s):
0.7% us(user mode) :用戶空間佔用CPU百分比
0.2% sy(system mode) :內核空間佔用CPU百分比
0.0% ni(low priority user mode) :用戶進程空間內改變過優先級的進程佔用CPU百分比
99.1% id(idle task) :空閒CPU百分比
0.0% wa(I/O wait) :等待輸入輸出的CPU時間百分比
0.0%hi(servicing IRQs):硬件CPU中斷佔用百分比
0.0%si(servicing soft IRQs):軟中斷佔用百分比
0.0%st(steal):虛擬機佔用百分比
2、vmstat
vmstat
使用說明:
#vmstat [delay [count]]
delay :相鄰的兩次採樣的間隔時間、
count :採樣的次數,count只能和delay一起使用
具體參數:
r:表示在cpu運行隊列中等待的進程數。如果這個值很大,則說明很多進程在排隊等待執行。
in、cs:分別代表中斷次數和上下文切換次數。這兩個值越大,代表系統在進行大量的進程切換。這說明我們的進程數(或者線程數)太大,導致系統不斷的在切換進程,應該儘量減少進程或線程數量。
us、sy、id、wa:這四個值分別代表用戶進程、系統進程、空閒和等待的cpu時間佔比。
3、mpstat
mpstat
使用說明:
#mpstat [-P {|ALL}] [internal [count]]
-P {|ALL} :表示監控哪個CPU, cpu在[0,cpu個數-1]中取值
internal :相鄰的兩次採樣的間隔時間、
count :採樣的次數,count只能和delay一起使用
具體參數:
%usr:在internal時間段裏,用戶態的CPU時間(%),不包含nice值爲負進程 (usr/total)*100
%sys:在internal時間段裏,內核時間(%) (system/total)*100
%nice:在internal時間段裏,nice值爲負進程的CPU時間(%) (nice/total)*100
%iowait:在internal時間段裏,硬盤IO等待時間(%) (iowait/total)*100
%irq:在internal時間段裏,硬中斷時間(%) (irq/total)*100
%soft:在internal時間段裏,軟中斷時間(%) (softirq/total)*100
%idle:在internal時間段裏,CPU除去等待磁盤IO操作外的因爲任何原因而空閒的時間閒置時間(%) (idle/total)*100
4、iostat
iostat
具體參數:
%user:在internal時間段裏,用戶態的CPU時間(%),不包含nice值爲負進程 (usr/total)*100
%system:在internal時間段裏,內核時間(%) (system/total)*100
%nice:在internal時間段裏,nice值爲負進程的CPU時間(%) (nice/total)*100
%iowait:在internal時間段裏,硬盤IO等待時間(%) (iowait/total)*100
%idle:在internal時間段裏,CPU除去等待磁盤IO操作外的因爲任何原因而空閒的時間閒置時間(%) (idle/total)*100
5、uptime
uptime
具體參數:
load average: 0.85, 0.86, 0.74:系統負載,即任務隊列的平均長度。三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值。數值越高負載越重,一般要求最好不要超過cpu的核數
6、ps和pstree
ps:
ps
pstree:
pstree

三、單獨進程CPU分析
1、strace
用來分析進程系統調用的:
strace
還可以通過PID分析:
#strace -p PID
2、jstack
java提供的用來分析java進程的工具,可以看當前進程的線程棧調用情況。
文章部分內容參考:http://www.simplemain.com/article/

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