1. 程式人生 > >Sysbench安裝和基準測試

Sysbench安裝和基準測試

摘要:
sysbench是一個開源的、模組化的、跨平臺的多執行緒效能測試工具,可以用來進行CPU、記憶體、磁碟I/O、執行緒、資料庫的效能測試。目前支援的資料庫有MySQL、Oracle和PostgreSQL。當前功能允許測試的系統引數有:

file I/O performance (檔案I / O效能)
scheduler performance (排程效能)
memory allocation and transfer speed (記憶體分配和傳輸速度)
POSIX threads implementation performance (POSIX執行緒執行績效)
database server performance (OLTP benchmark) (資料庫伺服器效能)
安裝:(安裝前先裝automake,libtool)
wget http://nchc.dl.sourceforge.net/project/sysbench/sysbench/0.4.12/sysbench-0.4.12.tar.gz

#tar zxvf sysbench-0.4.12.tar.gz
#yum -y install automake
#yum -y install libtool
#./configure --prefix=/usr/sysbench/ --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make && make install
說明:
--prefix=/usr/sysbench/ :指定sysbench的安裝目錄。
--with-mysql-includes=/usr/include/mysql/ :指定安裝mysql時候的includes目錄。
--with-mysql-libs=/usr/lib/mysql/ :指定裝mysql時候的lib目錄。
--with-mysql :sysbench預設支援mysql,如果需要測試oracle或者pgsql則需要制定–with-oracle或者–with-pgsql。

注:
cp /usr/bin/libtool /home/zhoujy/sysbench-0.4.12/libtool
再make和make install。否者會出現 libtool 報出的 Xsysbench: command not found 錯誤,則表示編譯檔案包的libtool版本太低,需要替換。

或者修改aclocal.m4檔案的如下內容:
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
將LIBTOOL變數的值修改為:'$(SHELL) /usr/bin/libtool',即使用系統的libtool工具包。
修改後再執行make && make install即可順利安裝。

說是缺少libmysqlclient.so.18檔案,這個檔案是存在的,需要手動連結一下:
# ls -l /usr/local/mysql/lib/libmysqlclient.so.18*
lrwxrwxrwx. 1 mysql mysql 24 Feb 15 14:39 /usr/local/mysql/lib/libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x. 1 mysql mysql 7654927 Feb 15 14:30 /usr/local/mysql/lib/libmysqlclient.so.18.1.0
# ls -l /usr/lib/libmysqlclient.so.18*
ls: cannot access /usr/lib/libmysqlclient.so.18*: No such file or directory
# ln ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/


安裝完成後查詢sysbench選項說明:
# sysbench
Missing required command argument.
Usage: #使用方法
sysbench [general-options]... --test=<test-name> [test-options]... command


General options: #通用選項
--num-threads=N number of threads to use [1] #建立測試執行緒的數目。預設為1.
--max-requests=N limit for total number of requests [10000] #請求的最大數目。預設為10000,0代表不限制。
--max-time=N limit for total execution time in seconds [0] #最大執行時間,單位是s。預設是0,不限制。
--forced-shutdown=STRING amount of time to wait after --max-time before forcing shutdown [off] #超過max-time強制中斷。預設是off。
--thread-stack-size=SIZE size of stack per thread [32K] #每個執行緒的堆疊大小。預設是32K。
--init-rng=[on|off] initialize random number generator [off] #在測試開始時是否初始化隨機數發生器。預設是off。
--test=STRING test to run #指定測試專案名稱。
--debug=[on|off] print more debugging info [off] #是否顯示更多的除錯資訊。預設是off。
--validate=[on|off] perform validation checks where possible [off] #在可能情況下執行驗證檢查。預設是off。
--help=[on|off] print help and exit #幫助資訊。
--version=[on|off] print version and exit #版本資訊。


Compiled-in tests: #測試專案
fileio - File I/O test #IO
cpu - CPU performance test #CPU
memory - Memory functions speed test #記憶體
threads - Threads subsystem performance test #執行緒
mutex - Mutex performance test #互斥效能測試
oltp - OLTP test # 資料庫,事務處理


Commands: prepare:測試前準備工作; run:正式測試 cleanup:測試後刪掉測試資料 help version


