測網速 fping Linux查看網絡即時網速 linux性能問題(CPU,內存,磁盤I/O,網絡)


Linux查看網絡即時網速

fping 是ping 工具的加強版本

  • 例出局域網中存活的主機 (Ubuntu apt-get裝上  cnetos裝不上)

zzx@zzx11:~$ fping -a 192.168.1.1/24 -g 2> /dev/null 

查cpu和io     sar 1 3  或者iostat 1 3 

查網絡

sar -n DEV 1 100

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

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

zzx@zzx120:~$ sar -r 1 3    查內存

或者用Python腳本

$ wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
$ chmod a+rx speedtest_cli.py

[root@localhost c]# ./speedtest_cli.py   # 實測不准的  怎么可能到7M 家里寬帶最多2M下載
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Guangdong Mobile (223.73.122.175)...
Selecting best server based on latency...
Hosted by Unicom-GZ (Guangzhou) [49.47 km]: 11.453 ms
Testing download speed........................................
Download: 7.87 Mbit/s
Testing upload speed..................................................
Upload: 7.81 Mbit/s



1代表一秒統計並顯示一次
100代表統計一百次
使用ntop等工具,就更方便簡單了,不過這個更靈活

 

P.S.

sar在sysstat包

 

一. CPU性能評估

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

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

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

          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 ,如:(還有一個命令  w  )

                          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秒執行一次,如:( watch free )

              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 : 每秒接受的多播數據包

 

 

 查流量  nload  、iptraf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM