亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號

Linux中系統(tǒng)整體性能監(jiān)控工具詳細介紹(1)
2006-09-05   linuxeden.com 

Linux中常用的監(jiān)控CPU整體性能的工具有:

 mpstat: mpstat 不但能查看所有CPU的平均信息,還能查看指定CPU的信息。

 vmstat:只能查看所有CPU的平均信息;查看cpu隊列信息;

 iostat: 只能查看所有CPU的平均信息。

 sar: 與mpstat 一樣,不但能查看CPU的平均信息,還能查看指定CPU的信息。

 top:顯示的信息同ps接近,但是top可以了解到CPU消耗,可以根據(jù)用戶指定的時間來更新顯示。

 oprofile:OProfile 是一個低開銷的系統(tǒng)全局的性能監(jiān)視工具。它使用處理器上的性能監(jiān)視硬件來檢索關(guān)于內(nèi)核以及系統(tǒng)上的可執(zhí)行文件的信息,例如內(nèi)存是何時被引用的;L2 緩存請求數(shù)量;收到的硬件中斷數(shù)量等

1. /proc/stat/

包含了所有CPU活動的信息,該文件中的所有值都是從系統(tǒng)啟動開始累計到當(dāng)前時刻。

[work@builder ~]$ cat /proc/stat
cpu 432661 13295 86656 422145968 171474 233 5346
cpu0 123075 2462 23494 105543694 16586 0 4615
cpu1 111917 4124 23858 105503820 69697 123 371
cpu2 103164 3554 21530 105521167 64032 106 334
cpu3 94504 3153 17772 105577285 21158 4 24
intr 1065711094 1057275779 92 0 6 6 0 4 0 3527 0 0 0 70 0 20 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7376958 0 0 0 0 0 0 0 
1054602 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0
ctxt 19067887
btime 1139187531
processes 270014
procs_running 1
procs_blocked 0

輸出解釋

CPU 以及CPU0、CPU1、CPU2、CPU3每行的每個參數(shù)意思(以第一行為例)為:

參數(shù) 解釋

user (432661) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,用戶態(tài)的CPU時間(單位:jiffies) ,不包含 nice值為負(fù)進程。1jiffies=0.01秒

nice (13295) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,nice值為負(fù)的進程所占用的CPU時間(單位:jiffies)

system (86656) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,核心時間(單位:jiffies)

idle (422145968) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,除硬盤IO等待時間以外其它等待時間(單位:jiffies)

iowait (171474) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,硬盤IO等待時間(單位:jiffies) ,

irq (233) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,硬中斷時間(單位:jiffies)

softirq (5346) 從系統(tǒng)啟動開始累計到當(dāng)前時刻,軟中斷時間(單位:jiffies)

CPU時間=user+system+nice+idle+iowait+irq+softirq

“intr”這行給出中斷的信息,第一個為自系統(tǒng)啟動以來,發(fā)生的所有的中斷的次數(shù);然后每個數(shù)對應(yīng)一個特定的中斷自系統(tǒng)啟動以來所發(fā)生的次數(shù)。

“ctxt”給出了自系統(tǒng)啟動以來CPU發(fā)生的上下文交換的次數(shù)。

“btime”給出了從系統(tǒng)啟動到現(xiàn)在為止的時間,單位為秒。

“processes (total_forks) 自系統(tǒng)啟動以來所創(chuàng)建的任務(wù)的個數(shù)目。

“procs_running”:當(dāng)前運行隊列的任務(wù)的數(shù)目。

“procs_blocked”:當(dāng)前被阻塞的任務(wù)的數(shù)目。

2. /proc/loadavg

該文件中的所有值都是從系統(tǒng)啟動開始累計到當(dāng)前時刻。該文件只給出了所有CPU的集合信息,不能該出每個CPU的信息。

[root@localhost ~]# cat /proc/loadavg

4.61 4.36 4.15 9/84 5662

每個值的含義為:

參數(shù) 解釋

lavg_1 (4.61) 1-分鐘平均負(fù)載

lavg_5 (4.36) 5-分鐘平均負(fù)載

lavg_15(4.15) 15-分鐘平均負(fù)載

nr_running (9) 在采樣時刻,運行隊列的任務(wù)的數(shù)目,與/proc/stat的procs_running表示相同意思

nr_threads (84) 在采樣時刻,系統(tǒng)中活躍的任務(wù)的個數(shù)(不包括運行已經(jīng)結(jié)束的任務(wù))

last_pid(5662) 最大的pid值,包括輕量級進程,即線程。

假設(shè)當(dāng)前有兩個CPU,則每個CPU的當(dāng)前任務(wù)數(shù)為4.61/2=2.31

3. uptime

uptime是Linux系統(tǒng)常用的命令,用來報告系統(tǒng)已經(jīng)運行多長時間,依此顯示的信息:現(xiàn)在時間,系統(tǒng)已經(jīng)運行了的時間,目前有多少登陸用戶, 1分鐘系統(tǒng)平均負(fù)載,5分鐘系統(tǒng)平均負(fù)載,15分鐘系統(tǒng)平均負(fù)載。該命令從/proc/loadavg 中獲得load average的信息。

范例1:系統(tǒng)只用一個CPU

[root@localhost ~]# uptime

12:20:49 up 3 days,9:20, 5 users, load average 1.10 1.32 1.15

對于一個CPU的系統(tǒng)來說,范例1中的平均負(fù)載高了些。通常來說:如果系統(tǒng)有n個CPU而且平均負(fù)載小于n,則說明某些CPU還有空閑的時間片。通過該命令,你能知道CPU是否繁忙,但是無法知道為什么忙。

4. mpstat

mpstat是Multiprocessor Statistics的縮寫,是實時系統(tǒng)監(jiān)控工具。其報告與CPU的一些統(tǒng)計信息,這些信息存放在/proc/stat文件中。在多CPUs系統(tǒng)里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。下面只介紹 mpstat與CPU相關(guān)的參數(shù),mpstat的語法如下:

mpstat [-P {|ALL}] [internal [count]]

參數(shù)的含義如下:

參數(shù) 解釋

-P {|ALL} 表示監(jiān)控哪個CPU, cpu在[0,cpu個數(shù)-1]中取值

internal 相鄰的兩次采樣的間隔時間

count 采樣的次數(shù),count只能和delay一起使用

當(dāng)沒有參數(shù)時,mpstat則顯示系統(tǒng)啟動以后所有信息的平均值。有interval時,第一行的信息自系統(tǒng)啟動以來的平均信息。從第二行開始,輸出為前一個interval時間段的平均信息。與CPU有關(guān)的輸出的含義如下:

參數(shù) 解釋 從/proc/stat獲得數(shù)據(jù)

CPU 處理器ID

user 在internal時間段里,用戶態(tài)的CPU時間(%) ,不包含 nice值為負(fù) 進程 usr/total*100

nice 在internal時間段里,nice值為負(fù)進程的CPU時間(%) nice/total*100

system 在internal時間段里,核心時間(%) system/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

intr/s 在internal時間段里,每秒CPU接收的中斷的次數(shù) intr/total*100

CPU總的工作時間=total_cur=user+system+nice+idle+iowait+irq+softirq

total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq

user=user_cur – user_pre

total=total_cur-total_pre

其中_cur 表示當(dāng)前值,_pre表示interval時間前的值。上表中的所有值可取到兩位小數(shù)點。

范例1:average mode (粗略信息)

當(dāng)mpstat不帶參數(shù)時,輸出為從系統(tǒng)啟動以來的平均值。

[work@builder linux-2.6.14]$ mpstat 
Linux 2.6.9-5.31AXsmp (builder.redflag-linux.com) 12/16/2005
09:38:46 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
09:38:48 AM all 23.28 0.00 1.75 0.50 0.00 0.00 74.47 1018.59

范例2: 每2秒產(chǎn)生了4個處理器的統(tǒng)計數(shù)據(jù)報告

