使用sysbench測試mariadb性能的經驗總結

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/libgithub

若是是上面這種方式編譯安裝的, 將會只帶mysql驅動, 跑測試的時候就不用指定 --db-driversql

若是是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主頁最上面瞄到這個:image.png
有點醉。。這裏通常都看成介紹區域看一眼就跳過了, 誰會想到惟一能找到使用方式的線索在這裏???線程

因此搜一下這個oltp_*.lua, find / -name oltp_*.lua, 會列出一堆lua腳本, 選擇你要測的直接複製完整路徑做爲參數傳給--test, 而後其餘一堆參數該填的填, 就能夠跑起來了

要注意的主要是這個參數--rand-type=, 這裏官網給了可選的範圍: {uniform, gaussian, special, pareto, zipfian}, 其餘幾個還能勉強看出是一些數學分佈, uniform和special徹底不知道是幹什麼的, uniform只知道有個統一的意思, 並不能肯定, 搜也搜不到, 因而提了個issue問了一下:image.png
好吧原來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, 能夠看到參數用來設置測試用的表數量, 表大小之類的

相關文章
相關標籤/搜索