See 'sysbench --test=<name> help' for a list of options for each test. #檢視每個測試專案的更多選項列表
更多選項:
1):sysbench --test=fileio help
# sysbench --test=fileio help
sysbench 0.4.12: multi-threaded system evaluation benchmark
fileio options:
--file-num=N 建立測試檔案的數量。預設是128
--file-block-size=N 測試時檔案塊的大小。預設是16384(16K)
--file-total-size=SIZE 測試檔案的總大小。預設是2G
--file-test-mode=STRING 檔案測試模式{seqwr(順序寫), seqrewr(順序讀寫), seqrd(順序讀), rndrd(隨機讀), rndwr(隨機寫), rndrw(隨機讀寫)}
--file-io-mode=STRING 檔案操作模式{sync(同步),async(非同步),fastmmap(快速map對映),slowmmap(慢map對映)}。預設是sync
--file-extra-flags=STRING 使用額外的標誌來開啟檔案{sync,dsync,direct} 。預設為空
--file-fsync-freq=N 執行fsync()的頻率。(0 – 不使用fsync())。預設是100
--file-fsync-all=[on|off] 每執行完一次寫操作就執行一次fsync。預設是off
--file-fsync-end=[on|off] 在測試結束時才執行fsync。預設是on
--file-fsync-mode=STRING 使用哪種方法進行同步{fsync, fdatasync}。預設是fsync
--file-merged-requests=N 如果可以,合併最多的IO請求數(0 – 表示不合並)。預設是0
--file-rw-ratio=N 測試時的讀寫比例。預設是1.5

2):sysbench --test=cpu help
--cpu-max-prime=N 最大質數發生器數量。預設是10000

3):sysbench --test=memory help
# sysbench --test=memory help
sysbench 0.4.12: multi-threaded system evaluation benchmark
memory options:
--memory-block-size=SIZE 測試時記憶體塊大小。預設是1K
--memory-total-size=SIZE 傳輸資料的總大小。預設是100G
--memory-scope=STRING 記憶體訪問範圍{global,local}。預設是global
--memory-hugetlb=[on|off] 從HugeTLB池記憶體分配。預設是off
--memory-oper=STRING 記憶體操作型別。{read, write, none} 預設是write
--memory-access-mode=STRING儲存器存取方式{seq,rnd} 預設是seq

4):sysbench --test=threads help
sysbench 0.4.12: multi-threaded system evaluation benchmark
threads options:
--thread-yields=N 每個請求產生多少個執行緒。預設是1000
--thread-locks=N 每個執行緒的鎖的數量。預設是8

5):sysbench --test=mutex help
# sysbench --test=mutex help
sysbench 0.4.12: multi-threaded system evaluation benchmark
mutex options:
--mutex-num=N 陣列互斥的總大小。預設是4096
--mutex-locks=N 每個執行緒互斥鎖的數量。預設是50000
--mutex-loops=N 內部互斥鎖的空迴圈數量。預設是10000

6): sysbench --test=oltp help
# sysbench --test=oltp help
sysbench 0.4.12: multi-threaded system evaluation benchmark
oltp options:
--oltp-test-mode=STRING 執行模式{simple,complex(advanced transactional),nontrx(non-transactional),sp}。預設是complex
--oltp-reconnect-mode=STRING 重新連線模式{session(不使用重新連線。每個執行緒斷開只在測試結束),transaction(在每次事務結束後重新連線),query(在每個SQL語句執行完重新連線),random(對於每個事務隨機選擇以上重新連線模式)}。預設是session
--oltp-sp-name=STRING 儲存過程的名稱。預設為空
--oltp-read-only=[on|off] 只讀模式。Update,delete,insert語句不可執行。預設是off
--oltp-skip-trx=[on|off] 省略begin/commit語句。預設是off
--oltp-range-size=N 查詢範圍。預設是100
--oltp-point-selects=N number of point selects [10]
--oltp-simple-ranges=N number of simple ranges [1]
--oltp-sum-ranges=N number of sum ranges [1]
--oltp-order-ranges=N number of ordered ranges [1]
--oltp-distinct-ranges=N number of distinct ranges [1]
--oltp-index-updates=N number of index update [1]
--oltp-non-index-updates=N number of non-index updates [1]
--oltp-nontrx-mode=STRING 查詢型別對於非事務執行模式{select, update_key, update_nokey, insert, delete} [select]
--oltp-auto-inc=[on|off] AUTO_INCREMENT是否開啟。預設是on
--oltp-connect-delay=N 在多少微秒後連線資料庫。預設是10000
--oltp-user-delay-min=N 每個請求最短等待時間。單位是ms。預設是0
--oltp-user-delay-max=N 每個請求最長等待時間。單位是ms。預設是0
--oltp-table-name=STRING 測試時使用到的表名。預設是sbtest
--oltp-table-size=N 測試表的記錄數。預設是10000
--oltp-dist-type=STRING 分佈的隨機數{uniform(均勻分佈),Gaussian(高斯分佈),special(空間分佈)}。預設是special
--oltp-dist-iter=N 產生數的迭代次數。預設是12
--oltp-dist-pct=N 值的百分比被視為'special' (for special distribution)。預設是1
--oltp-dist-res=N ‘special’的百分比值。預設是75
General database options:
--db-driver=STRING 指定資料庫驅動程式('help' to get list of available drivers)
--db-ps-mode=STRING編制報表使用模式{auto, disable} [auto]
Compiled-in database drivers:
mysql - MySQL driver
mysql options:
--mysql-host=[LIST,...] MySQL server host [localhost]
--mysql-port=N MySQL server port [3306]
--mysql-socket=STRING MySQL socket
--mysql-user=STRING MySQL user [sbtest]
--mysql-password=STRING MySQL password []
--mysql-db=STRING MySQL database name [sbtest]
--mysql-table-engine=STRING storage engine to use for the test table {myisam,innodb,bdb,heap,ndbcluster,federated} [innodb]
--mysql-engine-trx=STRING whether storage engine used is transactional or not {yes,no,auto} [auto]
--mysql-ssl=[on|off] use SSL connections, if available in the client library [off]
--myisam-max-rows=N max-rows parameter for MyISAM tables [1000000]
--mysql-create-options=STRING additional options passed to CREATE TABLE []

