1. 程式人生 > >sysbench效能測試工具

sysbench效能測試工具

sysbench是一個模組化的、跨平臺、多執行緒基準,主要用於評估測試各種不同系統引數下的資料庫負載情況。它主要包括以下幾種方式的測試工具。

一、安裝

        首先,在 http://sourceforge.net/projects/sysbench 下載原始碼包。

        接下來,按照以下步驟安裝:

tar zxf sysbench-0.4.12.tar.gz

cd sysbench-0.4.12

./configure && make && make install

        以上方法適用於 MySQL 安裝在標準預設目錄下的情況,如果 MySQL 並不是安裝在標準目錄下的話,那麼就需要自己指定 MySQL 的路徑了。比如我的 MySQL 喜歡自己安裝在 /usr/local/mysql 下,則按照以下方法編譯:

./configure --with-mysql-includes=/usr/local/mysql/include/mysql --with-mysql-libs=/usr/local/mysql/lib/mysql && make && make install

     當然了,用上面的引數編譯的話,就要確保你的 MySQL lib目錄下有對應的 so 檔案,如果沒有,可以自己下載 devel 或者 share 包來安裝(推薦使用MySQL的原始碼包安裝)。

        另外,如果想要讓 sysbench 支援 pgsql/oracle 的話,就需要在編譯的時候加上引數

--with-pgsql

或者

--with-oracle

        這2個引數預設是關閉的,只有 MySQL 是預設支援的。

二、使用方法

        編譯成功之後,就要開始測試各種效能了,測試的方法官網網站上也提到一些,但涉及到 OLTP 測試的部分卻不夠準確。在這裡我大致提一下:

1、cpu效能測試 

sysbench --test=cpu --cpu-max-prime=20000 run

        cpu測試主要是進行素數的加法運算,在上面的例子中,指定了最大的素數為 20000,自己可以根據機器cpu的效能來適當調整數值。

2、執行緒測試 

sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run

3、磁碟IO效能測試 

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup

        上述引數指定了最大建立16個執行緒,建立的檔案總大小為3G,檔案讀寫模式為隨機讀(rndrw)。

4、記憶體測試 

sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run

        上述引數指定了本次測試整個過程是在記憶體中傳輸 4G 的資料量,每個 block 大小為 8K。

5、OLTP測試 

sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test prepare

        上述引數指定了本次測試的表儲存引擎型別為 myisam,另外,指定了表最大記錄數為 1000000,其他引數就很好理解了,主要是指定登入方式。測試 OLTP 時,可以自己先建立資料庫 sbtest,或者自己用引數 --mysql-db 來指定其他資料庫。--mysql-table-engine 還可以指定為 innodb 等 MySQL 支援的表儲存引擎型別。

測試的時候注意thread數大於兩倍CPU數,測試檔案大小大於5倍記憶體大小。

拿兩臺機器,test1(8CPU,16G記憶體)和test2(3CPU,8G記憶體)來做測試

1、 cpu效能測試

sysbench --test=cpu --num-threads=32 --cpu-max-prime=90000 run

cpu測試主要是進行素數的加法運算,在上面的例子中,指定了最大的素數為 90000,

root :/root>#sysbench --test=cpu --num-threads=32 --cpu-max-prime=90000 run

2、 執行緒測試

sysbench --test=threads --num-threads=512 --thread-yields=100 --thread-locks=2 run

thread-locks小於執行緒數除以2,lock越少,處理時間越長。

test1: sysbench --test=threads --num-threads=512 --thread-yields=100 --thread-locks=2 run

3、磁碟IO效能測試

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run

sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup上述引數指定了最大建立16個執行緒,建立的文件總大小為3G,文件讀寫模式為隨機讀。

CD到空間足夠的檔案系統,執行命令等待建立

test1:/root>#sysbench --test=fileio --num-threads=64 --file-total-size=12G --file-test-mode=rndrw prepare

我們看到兩臺機器的速度差好多,一個64M/S,一個19M/S.第二臺估計有問題,需要找找原因。測試完後記得刪除資料,否則會佔用空間。

sysbench --test=fileio --num-threads=64 --file-total-size=12G --file-test-mode=rndrw cleanup

4、記憶體測試

sysbench --test=memory --memory-block-size=8192 --memory-total-size=4G run上述引數指定了本次測試整個過程是在記憶體中傳輸 4G 的資料量,每個 block 大小為 8K。

test1:/root>#sysbench --test=memory --num-threads=32 --memory-block-size=8192 --memory-total-size=512G run

5、OLTP測試

     1 、準備資料