下面的命令可以每2秒產(chǎn)生了4個處理器的統(tǒng)計數(shù)據(jù)報告,一共產(chǎn)生三個interval 的信息,然后再給出這三個interval的平均信息。默認(rèn)時,輸出是按照CPU 號排序。第一個行給出了從系統(tǒng)引導(dǎo)以來的所有活躍數(shù)據(jù)。接下來每行對應(yīng)一個處理器的活躍狀態(tài)。。

[work@builder linux-2.6.14]$ mpstat -P ALL 2 3
Linux 2.6.9-5.31AXsmp (builder.redflag-linux.com) 12/16/2005
09:38:46 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
09:38:48 AM all 23.28 0.00 1.75 0.50 0.00 0.00 74.47 1018.59
09:38:48 AM 0 2.01 0.00 1.01 0.50 0.00 0.00 96.48 5.03
09:38:48 AM 1 51.26 0.00 3.02 1.01 0.00 0.00 44.72 7.04
09:38:48 AM 2 17.09 0.00 2.01 0.50 0.00 0.00 81.41 0.00
09:38:48 AM 3 22.61 0.00 1.01 0.00 0.00 0.00 76.38 1006.03

09:38:48 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
09:38:50 AM all 24.22 0.00 1.25 1.25 0.00 0.00 73.28 1049.75
09:38:50 AM 0 1.00 0.00 1.00 0.00 0.00 0.00 98.01 28.86
09:38:50 AM 1 93.03 0.00 3.48 0.00 0.00 0.00 2.99 25.37
09:38:50 AM 2 1.99 0.00 0.50 4.98 0.00 0.00 92.54 0.00
09:38:50 AM 3 1.00 0.00 0.50 0.00 0.00 0.00 98.51 995.52

09:38:50 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
09:38:52 AM all 23.69 0.00 2.37 0.37 0.00 0.12 73.44 1028.36
09:38:52 AM 0 2.99 0.00 1.49 0.00 0.00 0.50 95.02 111.94
09:38:52 AM 1 52.74 0.00 2.99 1.00 0.00 0.00 42.29 4.48
09:38:52 AM 2 14.93 0.00 1.99 0.00 0.00 0.00 82.09 4.48
09:38:52 AM 3 23.38 0.00 1.99 0.50 0.00 0.00 73.13 907.46

Average: CPU %user %nice %system %iowait %irq %soft %idle intr/s
Average: all 23.73 0.00 1.79 0.71 0.00 0.04 73.73 1032.28
Average: 0 2.00 0.00 1.16 0.17 0.00 0.17 96.51 48.75
Average: 1 65.72 0.00 3.16 0.67 0.00 0.00 29.95 12.31
Average: 2 11.31 0.00 1.50 1.83 0.00 0.00 85.36 1.50
Average: 3 15.64 0.00 1.16 0.17 0.00 0.00 82.70 969.55
[work@builder linux-2.6.14]$

范例3:比較帶參數(shù)和不帶參數(shù)的mpstat的結(jié)果。

在后臺開一個2G的文件

> cat 1.img —/* 1.img=2GBytes

然后在另一個終端運行mpstat命令

[root@localhost ~]# mpstat
Linux 2.6.13 (localhost.localdomain) 2005年12月15日

13時48分52秒 CPU %user %nice %system %iowait %irq %soft %idle intr/s
13時48分52秒 all 1.57 0.00 0.24 0.15 0.12 0.01 97.92 308.12
[root@localhost ~]# mpstat
Linux 2.6.13 (localhost.localdomain) 2005年12月15日

13時48分53秒 CPU %user %nice %system %iowait %irq %soft %idle intr/s
13時48分53秒 all 1.57 0.00 0.24 0.15 0.12 0.01 97.92 308.12
[root@localhost ~]# mpstat
Linux 2.6.13 (localhost.localdomain) 2005年12月15日

13時48分53秒 CPU %user %nice %system %iowait %irq %soft %idle intr/s
13時48分53秒 all 1.57 0.00 0.24 0.15 0.12 0.01 97.92 308.12
[root@localhost ~]# mpstat
Linux 2.6.13 (localhost.localdomain) 2005年12月15日

13時48分54秒 CPU %user %nice %system %iowait %irq %soft %idle intr/s
13時48分54秒 all 1.57 0.00 0.24 0.15 0.12 0.01 97.92 308.12
[root@localhost ~]#

然后再運行命令:mpstat 3 100 /*每隔3秒給出一次信息,共給出100次*/
[root@localhost ~]# mpstat 3 100
Linux 2.6.13 (localhost.localdomain) 2005年12月15日

