16,228 瀏覽數

常用的 Performance / Monitor 工具

雖然自己是從事 QA(Quality Assurance) 相關測試工作,但對於這些工具的使用還是有很多問號,下面列出 Linux 下我常用的效能(Performance),監控(Monitor)與壓力(Stress)測試軟體.

單體效能
效能可以區分為兩個種類,一種是單體的效能(如 CPU , MEMORY , DISK , IO …),另外一種就是針對整個系統(單一伺服器 server , 單一儲存裝置 Storage 或是機櫃 Rack ),下面大部分使用的方式是透過 軟體+實際設備 的方式來進行效能測試.

除了這種方式外 QA 還會利用不同種類的電子量測設備來進行效能測試,如 Spirent (台灣代理 廣聯科技) ,IXIA (台灣代理 派恩科技), 以及其他的 立肯科技 或是 太克科技,使用電子量測設備的好處是可以比較快速看出系統在設計時有哪些瑕疵存在.
外面廠商也有專門幫你做驗證的如 百佳泰

下面是 Linux 環境下我常用的效能測試工具:

  1. CPU
    • CPU Burn-in
      只能針對單核心在做運算,不推薦使用
    • Geekbench
      針對 整數 (Integer performance) ,浮點數 (Floating point performance) 與 記憶體 (Memory performance)的運算(主要涵蓋了 加密,圖像處理,信號處理與物理模擬)
  2. Memory
  3. Disk
    • 測試磁碟 I/O 的工具 – iometer – Quick start , iometer
    • 除了 iometer 可以來測試硬碟的速度,你可以透過 hdparm 或是 dd 這是一個比較簡單的方式來看目前硬碟傳送的速度
    • 以前用過 dd , hdparm 或是 Iometer 來測試 Disk I/O 的是速度,但 dd, hdparm 太過簡單,Iometer 太過老舊 ,目前看到一套 Fio – Flexible I/O Tester 測試工具.
    • VDBench
    • diskspd
    • ATTO Disk Benchmark
  4. Network
    • 網路效能測試工具 – iperf
    • 網路效能測試工具 – qperf 功能比 iperf 要強大的多.
    • Pktgen – Packet-Generation 它是一個 Linux 核心的模組,它可以以非常快的速度產生封包
    • 另外一套專業級的網路效能測試工具 –IxChariot
      IXIA系列的 IxAutomate, IxExplorer, IxLoad
    • 其他 nttcp , netperf , vdbench , Finisar Medusa Test Tool
    • smartbits / TestCenter 是一套專門用來檢視網路設備的硬體檢測裝置,是由 SPIRENT 這一家公司所提供主要可以用來檢視網卡或是 switch 等網路裝置.
      乙太網路的發展已經大大超過當年的儲存貴族 Fiber Channel ,40/100G Network 都已經要問世了,測試治具也有了 Spirent 40/100G Ethernet test solutions

    如果透過這些工具測試出來,發現效能不好該怎麼辦,這時候可以透過 Network 效能測試與調整

系統效能

其他待評估
Phoronix Test Suite + OpenBenchmarking
Intel® BITT



Monitor
我要怎麼知道在 Linux 下系統使用資原狀況,透過下面的的系統使用資源監控程式,可以清楚知道目前系統的狀況,一般可以區分 文字介面 與 圖形介面 兩大類.

  1. 文字介面
    • top Linux 預設最古老的系統資源監控程式 –
    • iostat 最簡單的硬碟監測工具
    • 透過 mpstat 來看個別的 CPU 使用率與統計
    • sar – CPU , Memory ,I/O (Disk, Network) 的資料都可透過這一支程式來統計
    • dstat – 提供更多元的設定方式來顯示要監控的 CPU , Memory ,I/O (Disk, Network) 資料
    • nmon – 比上面幾種都還要好用的系統資源監控程式
  2. 圖形介面
    • gnome-system-monitor 有點像是 Windows 的工作管理員.雖然功能不多但是該有的資訊都還是可以看到.只要是 Gnome 的桌面系統都可以找到.
    • ksysguard – KDE 底功能最完整的監控程式 –
    • gkrellm 不是Linux 系統預設的系統資源監控程式,不過使用上相當直覺.
    • ntop 這是一套用來觀測網路狀態的軟體,直接透過 web 的方式來進行
    • wireshark



Stress
要如何在 Linux 下針對不同的 I/O 與系統做壓力測試,可以參考下面幾種方式.

  • SysBench
    Linux 下常見的壓力測試工具不多,而且通常很分散,要不然就是協力廠商所開發的工具需收費而且所費不貲,不過現在 Linux 下有一套比較完整的壓力測試工具 sysbench ,具有 File I/O, CPU , Memory , Threads , Mutx , OLTP 等測試.
  • 在 Linux 的開機光碟中有提供一支專門用來檢視記憶體模組的工具,他就是 memtest86+ – memtest86+



下面的要找時間試,但一直沒有空試.

  • Bonnie++
  • BurnInTest
  • Iozone
  • stress-ng
  • Intel PTU
  • Turbostat
  • LinPack Benchmark
  • LMBench
  • ib_read_bw
  • ib_write_bw
  • SPEC CPU2006
  • SPECjbb benchmark
  • SPEC power_ssj2008

發表迴響