測試:
1)測試CPU: sysbench --test=cpu --cpu-max-prime=2000 run
# sysbench --test=cpu --cpu-max-prime=2000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 2000
Test execution summary:
total time: 3.7155s
total number of events: 10000
total time taken by event execution: 3.7041
per-request statistics:
min: 0.36ms
avg: 0.37ms
max: 2.53ms
approx. 95 percentile: 0.37ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 3.7041/0.00

2)測試執行緒:sysbench --test=threads --num-threads=500 --thread-yields=100 --thread-locks=4 run
# sysbench --test=threads --num-threads=500 --thread-yields=100 --thread-locks=4 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 500
Doing thread subsystem performance test
Thread yields per test: 100 Locks used: 4
Threads started!
Done.
Test execution summary:
total time: 1.0644s
total number of events: 10000
total time taken by event execution: 501.3952
per-request statistics:
min: 0.05ms
avg: 50.14ms
max: 587.05ms
approx. 95 percentile: 190.28ms
Threads fairness:
events (avg/stddev): 20.0000/4.72
execution time (avg/stddev): 1.0028/0.01

3)測試IO:--num-threads 開啟的執行緒 --file-total-size 總的檔案大小
1,prepare階段,生成需要的測試檔案,完成後會在當前目錄下生成很多小檔案。
sysbench --test=fileio --num-threads=16 --file-total-size=2G --file-test-mode=rndrw prepare
2,run階段
sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw run
3,清理測試時生成的檔案
sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw cleanup

# sysbench --test=fileio --num-threads=16 --file-total-size=2G --file-test-mode=rndrw prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
128 files, 16384Kb each, 2048Mb total
Creating files for the test...
# sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 20
Extra file open flags: 0
128 files, 16Mb each
2Gb total file size
Block size 16Kb
Number of random requests for random IO: 10000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Done.
Operations performed: 6010 Read, 3997 Write, 12803 Other = 22810 Total
Read 93.906Mb Written 62.453Mb Total transferred 156.36Mb (6.6668Mb/sec)
426.68 Requests/sec executed
Test execution summary:
total time: 23.4534s
total number of events: 10007
total time taken by event execution: 111.5569
per-request statistics:
min: 0.01ms
avg: 11.15ms
max: 496.18ms
approx. 95 percentile: 53.05ms
Threads fairness:
events (avg/stddev): 500.3500/37.50
execution time (avg/stddev): 5.5778/0.21
# sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw cleanup
sysbench 0.4.12: multi-threaded system evaluation benchmark
Removing test files...

4)測試記憶體:sysbench --test=memory --memory-block-size=8k --memory-total-size=1G run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Operations performed: 1310720 (396525.32 ops/sec)
10240.00 MB transferred (3097.85 MB/sec)
Test execution summary:
total time: 3.3055s
total number of events: 1310720
total time taken by event execution: 205.0560
per-request statistics:
min: 0.00ms
avg: 0.16ms
max: 1066.04ms
approx. 95 percentile: 0.02ms
Threads fairness:
events (avg/stddev): 13107.2000/3870.38
execution time (avg/stddev): 2.0506/0.28