13時48分25秒 CPU %user %nice %system %iowait %irq %soft %idle intr/s
13時48分28秒 all 96.00 0.00 4.00 0.00 0.00 0.00 0.00 401.67
13時48分31秒 all 96.01 0.00 3.65 0.00 0.33 0.00 0.00 393.36
13時48分34秒 all 95.36 0.00 4.30 0.00 0.33 0.00 0.00 532.45
13時48分37秒 all 94.00 0.00 5.67 0.00 0.33 0.00 0.00 400.33
13時48分40秒 all 95.00 0.00 5.00 0.00 0.00 0.00 0.00 330.33
13時48分43秒 all 95.33 0.00 4.33 0.00 0.33 0.00 0.00 337.33
13時48分46秒 all 94.68 0.00 4.98 0.00 0.33 0.00 0.00 329.57
13時48分49秒 all 95.67 0.00 4.00 0.00 0.33 0.00 0.00 417.33
13時48分52秒 all 95.67 0.00 3.67 0.00 0.67 0.00 0.00 448.00
13時48分55秒 all 94.02 0.00 5.32 0.00 0.33 0.33 0.00 410.96
13時48分58秒 all 95.35 0.00 4.32 0.00 0.33 0.00 0.00 466.45

[root@localhost ~]#

上兩表顯示出當(dāng)要正確反映系統(tǒng)的情況,需要正確使用命令的參數(shù)。vmstat 和iostat 也需要注意這一問題。

5. vmstat

vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計)的縮寫, 是實時系統(tǒng)監(jiān)控工具。該命令通過使用knlist子程序和/dev/kmen偽設(shè)備驅(qū)動器訪問這些數(shù)據(jù),輸出信息直接打印在屏幕。vmstat反饋的與CPU相關(guān)的信息包括:

(1)多少任務(wù)在運行

(2)CPU使用的情況

(3)CPU收到多少中斷

(4)發(fā)生多少上下文切換

下面只介紹 Vmstat與CPU相關(guān)的參數(shù)

vmstat的語法如下:

  vmstat [delay [count]]

參數(shù)的含義如下:

參數(shù) 解釋

delay 相鄰的兩次采樣的間隔時間

count 采樣的次數(shù),count只能和delay一起使用

當(dāng)沒有參數(shù)時,vmstat則顯示系統(tǒng)啟動以后所有信息的平均值。有delay時,第一行的信息自系統(tǒng)啟動以來的平均信息。從第二行開始,輸出為前一個delay時間段的平均信息。當(dāng)系統(tǒng)有多個CPU時,輸出為所有CPU的平均值。

與CPU有關(guān)的輸出的含義 (采用進一法)

參數(shù) 解釋 從/proc/stat獲得數(shù)據(jù)

任務(wù)的信息

r 在internal時間段里,運行隊列里等待CPU的任務(wù)(任務(wù))的個數(shù),即不包含vmstat進程 procs_running-1

b 在internal時間段里,被資源阻塞的任務(wù)數(shù)(I/0,頁面調(diào)度,等等.) ,通常情況下是接近0的 procs_blocked

CPU信息 所有值取整(四舍五入)

us 在internal時間段里,用戶態(tài)的CPU時間(%),包含 nice值為負(fù)進程 (user+nice)/total*100

sy 在internal時間段里,核心態(tài)的CPU時間(%) (system+irq+softirq)/total*100

id 在internal時間段里,cpu空閑的時間,不包括等待i/o的時間(%) idle/total*100

