小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【操作系統(tǒng)】Linux性能監(jiān)控——CPU、Memory、IO、Network

 richsky 2012-05-05

【操作系統(tǒng)】Linux性能監(jiān)控——CPU、Memory、IO、Network

分類: 操作系統(tǒng) 26人閱讀 評(píng)論(0) 收藏 舉報(bào)
【操作系統(tǒng)】Linux性能監(jiān)控——CPU、Memory、IO、Network
by illidan

(綜合了幾篇文章和自己的實(shí)踐)

 

一、CPU

1、良好狀態(tài)指標(biāo)

  • CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%。
  • 上下文切換:與CPU利用率相關(guān)聯(lián),如果CPU利用率狀態(tài)良好,大量的上下文切換也是可以接受的。
  • 可運(yùn)行隊(duì)列:每個(gè)處理器的可運(yùn)行隊(duì)列<=3個(gè)線程。

2、監(jiān)控工具

  • vmstat

$ vmstat 1

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

14  0    140 2904316 341912 3952308  0    0     0   460 1106 9593 36 64  1  0  0

17  0    140 2903492 341912 3951780  0    0     0     0 1037 9614 35 65  1  0  0

20  0    140 2902016 341912 3952000  0    0     0     0 1046 9739 35 64  1  0  0

17  0    140 2903904 341912 3951888  0    0     0    76 1044 9879 37 63  0  0  0

16  0    140 2904580 341912 3952108  0    0     0     0 1055 9808 34 65  1  0  0

重要參數(shù):

r,run queue,可運(yùn)行隊(duì)列的線程數(shù),這些線程都是可運(yùn)行狀態(tài),只不過(guò)CPU暫時(shí)不可用;

b,被blocked的進(jìn)程數(shù),正在等待IO請(qǐng)求;

in,interrupts,被處理過(guò)的中斷數(shù)

cs,context switch,系統(tǒng)上正在做上下文切換的數(shù)目

us,用戶占用CPU的百分比

sys,內(nèi)核和中斷占用CPU的百分比

id,CPU完全空閑的百分比

上例可得:

sy高us低,以及高頻度的上下文切換(cs),說(shuō)明應(yīng)用程序進(jìn)行了大量的系統(tǒng)調(diào)用;

這臺(tái)4核機(jī)器的r應(yīng)該在12個(gè)以內(nèi),現(xiàn)在r在14個(gè)線程以上,此時(shí)CPU負(fù)荷很重。

  • 查看某個(gè)進(jìn)程占用的CPU資源

$  while :; do ps -eo pid,ni,pri,pcpu,psr,comm | grep 'test_command'; sleep 1; done

  PID  NI PRI %CPU PSR COMMAND

28577   0  23  0.0   0 test_command

28578   0  23  0.0   3 test_command

28579   0  23  0.0   2 test_command

28581   0  23  0.0   2 test_command

28582   0  23  0.0   3 test_command

28659   0  23  0.0   0 test_command

…… 

二、Memory

1、良好狀態(tài)指標(biāo)

  • swap in (si) == 0,swap out (so) == 0
  • 應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存 <= 70%

2、監(jiān)控工具

  • vmstat

$ vmstat 1

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  3 252696   2432    268   7148 3604 2368  3608  2372  288  288  0  0 21 78  1

0  2 253484   2216    228   7104 5368 2976  5372  3036  930  519  0  0  0 100  0

0  1 259252   2616    128   6148 19784 18712 19784 18712 3821 1853  0  1  3 95  1

1  2 260008   2188    144   6824 11824 2584 12664  2584 1347 1174 14  0  0 86  0

2  1 262140   2964    128   5852 24912 17304 24952 17304 4737 2341 86 10  0  0  4

重要參數(shù)

swpd,已使用的 SWAP 空間大小,KB 為單位;

free,可用的物理內(nèi)存大小,KB 為單位;

