Linux預熱之網絡性能問題

一. CPU性能評估ios

      1.vmstat  [-V]  [-n]  [depay  [count]]緩存

          -V : 打印出版本信息,可選參數網絡

          -n : 在週期性循環輸出時,頭部信息僅顯示一次ide

          delay : 兩次輸出之間的時間間隔性能

          count : 按照delay指定的時間間隔統計的次數。默認是1優化

          如:vmstat 1 3操作系統

         user1@user1-desktop:~$ vmstat 1 3接口

         procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----隊列

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

        0  0      0 1051676 139504 477028    0    0    46    31  130  493  3  1 95  2

        0  0      0 1051668 139508 477028    0    0     0     4  377 1792  3  1 95  0

        0  0      0 1051668 139508 477028    0    0     0     0  327 1741  3  1 95  0

         r : 運行和等待CPU時間片的進程數(若長期大於CPU的個數,說明CPU不足,須要增長CPU)【注意】

         b : 在等待資源的進程數(如等待I/O或者內存交換等)

         swpd : 切換到內存交換區的內存數量,單位kB

         free : 當前空閒物理內存,單位kB

         buff : buffers cache的內存數量,通常對塊設備的讀寫才須要緩存

         cache : page cached的內存數量,通常做爲文件系統cached,頻繁訪問的文件都會被cached

         si : 由磁盤調入內存,即內存進入內存交換區的數量

         so : 內存調入磁盤,內存交換區進入內存的數量

         bi : 從塊設備讀入數據的總量,即讀磁盤,單位kB/s

         bo : 寫入到塊設備的數據總量,即寫磁盤,單位kB/s

         in : 某一時間間隔中觀測到的每秒設備中斷數

         cs : 每秒產生的上下文切換次數

         us :用戶進程消耗的CPU時間百分比【注意】

         sy : 內核進程消耗CPU時間百分比【注意】

         id : CPU處在空閒狀態的時間百分比【注意】

         wa :IO等待所佔用的CPU時間百分比

        若是si、so的值長期不爲0,表示系統內從不足,須要增長系統內存

        bi+bo參考值爲1000,若超過1000,且wa較大,表示系統IO有問題,應該提升磁盤的讀寫性能

        in與cs越大,內核消耗的CPU時間就越多

        us+sy參考值爲80%,若是大於80%,說明可能存在CPU資源不足的狀況

        綜上所述,CPU性能評估中重點注意r、us、sy和id列的值。

      

     2. sar  [options]  [-o  filename]  [interval  [count] ]

            options:

                           -A :顯示系統全部資源設備(CPU、內存、磁盤)的運行狀態

                           -u : 顯示系統全部CPU在採樣時間內的負載狀態

                           -P : 顯示指定CPU的使用狀況(CPU計數從0開始)

                           -d : 顯示全部硬盤設備在採樣時間內的使用情況

                           -r : 顯示內存在採樣時間內的使用情況

                           -b : 顯示緩衝區在採樣時間內的使用狀況

                           -v : 顯示進程、文件、I節點和鎖表狀態

                           -n : 顯示網絡運行狀態。參數後跟DEV(網絡接口)、EDEV(網絡錯誤統計)、SOCK(套接字)、FULL(顯示其它3個參數全部)。可單獨或一塊兒使用

                           -q : 顯示運行隊列的大小,與系統當時的平均負載相同

                           -R : 顯示進程在採樣時間內的活動狀況

                           -y : 顯示終端設備在採樣時間內的活動狀況

                           -w : 顯示系統交換活動在採樣時間內的狀態

                           -o : 將命令結果以二進制格式存放在指定的文件中

                           interval : 採樣間隔時間,必須有的參數

                           count : 採樣次數,默認1

                           如:sar  -u  1 3

                           user1@user1-desktop:~$ sar -u 1 3

                           Linux 2.6.35-27-generic (user1-desktop)     2011年03月05日     _i686_    (2 CPU)


                           09時27分18秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

                           09時27分19秒     all      1.99      0.00      0.50      5.97      0.00     91.54

                           09時27分20秒     all      3.90      0.00      2.93      5.85      0.00     87.32

                           09時27分21秒     all      2.93      0.00      1.46      4.39      0.00     91.22

                           平均時間:     all      2.95      0.00      1.64      5.40      0.00     90.02

                           %user : 用戶進程消耗CPU時間百分比

                           %nice : 運行正常進程消耗CPU時間百分比

                           %system : 系統進程消耗CPU時間百分比

                           %iowait : IO等待多佔用CPU時間百分比

                           %steal : 內存在相對緊張壞經下pagein強制對不一樣頁面進行的steal操做

                           %idle : CPU處在空閒狀態的時間百分比

 

  3. iostat  [-c | -d]  [-k]  [-t]  [-x [device]]  [interval [count]]

            -c :顯示CPU使用狀況

            -d :顯示磁盤使用狀況

            -k : 每秒以k bytes爲單位顯示數據

            -t : 打印出統計信息開始執行的時間

            -x device : 指定要統計的磁盤設備名稱,默認爲全部磁盤設備

            interval : 制定兩次統計時間間隔

            count : 統計次數

            如: iostat  -c

            user1@user1-desktop:~$ iostat -c

            Linux 2.6.35-27-generic (user1-desktop)     2011年03月05日     _i686_    (2 CPU)


            avg-cpu:  %user   %nice %system %iowait  %steal   %idle

                             2.51    0.02    1.27    1.40    0.00   94.81

            (每項表明的含義與sar相同)

                            

  4. uptime ,如:

                          user1@user1-desktop:~$ uptime

                          10:13:30 up  1:15,  2 users,  load average: 0.00, 0.07, 0.11

                     顯示的分別是:系統當前時間,系統上次開機到如今運行了多長時間,目前登陸用戶個數,系統在1分鐘內、5分鐘內、15分鐘內的平均負載

                          注意:load average的三個值通常不能大於系統CPU的個數,不然說明CPU很繁忙