wa 在internal時間段里,等待i/o的時間(%) iowait/total*100

系統(tǒng)信息

in 在internal時間段里,每秒發(fā)生中斷的次數(shù) intr/interval

cs 在internal時間段里,每秒上下文切換的次數(shù),即每秒內(nèi)核任務(wù)交換的次數(shù) ctxt/interval

total_cur=user+system+nice+idle+iowait+irq+softirq
total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq
total=total_cur-total_pre

范例1:average mode (粗略信息)

當(dāng)vmstat不帶參數(shù)時,對應(yīng)的輸出值是從系統(tǒng)啟動以來的平均值,而r和b則對應(yīng)的是完成這一命令時,系統(tǒng)的值。從下面例子,可以看出系統(tǒng)基本出去閑置狀態(tài)(idle)。自啟動以來,CPU在用戶態(tài)消耗時間為5%,在核心態(tài)消耗為本1%,剩下的為閑置時間。需要指出的是:這里的用戶態(tài)時間包括nice值為負(fù)的進程的時間。

[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 4580 428 98516 0 0 49 6 15 19 2 1 96 1
[root@localhost ~]#

范例2:average mode (詳細信息)

命令格式:

vmstat –s

這里只討論與CPU相關(guān)信息。“CPU ticks”表示自系統(tǒng)啟動CPU運行時間,這里以tick為時間單位。用tick來西安市us,sy id 和wa的時間;forks指自從系統(tǒng)啟動以來,所創(chuàng)建的新任務(wù)的個數(shù)。這些信息從/proc/stat 的第一行和”processes”行獲得。

[root@localhost ~]# vmstat -s
255280 total memory
244216 used memory
206624 active memory
21208 inactive memory
11064 free memory
628 buffer memory
91396 swap cache
255992 total swap
24 used swap
255968 free swap
973400 non-nice user cpu ticks
477 nice user cpu ticks
206168 system cpu ticks
43567714 idle cpu ticks
373234 IO-wait cpu ticks
62732 IRQ cpu ticks
1972 softirq cpu ticks
22366502 pages paged in
88756936 pages paged out
0 pages swapped in
0 pages swapped out
135634319 interrupts
137288441 CPU context switches
1134440368 boot time
208990 forks
[root@localhost ~]#

結(jié)果解釋

參數(shù) 描述 /proc/stat

non-nice user cpu ticks 自系統(tǒng)啟動以來,CPU在用戶態(tài)下運行非nice進程的時間,單位為jiffies user

nice user cpu ticks 自系統(tǒng)啟動以來,CPU在用戶態(tài)下運行nice進程的時間,單位為jiffies nice

system cpu ticks 自系統(tǒng)啟動以來,CPU處于系統(tǒng)狀態(tài)的時間,單位為jiffies sys

idle cpu ticks 自系統(tǒng)啟動以來,CPU處于閑置狀態(tài)的時間,單位為jiffies idle

IO-wait cpu ticks 自系統(tǒng)啟動以來,CPU處理IO中斷的時間,單位為jiffies iowait

IRQ cpu ticks 自系統(tǒng)啟動以來,CPU處理硬中斷的時間,單位為jiffies irq

softing cpu ticks 自系統(tǒng)啟動以來,CPU處理軟中斷的時間,單位為jiffies Softirq

interrupts 自系統(tǒng)啟動以來,發(fā)生的所有的中斷的次數(shù)目 Intr

CPU context switches 自系統(tǒng)啟動以來,發(fā)生的上下文交換的次數(shù) Ctxt

boot time 自系統(tǒng)啟動以來到現(xiàn)在運行的時間,單位為秒。 btime

forks 自系統(tǒng)啟動以來所創(chuàng)建的任務(wù)的個數(shù)目。 Process

熱詞搜索:

上一篇:關(guān)于內(nèi)網(wǎng)FTP服務(wù)器架設(shè)的不完全解析
下一篇:Linux中系統(tǒng)整體性能監(jiān)控工具詳細介紹(2)

分享到: 收藏