buff,物理內(nèi)存用來(lái)緩存讀寫(xiě)操作的buffer大小,KB 為單位;

cache,物理內(nèi)存用來(lái)緩存進(jìn)程地址空間的 cache 大小,KB 為單位;

si,數(shù)據(jù)從 SWAP 讀取到 RAM(swap in)的大小,KB 為單位;

so,數(shù)據(jù)從 RAM 寫(xiě)到 SWAP(swap out)的大小,KB 為單位。

上例可得:

物理可用內(nèi)存 free 基本沒(méi)什么顯著變化,swapd逐步增加,說(shuō)明最小可用的內(nèi)存始終保持在 256MB(物理內(nèi)存大小) * 10% = 2.56MB 左右,當(dāng)臟頁(yè)達(dá)到10%的時(shí)候就開(kāi)始大量使用swap。

  • free

$ free -m

total used free shared buffers cached

Mem: 8111 7185 926 0 243 6299

-/+ buffers/cache: 643 7468

Swap: 8189 0 8189

 

三、磁盤IO

1、良好狀態(tài)指標(biāo)

  • iowait % < 20%

提高命中率的一個(gè)簡(jiǎn)單方式就是增大文件緩存區(qū)面積,緩存區(qū)越大預(yù)存的頁(yè)面就越多,命中率也越高。

Linux 內(nèi)核希望能盡可能產(chǎn)生次缺頁(yè)中斷(從文件緩存區(qū)讀),并且能盡可能避免主缺頁(yè)中斷(從硬盤讀),這樣隨著次缺頁(yè)中斷的增多,文件緩存區(qū)也逐步增大,直到系統(tǒng)只有少量可用物理內(nèi)存的時(shí)候 Linux 才開(kāi)始釋放一些不用的頁(yè)。

2、監(jiān)控工具

  • 查看物理內(nèi)存和文件緩存情況

$ cat /proc/meminfo

MemTotal:      8182776 kB

MemFree:       3053808 kB

Buffers:        342704 kB

Cached:        3972748 kB

這臺(tái)服務(wù)器總共有 8GB 物理內(nèi)存(MemTotal),3GB 左右可用內(nèi)存(MemFree),343MB左右用來(lái)做磁盤緩存(Buffers),4GB左右用來(lái)做文件緩存區(qū)(Cached)。

  • sar

$ sar -d 2 3

Linux 2.6.9-42.ELsmp (webserver) 11/30/2008 _i686_ (8 CPU)

11:09:33 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

11:09:35 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

11:09:35 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

11:09:37 PM dev8-0 1.00 0.00 12.00 12.00 0.00 0.00 0.00 0.00

11:09:37 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

11:09:39 PM dev8-0 1.99 0.00 47.76 24.00 0.00 0.50 0.25 0.05

Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

Average: dev8-0 1.00 0.00 19.97 20.00 0.00 0.33 0.17 0.02

重要參數(shù):

await表示平均每次設(shè)備I/O操作的等待時(shí)間(以毫秒為單位)。

svctm表示平均每次設(shè)備I/O操作的服務(wù)時(shí)間(以毫秒為單位)。

%util表示一秒中有百分之幾的時(shí)間用于I/O操作。

如果svctm的值與await很接近,表示幾乎沒(méi)有I/O等待,磁盤性能很好,如果await的值遠(yuǎn)高于svctm的值,則表示I/O隊(duì)列等待太長(zhǎng),系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟?/span>

如果%util接近100%,表示磁盤產(chǎn)生的I/O請(qǐng)求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷的在工作,該磁盤可能存在瓶頸。

 

四、Network IO

對(duì)于UDP

1、良好狀態(tài)指標(biāo)

接收、發(fā)送緩沖區(qū)不長(zhǎng)時(shí)間有等待處理的網(wǎng)絡(luò)包

2、監(jiān)控工具

  • netstat