二 . 內存性能評估

         1.  free

         2.  watch 與 free 相結合,在watch後面跟上須要運行的命令,watch就會自動重複去運行這個命令,默認是2秒執行一次,如:

              Every 2.0s: free                                        Sat Mar  5 10:30:17 2011


                                    total       used       free     shared    buffers     cached

              Mem:       2060496    1130188     930308          0     261284     483072

              -/+ buffers/cache:     385832    1674664

              Swap:      3000316          0    3000316

           (-n指定重複執行的時間,-d表示高亮顯示變更)

        3.使用vmstat,關注swpd、si和so

        4. sar  -r,如:

                              user1@user1-desktop:~$ sar -r 2 3

                              Linux 2.6.35-27-generic (user1-desktop)     2011年03月05日     _i686_    (2 CPU)


                              10時34分11秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit  %commit

                              10時34分13秒    923548   1136948     55.18    265456    487156   1347736     26.63

                              10時34分15秒    923548   1136948     55.18    265464    487148   1347736     26.63

                              10時34分17秒    923548   1136948     55.18    265464    487156   1347736     26.63

                              平均時間:    923548   1136948     55.18    265461    487153   1347736     26.63

                              kbmemfree : 空閒物理內存

                              kbmemused : 已使用物理內存

                              %memused : 已使用內存佔總內存百分比

                              kbbuffers : Buffer Cache大小

                              kbcached : Page Cache大小

                              kbcommit : 應用程序當前使用內存大小

                              %commit : 應用程序使用內存百分比


 

 

三 . 磁盤I/O性能評估

         1. sar -d ,如:

             user1@user1-desktop:~$ sar -d 1 3

            Linux 2.6.35-27-generic (user1-desktop)     2011年03月05日     _i686_    (2 CPU)


            10時42分27秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

            10時42分28秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00


            10時42分28秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

            10時42分29秒    dev8-0      2.00      0.00     64.00     32.00      0.02      8.00      8.00      1.60


            10時42分29秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

            10時42分30秒    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00


            平均時間:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

            平均時間:    dev8-0      0.67      0.00     21.33     32.00      0.01      8.00      8.00      0.53

             DEV : 磁盤設備名稱

             tps : 每秒到物理磁盤的傳送數,即每秒的I/O流量。一個傳送就是一個I/O請求,多個邏輯請求能夠被合併爲一個物理I/O請求

             rc_sec/s: 每秒從設備讀入的扇區數(1扇區=512字節)

             wr_sec/s : 每秒寫入設備的扇區數目

             avgrq-sz : 平均每次設備I/O操做的數據大小(以扇區爲單位)

             avgqu-sz : 平均I/O隊列的長度

             await : 平均每次設備I/O操做的等待時間(毫秒)

             svctm :平均每次設備I/O 操做的服務時間(毫秒)

             %util : 一秒中有百分之幾的時間用用於I/O操做

             正常狀況下svctm應該小於await,而svctm的大小和磁盤性能有關,CPU、內存的負荷也會對svctm值形成影響,過多的請求也會簡介致使svctm值的增長。

             await的大小通常取決與svctm的值和I/O隊列長度以及I/O請求模式。若是svctm與await很接近,表示幾乎沒有I/O等待,磁盤性能很好;若是await的值遠高於svctm的值,表示I/O隊列等待太長,系統上運行的應用程序將變慢,此時能夠經過更換更快的硬盤來解決問題。

             %util若接近100%,表示磁盤產生I/O請求太多,I/O系統已經滿負荷地在工做,該磁盤可能存在瓶頸。長期下去,勢必影響系統的性能,可經過優化程序或者經過更換更高、更快的磁盤來解決此問題。

          

          2. iostat  -d

              user1@user1-desktop:~$ iostat -d 2 3

              Linux 2.6.35-27-generic (user1-desktop)     2011年03月05日     _i686_    (2 CPU)


              Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

              sda               5.89       148.87        57.77    1325028     514144


              Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

              sda               0.00         0.00         0.00          0          0


              Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

              sda               0.00         0.00         0.00          0          0

           Blk_read/s : 每秒讀取的數據塊數

              Blk_wrtn/s : 每秒寫入的數據塊數

              Blk_read : 讀取的全部塊數

              Blk_wrtn : 寫入的全部塊數

              若是Blk_read/s很大,表示磁盤直接讀取操做不少,能夠將讀取的數據寫入內存中進行操做;若是Blk_wrtn/s很大,表示磁盤的寫操做很頻繁,能夠考慮優化磁盤或者優化程序。這兩個選項沒有一個固定的大小,不一樣的操做系統值也不一樣,但長期的超大的數據讀寫,確定是不正常的,必定會影響系統的性能。

           3. iostat  -x  /dev/sda  2  3  ,對指定磁盤的單獨統計

           4. vmstat -d


