github地址: https://github.com/akopytov/s...
我測試用的系統: CentOS Linux release 7.2.1511 (Core)
sysbench版本用了最新的, 1.1.0
過程當中也搜了不少教程, 因此重複的就很少說, 主要說一下教程中沒看到的或不夠清楚的mysql
1.安裝
安裝能夠用yum也能夠本身下下來編譯, 我兩種都嘗試了一下, 本身編譯註意看狀況指定--with-mysql-includes
和 --with-mysql-libs
, 好比:git
./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib
github
若是是上面這種方式編譯安裝的, 將會只帶mysql驅動, 跑測試的時候就不用指定 --db-driver
sql
若是是yum安裝的, 默認除了mysql還會帶一個PostgreSQL的驅動, 就得指定 --db-driver=mysql
, 不然會報錯提示沒指定驅動啥的數據庫
帶了哪些驅動能夠從sysbench --help
裏看到性能
2.跑測試
勤看幫助。sysbench --help
的最上面是通用選項, 主要用到的好比線程數(--threads
), 限制跑多久(--time
), 跑多少次事件(--events
)sysbench --help
的最後, 能夠看到自帶的測試方式有這些, 這就是--test=
後面能夠帶的參數測試
Compiled-in tests: fileio - File I/O test cpu - CPU performance test memory - Memory functions speed test threads - Threads subsystem performance test mutex - Mutex performance test
基礎用法(help, prepare, run, cleanup)參考github頁面lua
想測數據庫的, 一開始可能會有點懵逼, 由於這裏沒看到測試數據庫的參數, 網上教程大都是舊的, 按那些填也沒用, 而github主頁上好像也沒找到說明?spa
蛋疼了好一下子, --help和github主頁看了無數遍, 終於纔在github主頁最上面瞄到這個:
有點醉。。這裏通常都看成介紹區域看一眼就跳過了, 誰會想到惟一能找到使用方式的線索在這裏???線程
因此搜一下這個oltp_*.lua, find / -name oltp_*.lua
, 會列出一堆lua腳本, 選擇你要測的直接複製完整路徑做爲參數傳給--test
, 而後其餘一堆參數該填的填, 就能夠跑起來了
要注意的主要是這個參數--rand-type=
, 這裏官網給了可選的範圍: {uniform, gaussian, special, pareto, zipfian}
, 其餘幾個還能勉強看出是一些數學分佈, uniform和special徹底不知道是幹什麼的, uniform只知道有個統一的意思, 並不能肯定, 搜也搜不到, 因而提了個issue問了一下:
好吧原來uniform就是離散均勻分佈, 簡單來講就是普通隨機, special如做者所說,是不科學的,但它又是默認值......
(簡單對比了一下uniform和special, special測出來的性能大體是uniform的1.7倍)
3.各lua腳本的區別
雖然沒寫過lua, 不過打開腳本看看基本能看出來, 我只測了下面三個(下列爲後綴), 它們分別乾的事是:
• insert:, 即爲純insert • read_write 包括: select (range, sum, order, distinct) , update, update(non-index), delete • read_only: select (range, sum, order, distinct) --range_selects 參數決定select是不是僅單點 (只使用where=,而不使用上面括號中條件)
4.其餘
注意幫助最後一句寫的See 'sysbench <testname> help' for a list of options for each test.
因此要看參數的話就是 sysbench xx.lua help
, 能夠看到參數用來設置測試用的表數量, 表大小之類的