5)測試mutex:sysbench –test=mutex –num-threads=100 –mutex-num=1000 –mutex-locks=100000 –mutex-loops=10000 run
Test execution summary:
total time: 12.5606s
total number of events: 100
total time taken by event execution: 1164.4236
per-request statistics:
min: 9551.87ms
avg: 11644.24ms
max: 12525.32ms
approx. 95 percentile: 12326.25ms
Threads fairness:
events (avg/stddev): 1.0000/0.00
execution time (avg/stddev): 11.6442/0.59

6)測試OLTP:
1,prepare階段,生成需要的測試表
sysbench --test=oltp --mysql-table-engine=innodb --db-driver=mysql --mysql-host=192.168.X.X --mysql-db=test --oltp-table-size=500000 --num-threads=16 --mysql-user=root --mysql-password=123456 --oltp-test-mode=complex prepare
2,run階段
sysbench --num-threads=16 --test=oltp --db-driver=mysql 

--mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123456 run
3,清理測試時生成的測試表
sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=test --oltp-table-size=500000 --mysql-user=root --mysql-password=123456 cleanup

# sysbench --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=rep_test --oltp-table-size=1000000 --mysql-user=root --mysql-password=123456 prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark

No DB drivers specified, using mysql
Creating table 'sbtest'...
Creating 1000000 records in table 'sbtest'...
# sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=rep_test --oltp-table-size=1000000 --mysql-user=root --mysql-password=123456 run
sysbench 0.4.12: multi-threaded system evaluation benchmark


No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 16


Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 10000
Threads started!
Done.


OLTP test statistics:
    queries performed:
        read:                            140000
        write:                           50000
        other:                           20000
        total:                           210000
    transactions:                        10000  (56.49 per sec.)#每秒事務量
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 190000 (1073.31 per sec.)#每秒讀寫請求次數
    other operations:                    20000  (112.98 per sec.)


Test execution summary:
    total time:                          177.0225s#總用時
    total number of events:              10000
    total time taken by event execution: 2831.7566
    per-request statistics:
         min:                                 55.37ms
         avg:                                283.18ms
         max:                               3838.43ms
         approx.  95 percentile:             583.95ms


Threads fairness:
    events (avg/stddev):           625.0000/2.62
    execution time (avg/stddev):   176.9848/0.02


# sysbench --num-threads=16 --test=oltp --mysql-table-engine=innodb --mysql-host=192.168.x.x --mysql-db=rep_test --oltp-table-size=1000000 --mysql-user=root --mysql-password=123456 cleanup
sysbench 0.4.12: multi-threaded system evaluation benchmark


No DB drivers specified, using mysql
Dropping table 'sbtest'...
Done.

mysql> select count(*) from sbtest;
+----------+
| count(*) |
+----------+
| 1000000 |
+----------+
1 row in set (0.30 sec)

可以用這個測試:
sysbench --num-threads=4 --test=oltp --oltp-reconnect-mode=random --mysql-table-engine=innodb --mysql-host=192.168.200.201 --mysql-db=rep_test --ol
tp-table-size=500000 --mysql-user=dba --mysql-password=123456

相關推薦

Sysbench安裝基準測試

摘要: sysbench是一個開源的、模組化的、跨平臺的多執行緒效能測試工具,可以用來進行CPU、記憶體、磁碟I/O、執行緒、資料庫的效能測試。目前支援的資料庫有MySQL、Oracle和PostgreSQL。當前功能允許測試的系統引數有: file I/O perfor

sysbench安裝效能測試

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

基於MySQL元數據的Hive的安裝簡單測試

信息 rop msu time trying 功能 條件 ans ack 引言: Hive是一種強大的數據倉庫查詢語言,類似SQL,本文將介紹怎樣搭建Hive的開發測試環境。 1. 什麽是Hive? hive是基於Hadoop的一個數據倉庫工

golang 測試,單元測試基準測試