四 . 網絡性能評估

           1. ping

                     time值顯示了兩臺主機之間的網絡延時狀況,若很大,表示網絡的延時很大。packets loss表示網絡丟包率,越小表示網絡的質量越高。

           2. netstat  -i ,如:

                     user1@user1-desktop:~$ netstat -i

                     Kernel Interface table

                     Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg

                     eth0       1500 0   6043239      0      0 0         87311      0      0      0 BMRU

                     lo        16436 0      2941      0      0 0          2941      0      0      0 LRU

                     Iface : 網絡設備的接口名稱

                     MTU : 最大傳輸單元,單位字節

                     RX-OK / TX-OK : 準確無誤地接收 / 發送了多少數據包

                     RX-ERR / TX-ERR : 接收 / 發送數據包時產生了多少錯誤

                     RX-DRP / TX-DRP : 接收 / 發送數據包時丟棄了多少數據包

                     RX-OVR / TX-OVR : 因爲偏差而遺失了多少數據包

                     Flg :接口標記,其中:

                                                          L :該接口是個迴環設備

                                                          B : 設置了廣播地址

                                                          M : 接收全部的數據包

                                                          R :接口正在運行

                                                          U : 接口處於活動狀態

                                                          O : 在該接口上禁用arp

                                                          P :表示一個點到點的鏈接

                       正常狀況下,RX-ERR,RX-DRP,RX-OVR,TX-ERR,TX-DRP,TX-OVR都應該爲0,若不爲0且很大,那麼網絡質量確定有問題,網絡傳輸性能也必定會降低。

                        當網絡傳輸存在問題時,能夠檢測網卡設備是否存在故障,還能夠檢查網絡部署環境是否合理。


         3. netstat -r  (default行對應的值表示系統的默認路由)


         4. sar -n  ,n後爲DEV(網絡接口信息)、EDEV(網絡錯誤統計信息)、SOCK(套接字信息)、和FULL(顯示全部)

                      wangxin@wangxin-desktop:~$ sar -n DEV 2 3

                      Linux 2.6.35-27-generic (wangxin-desktop)     2011年03月05日     _i686_    (2 CPU)


                      11時55分32秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

                      11時55分34秒        lo      2.00      2.00      0.12      0.12      0.00      0.00      0.00

                      11時55分34秒      eth0      2.50      0.50      0.31      0.03      0.00      0.00      0.00


                      11時55分34秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

                      11時55分36秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

                      11時55分36秒      eth0      1.50      0.00      0.10      0.00      0.00      0.00      0.00


                      11時55分36秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

                      11時55分38秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

                      11時55分38秒      eth0     14.50      0.00      0.88      0.00      0.00      0.00      0.00


                      平均時間:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

                      平均時間:        lo      0.67      0.67      0.04      0.04      0.00      0.00      0.00

                      平均時間:      eth0      6.17      0.17      0.43      0.01      0.00      0.00      0.00

                       IFACE : 網絡接口設備

                       rxpck/s : 每秒接收的數據包大小

                       txpck/s  : 每秒發送的數據包大小

                       rxkB/s : 每秒接受的字節數

                       txkB/s : 每秒發送的字節數

                       rxcmp/s : 每秒接受的壓縮數據包

                       txcmp/s : 每秒發送的壓縮數據包

                       rxmcst/s : 每秒接受的多播數據包

相關文章
相關標籤/搜索