對(duì)于UDP服務(wù),查看所有監(jiān)聽(tīng)的UDP端口的網(wǎng)絡(luò)情況

$ watch netstat -lunp

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

udp        0      0 0.0.0.0:64000           0.0.0.0:*                           -

udp        0      0 0.0.0.0:38400           0.0.0.0:*                           -

udp        0      0 0.0.0.0:38272           0.0.0.0:*                           -

udp        0      0 0.0.0.0:36992           0.0.0.0:*                           -

udp        0      0 0.0.0.0:17921           0.0.0.0:*                           -

udp        0      0 0.0.0.0:11777           0.0.0.0:*                           -

udp        0      0 0.0.0.0:14721           0.0.0.0:*                           -

udp        0      0 0.0.0.0:36225           0.0.0.0:*                           -

RecvQ、SendQ為0,或者不長(zhǎng)時(shí)間有數(shù)值是比較正常的。

 

對(duì)于UDP服務(wù),查看丟包情況(網(wǎng)卡收到了,但是應(yīng)用層沒(méi)有處理過(guò)來(lái)造成的丟包)

$ watch netstat -su

Udp:

    278073881 packets received

    4083356897 packets to unknown port received.

    2474435364 packet receive errors

    1079038030 packets sent

packet receive errors 這一項(xiàng)數(shù)值增長(zhǎng)了,則表明在丟包。

這里有對(duì)“packet receive errors”的稍微詳細(xì)些的解釋,它包含了7種錯(cuò)誤,and通常表明是checksum錯(cuò)誤。不過(guò)我們通常通過(guò)這個(gè)數(shù)值的變化來(lái)判斷UDP服務(wù)是否丟包(第2項(xiàng)錯(cuò)誤),不知道是否有其他什么方法來(lái)判斷UDP的丟包?

"packet receive errors" usually means:

1) data is truncated, error in checksum while copying

2) udp queue is full, so it needs to be dropped

3) unable to receive udp package from encapsulated socket

4) sock_queue_rcv_skb() failed with -ENOMEM

5) it is a short packet

6) no space for header in udp packet when validating packet

7) xfrm6_policy_check() fails

many times it means the checksum is not right.

 

對(duì)于TCP(來(lái)自david的經(jīng)驗(yàn),thx~~

1、良好狀態(tài)指標(biāo)

對(duì)于TCP而言,不會(huì)出現(xiàn)因?yàn)榫彺娌蛔愣嬖趤G包的事,因?yàn)榫W(wǎng)絡(luò)等其他原因,導(dǎo)致丟了包,協(xié)議層也會(huì)通過(guò)重傳機(jī)制來(lái)保證丟的包到達(dá)對(duì)方。

所以,tcp而言更多的專注重傳率

2、監(jiān)控工具

# cat /proc/net/snmp | grep Tcp:

Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts

Tcp: 1 200 120000 -1 78447 413 50234 221 3 5984652 5653408 156800 0 849

重傳率 = RetransSegs / OutSegs

至于這個(gè)值在多少范圍內(nèi),算ok的,得看具體的業(yè)務(wù)了。

業(yè)務(wù)側(cè)更關(guān)注的是響應(yīng)時(shí)間。


本文原創(chuàng)自無(wú)線技術(shù)運(yùn)營(yíng)空間: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (專注無(wú)線技術(shù)運(yùn)營(yíng)——無(wú)線技術(shù)(操作系統(tǒng)/數(shù)據(jù)庫(kù)/WEB前端/負(fù)載均衡/系統(tǒng)容災(zāi)/系統(tǒng)安全/短信接入/WAP接入/3G等)、無(wú)線業(yè)務(wù)運(yùn)營(yíng)、無(wú)線開(kāi)放平臺(tái)、統(tǒng)計(jì)分析(用戶行為分析/數(shù)據(jù)挖掘)、CP合作,聯(lián)系我們:1780551083@qq.com)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多