要如何在 Linux 下針對不同的 I/O 與系統做壓力測試,可以參考下面幾種方式.
SysBench – http://benjr.tw/8715Linux 下常見的壓力測試工具不多,而且通常很分散,要不然就是協力廠商所開發的工具需收費而且所費不貲,不過現在 Linux 下有一套比較完整的壓力測試工具 sysbench ,具有 File I/O, CPU , Memory , Threads , Mutx , OLTP 等測試.Stressful Application Test (stressapptest) – http://benjr.tw/96740
Stressful Application Test (stressapptest) 程式可以在 memory 到 processor 與 I/O 之間產生大量的隨機流量,主要用於模擬系統在高負載情況下的壓力測試,他現在屬於 apache 2.0 license.memtest86+ – http://benjr.tw/491
在 Linux 的開機光碟中專門用來檢視記憶體模組的工具.Memtester – http://benjr.tw/96460
前面的 Memtest86+ 無法直接在 Linux 環境下直接來使用,Memtester 可以直接在 Linux 環境下執行.Fio – http://benjr.tw/96736
Fio 提供兩個參數可共硬碟做壓力測試.Prime95 (MPrime) – http://benjr.tw/99150
Prime95 是用來做 CPU 壓力測試的,由 GIMPS (Great Internet Mersenne Prime Search)所提供,主要是透過運算找出梅森質數,什麼是 質數(Prime number)指的是除了 1 和自身外,無法被其他自然數整除,何謂梅森質數 是指 2n − 1 ,是質數,就被稱為 梅森質數.Intel State Residency and Manipulation
CPU 在沒有使用時可以被停用或以比較低的效能模式來運行,依據不同的狀態可以區分成為 Processor Operating States (C-states) 與 Processor Performance States (P-states), 關於 CPU State 請參考 http://benjr.tw/99146 .但是這工具需要有 Intel 帳號.PTU (Power Thermal Utility)
Intel PTU (Power Thermal Utility) 可以用來測試 CPU 與 Memory 但是這工具需要有 Intel 帳號.
效能可以區分為兩個種類,一種是單體的效能(如 CPU , MEMORY , DISK , IO …),另外一種就是針對整個系統(單一伺服器 server , 單一儲存裝置 Storage 或是機櫃 Rack ),下面大部分使用的方式是透過 軟體+實際設備 的方式來進行效能測試.
除了這種方式外 QA 還會利用不同種類的電子量測設備來進行效能測試,如 Spirent (台灣代理 廣聯科技) ,IXIA (台灣代理 派恩科技), 以及其他的 立肯科技 或是 太克科技,使用電子量測設備的好處是可以比較快速看出系統在設計時有哪些瑕疵存在.外面廠商也有專門幫你做驗證的如 百佳泰.
性能 (Performance)下面是 Linux 環境下我常用的單體效能測試工具:
CPU
只能針對單核心在做運算,不推薦使用.Geekbench – http://benjr.tw/94201
針對 整數 (Integer performance) ,浮點數 (Floating point performance) 與 記憶體 (Memory performance)的運算(主要涵蓋了 加密,圖像處理,信號處理與物理模擬).Intel Memory Latency Checker – http://benjr.tw/99426
在 NUMA (Non-uniform memory access) 架構下,如何知道記憶體的存取效能如何,Intel 提供了 Memory Latency Checker 可以做檢查.Lmbench 測試處理器 – http://benjr.tw/98333 bw_pipe
產生兩個 processes (行程) 彼此交換 (pipe) 資料並測試其速度.bw_unix
產生了 parent (reader) , child (writer) processes彼 此交換 (pipe) 資料並測試其速度.
Memory
Lmbech 測試記憶體效能 – http://benjr.tw/98285
檔案 (硬碟) 到 memory 之間產生 mapping 並測試其讀取速度.bw_mem
主要在測試 processor 與 memory 之間的傳輸速度.bw_mmap_rd
從檔案 (硬碟) 到 memory 測試其讀取速度.
Lmbech 測試記憶體延遲 – http://benjr.tw/98338
lat_pagefaultThe time it takes to fault in a page from a file.lat_mem_rd
主要在測試 processor 與 memory 的讀取延遲 (latency).lat_mmap
這邊主要在測試 memory 到 檔案 (硬碟) 之間的延遲 (latency).
LMbench stream – http://benjr.tw/98356
John McCalpin’s stream benchmark
Disk
以前用過 dd , hdparm 或是 Iometer 來測試 Disk I/O 的是速度,但 dd, hdparm 太過簡單,Iometer 太過老舊 ,目前比較多人使用的是 Fio 這一支測試工具.
Network
Iometer –http://benjr.tw/94270利用 IOMeter 來測試網路效能,使用方式基本上跟 IOmeter 測試 Disk 一樣.iperf – http://benjr.tw/462
免費最簡單的網路效能測試工具.qperf – http://benjr.tw/486
RHEL6 預設的網路效能測試工具.IxChariot –http://benjr.tw/470
專業級的網路效能測試工具, IXIA 系列的產品 IxAutomate , IxExplorer , IxLoad.Pktgenhttp://benjr.tw/93300
Packet-Generation 它是一個 Linux 核心的模組,它可以以非常快的速度產生封包.Smartbits – http://benjr.tw/638TestCenter – http://benjr.tw/633
Smartbits (1G) / TestCenter (10G)是一套專門用來檢視網路設備的硬體檢測裝置,是由 SPIRENT 這一家公司所提供主要可以用來檢視網卡或是 switch 等網路裝置.
如果透過這些工具測試出來,發現效能不好該怎麼辦,這時候可以參考 Network 效能測試與調整 – http://benjr.tw/93408
系統效能 (Performance)Web Server
在架站之後,想要了解一下你的 http service (Apache) 的效能,這時候可以使用 web server 相關的效能測試程式.
Apache 內建的效能測試程式 – ab (Apache HTTP Server Benchmarking Tool)
加解密演算法
openssl speed – http://benjr.tw/94131透過 SSL 的加解密演算法來看你系統的效能 (CPU 與 memory 效能測試)
資料庫的效能評比
Sysbench oltp – http://benjr.tw/95251SysBench 裡面有一個測試項目就是針對資料庫的 oltp (Online transaction processing,線上交易處理) .Sysbech + MariaDB Galera Cluster + HAProxy – http://benjr.tw/95724
利用 MariaDB Galera Cluster , HAProxy 的架構來進行 Sysbech OLTP 測試.
雲端效能評比
TBD其他待評估
GPU – nvqual , gpu_burnBenchmark – Phoronix Test Suite + OpenBenchmarking , Intel® BITT , Bonnie++ , BurnInTest , stress-ng , SPECjbb benchmark , Google perfkit benchmarkerInfiniBand – ib_read_bw(read bandwidth) , ib_write_bw(write bandwidth)Filesystem Benchmark – Iozone , VDBench , diskspd(Windows) , ATTO Disk BenchmarkCPU – LinPack Benchmark , SPEC CPU2006Memory –Network – httperf , weighttp , httpress , siege , nttcp , netperfCloud – COSBenchOther – SPEC power_ssj2008 ,java performance testing tools , TPC Benchmark™ E (TPC-E) , The TPC Benchmark™H (TPC-H) , SPECjEnterprise2010 , IBM – Rational Performance Tester , HP – Loadrunner , Finisar Medusa Test Tool , Apache JMeter转载地址:
http://benjr.tw/532