<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

    Linux系統(tǒng)性能調(diào)優(yōu)之性能分析

    性能調(diào)優(yōu)的第一步是性能分析,下面從性能分析著手進(jìn)行一些介紹,尤其對(duì)Linux性能分析工具vmstat的用法和實(shí)踐進(jìn)行詳細(xì)介紹。

      1、性能分析的目的

      1)找出系統(tǒng)性能瓶頸(包括硬件瓶頸和軟件瓶頸);

      2)提供性能優(yōu)化的方案(升級(jí)硬件?改進(jìn)系統(tǒng)系統(tǒng)結(jié)構(gòu)?);

      3)達(dá)到合理的硬件和軟件配置;

      4)使系統(tǒng)資源使用達(dá)到最大的平衡。(一般情況下系統(tǒng)良好運(yùn)行的時(shí)候恰恰各項(xiàng)資源達(dá)到了一個(gè)平衡體,任何一項(xiàng)資源的過(guò)渡使用都會(huì)造成平衡體系破壞,從而造成系統(tǒng)負(fù)載極高或者響應(yīng)遲緩。比如CPU過(guò)渡使用會(huì)造成大量進(jìn)程等待CPU資源,系統(tǒng)響應(yīng)變慢,等待會(huì)造成進(jìn)程數(shù)增加,進(jìn)程增加又會(huì)造成內(nèi)存使用增加,內(nèi)存耗盡又會(huì)造成虛擬內(nèi)存使用,使用虛擬內(nèi)存又會(huì)造成磁盤IO增加和CPU開(kāi)銷增加)

      2、影響性能的因素

      1)CPU(cpu的速度與性能很大一部分決定了系統(tǒng)整體的性能,是否使用SMP)

      2)內(nèi)存(物理內(nèi)存不夠時(shí)會(huì)使用交換內(nèi)存,使用swap會(huì)帶來(lái)磁盤I0和cpu的開(kāi)銷)

      3)硬盤(存儲(chǔ)系統(tǒng))

      a、Raid技術(shù)使用(RAID0,RAID1,RAID5,RAID0+1)

      b、小文件讀寫(xiě)瓶頸是磁盤的尋址(tps),大文件讀寫(xiě)的性能瓶頸是帶寬

      c、Linux可以利用空閑內(nèi)存作文件系統(tǒng)訪問(wèn)的cache,因此系統(tǒng)內(nèi)存越大存儲(chǔ)系統(tǒng)的性能也越好

      4)網(wǎng)絡(luò)帶寬。

      3、性能分析的步驟

      1)對(duì)資源的使用狀況進(jìn)行長(zhǎng)期的監(jiān)控和數(shù)據(jù)采集(nagios、cacti)

      2)使用常見(jiàn)的性能分析工具(vmstat、top、free、iostat等)

      3)經(jīng)驗(yàn)積累

      a、應(yīng)用程序設(shè)計(jì)的缺陷和數(shù)據(jù)庫(kù)查詢的濫用最有可能導(dǎo)致性能問(wèn)題

      b、性能瓶頸可能是因?yàn)槌绦虿?內(nèi)存不足/磁盤瓶頸,但最終表現(xiàn)出的結(jié)果就是CPU耗盡,系統(tǒng)負(fù)載極高,響應(yīng)遲緩,甚至?xí)簳r(shí)失去響應(yīng)

      c、物理內(nèi)存不夠時(shí)會(huì)使用交換內(nèi)存,使用swap會(huì)帶來(lái)磁盤I0和cpu的開(kāi)銷

      d、可能造成cpu瓶頸的問(wèn)題:頻繁執(zhí)Perl,php,java程序生成動(dòng)態(tài)web;數(shù)據(jù)庫(kù)查詢大量的where子句、order by/group by排序……

      e、可能造成內(nèi)存瓶頸問(wèn)題:高并發(fā)用戶訪問(wèn)、系統(tǒng)進(jìn)程多,java內(nèi)存泄露……

      f、可能造成磁盤IO瓶頸問(wèn)題:生成cache文件,數(shù)據(jù)庫(kù)頻繁更新,或者查詢大表……

      4、vmstat詳細(xì)介紹

      vmstat是一個(gè)很全面的性能分析工具,可以觀察到系統(tǒng)的進(jìn)程狀態(tài)、內(nèi)存使用、虛擬內(nèi)存使用、磁盤的IO、中斷、上下文切換、CPU使用等。對(duì)于 Linux 的性能分析,100%理解 vmstat 輸出內(nèi)容的含義,并能靈活應(yīng)用,那對(duì)系統(tǒng)性能分析的能力就算是基本掌握了。

      下面是vmstat命令的輸出結(jié)果:

    [root@monitor-www ~]# vmstat 1 5
    procs         —————memory—————      ——swap—— ——io——  ——system——   ——cpu——
    r   b    swpd     free       buff      cache   si    so    bi     bo      in    cs    us sy  id wa st
    1   0    84780    909744   267428    1912076   0     0     20     94       0     0     2  1  95  1  0
    1   2    84780    894968   267428    1912216   0     0      0   1396    2301 11337     8  3  89  0  0
    1   0    84780    900680   267428    1912340   0     0     76   1428    1854  8082     7  2  90  0  0
    1   0    84780    902544   267432    1912548   0     0    116    928    1655  7502     7  2  92  0  0
    2   0    84780    900076   267432    1912948   0     0    180    904    1963  8703    10  3  87  0  0

     對(duì)輸出解釋如下:

      1)procs

      a.r列表示運(yùn)行和等待CPU時(shí)間片的進(jìn)程數(shù),這個(gè)值如果長(zhǎng)期大于系統(tǒng)CPU個(gè)數(shù),就說(shuō)明CPU資源不足,可以考慮增加CPU;

      b.b列表示在等待資源的進(jìn)程數(shù),比如正在等待I/O或者內(nèi)存交換等。

      2)memory

      a、swpd列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以KB為單位)。如果swpd的值不為0或者比較大,而且si、so的值長(zhǎng)期為0,那么這種情況一般不用擔(dān)心,不會(huì)影響系統(tǒng)性能;

      b、free列表示當(dāng)前空閑的物理內(nèi)存數(shù)量(以KB為單位);

      c、buff列表示buffers cache的內(nèi)存數(shù)量,一般對(duì)塊設(shè)備的讀寫(xiě)才需要緩沖;

      d、cache列表示page cached的內(nèi)存數(shù)量,一般作文件系統(tǒng)的cached,頻繁訪問(wèn)的文件都會(huì)被cached。如果cached值較大,就說(shuō)明cached文件數(shù)較多。如果此時(shí)IO中的bi比較小,就說(shuō)明文件系統(tǒng)效率比較好。

      3)swap

      a、si列表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進(jìn)入內(nèi)存交換區(qū)的數(shù)量;

      b、so列表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進(jìn)入內(nèi)存的數(shù)量

      c、一般情況下,si、so的值都為0,如果si、so的值長(zhǎng)期不為0,則表示系統(tǒng)內(nèi)存不足,需要考慮是否增加系統(tǒng)內(nèi)存。

      4)IO

      a、bi列表示從塊設(shè)備讀入的數(shù)據(jù)總量(即讀磁盤,單位KB/秒)

      b、bo列表示寫(xiě)入到塊設(shè)備的數(shù)據(jù)總量(即寫(xiě)磁盤,單位KB/秒)

      這里設(shè)置的bi+bo參考值為1000,如果超過(guò)1000,而且wa值比較大,則表示系統(tǒng)磁盤IO性能瓶頸。

      5)system

      a、in列表示在某一時(shí)間間隔中觀察到的每秒設(shè)備中斷數(shù);

      b、cs列表示每秒產(chǎn)生的上下文切換次數(shù)。

      上面這兩個(gè)值越大,會(huì)看到內(nèi)核消耗的CPU時(shí)間就越多。

      6)CPU

      a、us列顯示了用戶進(jìn)程消耗CPU的時(shí)間百分比。us的值比較高時(shí),說(shuō)明用戶進(jìn)程消耗的CPU時(shí)間多,如果長(zhǎng)期大于50%,需要考慮優(yōu)化程序啥的。

      b、sy列顯示了內(nèi)核進(jìn)程消耗CPU的時(shí)間百分比。sy的值比較高時(shí),就說(shuō)明內(nèi)核消耗的CPU時(shí)間多;如果us+sy超過(guò)80%,就說(shuō)明CPU的資源存在不足。

      c、id列顯示了CPU處在空閑狀態(tài)的時(shí)間百分比;

      d、wa列表示IO等待所占的CPU時(shí)間百分比。wa值越高,說(shuō)明IO等待越嚴(yán)重。如果wa值超過(guò)20%,說(shuō)明IO等待嚴(yán)重。

      e、st列一般不關(guān)注,虛擬機(jī)占用的時(shí)間百分比。 (Linux 2.6.11)

    posted on 2013-03-25 10:19 順其自然EVO 閱讀(2350) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄linux

    <2013年3月>
    242526272812
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲精品9999久久久久无码 | 午夜视频免费成人| 99在线免费视频| 亚洲Av无码国产一区二区| 亚洲美免无码中文字幕在线| 国产亚洲AV手机在线观看| 免费看少妇作爱视频| 免费观看无遮挡www的视频| 国产拍拍拍无码视频免费| 在线91精品亚洲网站精品成人| 亚洲一本之道高清乱码| 亚洲人成电影福利在线播放| 亚洲无线码一区二区三区| 免费国产人做人视频在线观看| 亚洲日韩精品一区二区三区| 国产又黄又爽又刺激的免费网址 | 亚洲人成电影在在线观看网色| 怡红院亚洲怡红院首页| 亚洲国产天堂久久综合| 国产成人无码区免费A∨视频网站| 无码一区二区三区AV免费| 老司机在线免费视频| 免费观看无遮挡www的小视频| 18禁美女裸体免费网站| 99久久免费中文字幕精品| 午夜视频免费在线观看| 久久国产精品免费视频| 无码人妻一区二区三区免费n鬼沢| 青青操免费在线观看| 青柠影视在线观看免费| 在线成人精品国产区免费| 免费一区二区无码东京热| 中文字幕免费在线播放| 国产午夜精品理论片免费观看| 中文永久免费观看网站| 中文字幕免费观看全部电影| 中国一级特黄的片子免费| 国产自国产自愉自愉免费24区| 亚洲免费观看视频| 中文字幕在线免费观看| AV无码免费永久在线观看|