go test xxx.go 帶 -v 表示冗餘輸出,成功pass的也會輸出資訊。 檔案命名使用 xx_test.go 儲存在專案目錄裡即可,也可以新建個test目錄,TestAll 測試分為單元測試(功能)和基準測試(效能)。 單元測試函式名Test開頭,接收一個指標型引數(*te

sysbench 0.5 基準測試

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

Golang測試用例基準測試注意事項

[TOC] Golang測試用例和基準測試注意事項 老生常談了,這裡主要記錄一下,測試用例(test)和壓力測試(benchmar

詳解MySQL基準測試sysbench工具

threads 組件 程序 原因 str 前言 全面 無法連接 不同 前言 作為一名後臺開發,對數據庫進行基準測試,以掌握數據庫的性能情況是非常必要的。本文介紹了MySQL基準測試的基本概念,以及使用sysbench對MySQL進行基準測試的詳細方法。 文章有疏漏之處,歡迎

詳解MySQL基準測試sysbench工具(轉)

lua 增刪 後臺 simple ads 執行時間 bench 進行 響應 前言 作為一名後臺開發,對數據庫進行基準測試,以掌握數據庫的性能情況是非常必要的。本文介紹了MySQL基準測試的基本概念,以及使用sysbench對MySQL進行基準測試的詳細方法。 文章有疏漏

Mysql 性能測試工具 sysbench安裝使用

library serve dia ransac 2.6 需要 option 5.7 hive 工作上需要用到AWS和Azure的Mysql服務,需要測試比較一下兩個雲服務的性能。於是開始百度 + google,查找性能測試工具。最終決定用sysbench。sys

MySQL基準測試工具-sysbench安裝測試

MySQL基準測試環境:CentOS6.5,MySQL5.7.221.下載 sysbench下載地址2.安裝 tar -zxvf sysbench-1.1.0.tar.gz yum install automake libtool –y #安裝依賴包 cd sysbench-0.4.12.14 ./au

詳解MySQL基準測試sysbench工具-轉載-(作者:程式設計迷思)

轉載地址:https://www.cnblogs.com/kismetv/archive/2017/09/30/7615738.html 參考:https://blog.csdn.net/oahz4699092zhao/article/details/53332105 一、基準測試簡介

sysbench 安裝、使用測試

[email protected]:~# sysbench --test=oltp help sysbench 0.4.12: multi-threaded system evaluation benchmark oltp options: --oltp-test-mode=STRING

使用sysbench對Oracle做基準測試(-) 安裝

sysbench是一款開源的多執行緒效能測試工具, 可以執行CPU/記憶體/執行緒/IO/資料庫等方面的效能測試。 資料庫目前支援MySQL/Oracle/PostgreSQL。 由於sysbench 已經託管到launchpad。 souuceforge已經不可用。獲取s

MySQL/Mariadb基準測試工具-sysbench安裝2

上個部落格寫到通過二進位制安裝包進行安裝,這次通過下載原始碼方式進行安裝。 0.安裝環境 CentOS 7.2 虛機 Mariadb 10.2.7 1.從官網下載原始碼 2.安裝依賴 [root@localh

mycat安裝測試

slave roo character 三臺 delet 1.4 property 啟動項 客戶端 mycat安裝和測試 一. 環境準備 本機環境是三臺centos6.5 IP 主機名 數據庫名 安裝軟件 192.168.17.4 mast

接口測試工具soapUI的安裝使用方法詳解

service 技術 key custom media 負載 bmp file text soapUI是一個開源測試工具,通過soap/http來檢查、調用、實現Web Service的功能/負載/符合性測試。 使用soapUI可以非常方便的實現接口的功能測試、穩

APP測試-drozer安裝使用

png 環境變量 截圖 jdk1.7 連接 路徑 fin 正常的 還需 Windows平臺drozer的安裝和使用 使用環境:使用該工具需要JDK的支持,所以使用此工具之前請自行安裝 JDK 其他工具:還需要安卓調試工具adb的一些支持,請自行配置安裝 drozer安裝 首

小白學習安全測試——httrack的安裝使用(二)

type mas track base launch 驗證 解決方案 我沒 ted httrack是一款免費的網站鏡像程序,簡單理解就是可以在網站結構(網頁及一些主要信息文件),下載到本地,可離線瀏覽,我是按照搭建成功後的console直譯過來的 下面說下安裝: 我都是在L

sqlmap的安裝測試環境的搭建

.org 密碼 ica 開源 table rect smart 智能 dmi sqlmap的安裝和測試環境的搭建 1.sqlmap的官網 http://sqlmap.org/ 上的可以下載到最新的sqlmap版本 2.需要安裝python2.7 可以去官網下載 htt

nginx安裝測試 (已驗證)

fig figure lib pan 首頁 min 正常 如果 nginx安裝 進入:/usr/local/nginx 目錄註意:為了保證各插件之間的版本兼容和穩定,建議先通過以下版本進行測試驗證。一、下載版本 下載nginx: wget http://nginx.o