# sysbench --debug=off --test=oltp --mysql-host=10.15.2.137 --mysql-user=test --mysql-password=test --oltp-table-size=1000000 --mysql-db=test --oltp-table-name=stest --num-threads=20 --max-requests=10000 --oltp-auto-inc=off --mysql-engine-trx=yes prepare

      2、測試

# sysbench --debug=off --test=oltp --mysql-host=10.15.2.137 --mysql-user=test --mysql-password=test --oltp-table-size=1000000 --mysql-db=test --oltp-table-name=stest --num-threads=20 --max-requests=10000 --oltp-auto-inc=off --mysql-engine-trx=yes run

       3、刪除資料

# sysbench --debug=off --test=oltp --mysql-host=10.15.2.137 --mysql-user=test --mysql-password=test --oltp-table-size=1000000 --mysql-db=test --oltp-table-name=stest --num-threads=20 --max-requests=10000 --oltp-auto-inc=off --mysql-engine-trx=yes cleanup

指定了表最大記錄數為 1000000,其他引數就很好理解了,主要是指定登入方式。測試 OLTP 時,能夠自己先建立資料庫 sbtest,或自己用引數 --mysql-db 來指定其他資料庫。--mysql-table-engine 還能夠指定為 innodb 等 MySQL 支援的表儲存引擎型別。

三、報錯及注意事項:

1、安裝報錯:

a) 畢後,如果在執行時出現下面的錯誤提示:

sysbench: error while loading shared libraries: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

使用下面的命令檢視libmysqlclient_r.so.16是否存在

[[email protected] sysbench-0.4.8]# find / -name "libmysqlclient_r.so.16" -print

/usr/local/lib/mysql/libmysqlclient_r.so.16

結果顯示是存在的,那麼我們需要做個連結

[[email protected] sysbench-0.4.8]# ln -s /usr/local/lib/mysql/libmysqlclient_r.so.16 /lib/libmysqlclient_r.so.16

如果沒有,可以自己下載 devel 或者 share 包來安裝。

b)# make 時報錯:

drv_mysql.c:35:19: mysql.h: No such file or directory

是因為找不到mysql 的標頭檔案,只要 --with-mysql-includes= 確定好路徑就可以了我的應該是 ./configure --with-mysql-includes=/usr/local/mysql/include/mysql --with-mysql-libs=/usr/local/mysql/lib/mysql     

c) # make 時報錯:

../libtool: line 838: X--tag=CC: command not found

../libtool: line 871: libtool: ignoring unknown tag : command not found

../libtool: line 838: X--mode=link: command not found

../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found

../libtool: line 1005: *** Future versions of Libtool will require --mode=MODE be specified.: command not found

../libtool: line 2231: X-g: command not found

../libtool: line 2231: X-O2: command not found

../libtool: line 1951: X-L/usr/local/mysql/lib/mysql/: No such file or directory

../libtool: line 2400: Xsysbench: command not found

(1) 方法 :只要先執行一次autogen.sh,然後再configure,make就可以了,作者的主頁有說明的

(2) 方法:是因為libtool 工具版本太舊。 安裝一個新的版本,然後覆蓋掉sysbench 自己生成的。

相關推薦

sysbench效能測試工具

sysbench是一個模組化的、跨平臺、多執行緒基準,主要用於評估測試各種不同系統引數下的資料庫負載情況。它主要包括以下幾種方式的測試工具。一、安裝        首先,在 http://sourceforge.net/projects/sysbench 下載原始碼包。        接下來,按照以下步驟安

Linux下的效能測試工具sysbench

sysbench是一款開源的多執行緒效能測試工具,可以執行CPU/記憶體/執行緒/IO/資料庫等方面的效能測試。資料庫目前支援MySQL/Oracle/PostgreSQL。本文只是簡單演示一下幾種測試的用法,後續準備利用sysbench來對MySQL進行一系列的測試。具體

MySql效能測試工具-sysbench

雖然mysql預設的有mysqlslap這個效能測試工具,但和sysbench比較來說,還遜色不少。 shell> wget https://github.com/akopytov/sysbench/archive/1.0.zip

sysbench 0.5 效能測試工具使用手冊

1. sysbench 介紹sysbench是一個模組化的、跨平臺、多執行緒基準測試工具,主要用於評估測試各種不同系統引數 下的資料庫負載情況。關於這個專案的詳細介紹請看:http://sysbench.sourcef

sysbench 0.5 效能測試工具

sysbench 介紹 SysBench是一個模組化的、跨平臺、多執行緒基準測試工具,主要用於評估測試各種不同系統引數下的資料庫負載情況。它主要包括以下幾種方式的測試: cpu效能磁碟io效能排程程式效能記憶體分配及傳輸速度POSIX執行緒效能資料庫效能(OLTP基準測試) 目前sysbench主要支援

效能測試工具siege安裝及測試

其實對於類似的效能測試工具之前接觸過AB。我是在ubuntu下做的測試。 1、更新系統 sudo apt-get update && sudo apt-get upgrade –show-upgraded 2、下載最新版的siege wget http://do

網站效能測試工具 webbench 的安裝和使用

1.webbench的下載和安裝 wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz sudo tar xvf webbench-1.5.tar.gz  -C /usr/local/ cd /usr/l

效能測試工具LoadRunner31-LR之連結mysql

步驟:   1.建好mysql資料庫並啟動   2.下載libmysql.dll,放到儲存指令碼的資料夾下   3.編寫指令碼並執行 1 Action() 2 { 3 int rc; //定義狀態變數,0表示成功,非0表

資料庫之redis篇(2)—— redis配置檔案,常用命令,效能測試工具

redis配置 如果你是找網上的其他教程來完成以上操作的話,相信你見過有的啟動命令是這樣的:   啟動命令帶了這個引數:redis.windows.conf,由於我測試環境是windows平臺,所以是這個,有的是redis.conf。顧名思義,redis.conf就是配置檔案,然後啟動時加

效能測試工具介紹

本文主要介紹一下常用的兩款測試工具: 效能測試壓測工具-Jmeter 效能測試監控工具-JProfiler 1. 效能測試壓測工具-Jmeter 1.2 Jmeter簡介 JMeter,一個100%的純Java桌面應用,由Apache組織的開放原始碼專案,它是功能

Emmagee--APP效能測試工具的基本使用

一、Emmagee介紹 Emmagee是監控指定被測應用在使用過程中佔用機器的CPU、記憶體、流量資源的效能測試小工具。該工具的優勢在於如同windows系統性能監視器類似,它提供的是資料採集的功能,而行為則基於使用者真實的應用操作支援SDK:Android2.2以及以上版本 二、為什麼使用Emmagee

Jmeter效能測試工具學習(Jmeter中的函式和BeanShell)

函式 loadrunner中的函式   Jmeter中的函式 1)函式格式 ${__functionName(var1,var2,var3)} 2)如果函式沒有引數,那可以沒有括號 例如 ${__threadNum} 例子: BeanShell

Jmeter效能測試工具學習(8.關聯)

關聯 從動態的響應中的請求拿取字串 伺服器返回的動態變化且對業務有影響的是 需要做關聯的   Jmeter中的關聯 強大的後置處理器: Regular Expression Extractor   正則表示式    

Jmeter效能測試工具學習(7.引數化)

引數化 — 對於動態變化的值引入引數化會變得更加便捷   現實考慮 哪些地方需要引數化?   引數化需要變數 變數新增方式 1、在Test Plan中新增 變數 2、在UDV中新增變數 3、在foreach中新增隨機變數 &

Jmeter效能測試工具學習(6.取樣器詳細解析)

取樣器(Sampler)   主要工作的元件   每個取樣器都有自己的“個性”和特點   個性? 1、每種取樣器對應相應的協議     2、在取樣器背後都是網路協議的包裝 3、學好取樣器關鍵的點要了解相應的協議&nbs

Jmeter效能測試工具學習(5.jmeter邏輯控制器)

Logic Controller 1、首先必須宣告的是: Jmeter中的Controller 和 LoadRunner中的Controller的區別。 2、回到執行順序。檢視Controller的執行順序。   Simple Controller 1、 The S

Jmeter效能測試工具學習(4.指令碼組成和元件搭配)

Jmter指令碼開發原則 簡單:不要無用、無關的元件,同時能複用的儘量複用。比如:HTTP Request Ddfauits公共元件 正確:對指令碼或者業務正確性進行必要的判斷,不能少也不能多。(返回200) 高效:部分 元件僅僅使用在指令碼開發模式下,在真正生產環境下不要使用 。

Jmeter效能測試工具學習(3.重要元件介紹)

jmeter元件(元素) 1)jmeter中sampler(取樣器) 2)jmeter計時器 3)jmeter前置處理器/後置處理器   (在取樣器存在後存在) 4)jmeter斷言   5)jmeter中Controller

sysbench壓力測試工具的安裝-轉載-老僧觀天下

轉載自老僧觀天下:https://www.cnblogs.com/hally/p/8360637.html sysbench是一款壓力測試工具,可以測試系統的硬體效能,也可以用來對資料庫進行基準測試 wget https://github.com/akopytov/sysbench/arch

Emmagee——開源Android效能測試工具

工具:Emmagee作者:孔慶雲 網易(杭州)質量保證部 開源地址:https://github.com/NetEase/Emmagee Wiki:https://github.com/NetEase/Emmagee/wiki 問題:https://github.com/NetEase/Emmag