1
部署
1.1
官方主頁
1.2
安裝
Percona安裝源(yum源)
Wget
https://www.percona.com/redir/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
yum -y install percona-release-0.1-6.noarch.rpm
yum -y install sysbench
yum install -y sysbench-tpcc
2
幫助文檔
3
使用方法
3.1
命令格式
sysbench [options]... [testname] [command]
3.2 Command
Commands implemented by most tests:
prepare run cleanup help
prepare --生成測試須要的數據
run --進行性能測試
cleanup --清除測試數據
3.3 Testname
包括兩種:內建腳本和
lua腳本
內建腳本以下:
fileio - File I/O test
cpu - CPU performance test
memory - Memory functions speed test
threads - Threads subsystem performance test
mutex - Mutex performance test
lua腳本以下:
3.4 Options
3.4.1
全局參數
3.4.2
僞隨機數
3.4.3
日誌
3.4.4
數據庫
3.4.5
Mysql
3.4.6
fileio
3.4.7
cpu
3.4.8
memory
3.4.9
threads
3.4.10
mutex
3.4.11
OLTP
4
測試樣例
4.1 Mysql
4.1.1
準備
4.1.2
測試腳本
4.2 IO
5 Tpcc
5.1 Option
5.2
測試腳本
6 操做步驟
安裝:
(準備條件:sysbench-1.0.15-1.el7.centos.x86_64,percona-release-0.1-6.noarch兩個包)
6.1 root用戶隨便建個文件夾
把sysbench-1.0.15-1.el7.centos.x86_64,percona-release-0.1-6.noarch兩個包扔進去

6.2
環境準備
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel openssl-devel
yum -y install postgresql-devel
6.3安裝
# rpm -ivh percona-release-0.1-6.noarch.rpm

# rpm -ivh sysbench-1.0.15-1.el7.centos.x86_64.rpm

6.4 驗證
[root@bogon ~]# sysbench --help

有結果返回,驗證成功
7 壓力測試
7.1 先建立一個測試的數據庫
mysql> create database sbtest;
Query OK, 1 row affected (1.10 sec)

mysql> show databases;

7.2 查看本地socket地址
mysql> select @@socket;

7.3 準備測試環境:
[root@bogon ~]# sysbench --threads=10 --tables=10 --table-size=100000 --rand-type=uniform --report-interval=1 --time=60 --mysql-user=root --mysql-password=oracle --mysql-socket=/mysqldb/db_master/mysql.sock /usr/share/sysbench/oltp_read_write.lua prepare


7.4開始運行增壓
[root@bogon ~]# sysbench --threads=10 --tables=10 --table-size=100000 --rand-type=uniform --report-interval=1 --time=60 --mysql-user=root --mysql-password=oracle --mysql-socket=/home/mysql/mysqldb/db_master/mysql.sock /usr/share/sysbench/oltp_read_write.lua run


8 測試結果
8.1 cpu 測試
[root@oracle01 ~]# sysbench --threads=10 --tables=10 --table-size=100000 --rand-type=uniform --report-interval=1 --time=10 --mysql-user=root --mysql-password=oracle --mysql-socket=/mysqldb/db_master/mysql.sock /usr/share/sysbench/oltp_read_write.lua run
。。。。
SQL statistics:
queries performed:
read: 714
--讀總數
write: 204 --寫總數
other: 102
--其餘操做(CURD以外的操做,例如COMMIT)
total: 1020
--所有總數
transactions: 51 (4.62 per sec.)
--總事務數(每秒事務數)
queries: 1020 (92.48 per sec.)
--其餘操做總數(每秒其餘操做次數)
ignored errors: 0 (0.00 per sec.)
--總忽略錯誤總數(每秒忽略錯誤次數)
reconnects: 0 (0.00 per sec.)
--重連總數(每秒重連次數)
Throughput: --吞吐量
events/s (eps): 4.6238
time elapsed: 11.0300s --經歷時間
total number of events: 51 --
事件總數
Throughput = (number of requests) / (total time)
total time = 測試結束時間 - 測試開始時間
測試結束時間
= MAX(請求開始時間 + Elapsed Time)
測試開始時間
= MIN(請求開始時間)
Latency (ms):
min: 1500.36
avg: 2082.19
max: 2633.22
95th percentile: 2493.86
sum: 106191.66
Threads fairness:
--併發統計
events (avg/stddev): 5.1000/0.30
--總處理事件數/標準誤差
execution time (avg/stddev): 10.6192/0.29
cpu測試主要是進行素數的加法運算
。
8.2 IO測試
[root@localhost ~]# sysbench --file-num=4 --file-block-size=16384 --file-total-size=1G --file-test-mode=rndrd --file-extra-flags=direct --max-requests=0 --max-time=600 --num-threads=64 --report-interval=3 fileio prepare
WARNING: --num-threads is deprecated, use --threads instead
WARNING: --max-time is deprecated, use --time instead
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)
4 files, 262144Kb each, 1024Mb total
Creating files for the test...
Extra file open flags: directio
Reusing existing file test_file.0
Creating file test_file.1
Creating file test_file.2 (建立文件)
Creating file test_file.3
805306368 bytes written in 128.84 seconds (5.96 MiB/sec).
[root@localhost ~]# sysbench --file-num=4 --file-block-size=16384 --file-total-size=1G --file-test-mode=rndrd --file-extra-flags=direct --max-requests=0 --max-time=10 --num-threads=64 --report-interval=3 fileio run
WARNING: --num-threads is deprecated, use --threads instead
WARNING: --max-time is deprecated, use --time instead
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options: 使用如下選項運行測試:
Number of threads: 64 線程數量:64
Report intermediate results every 3 second(s) 每3秒(s)報告中間結果
Initializing random number generator from current time 從當前時間初始化隨機數生成器
Extra file open flags: directio 額外的文件打開標誌:方向
4 files, 256MiB each 4個文件,256 mib
1GiB total file size 1GB總文件大小
Block size 16KiB 塊大小爲16k
Number of IO requests: 0 IO請求數:0
Read/Write ratio for combined random IO test: 1.50 組合隨機IO測試的讀/寫比率1.5
Periodic FSYNC enabled, calling fsync() each 100 requests.
啓用了按期
FSYNC,調用FSYNC每100個請求
Calling fsync() at the end of test, Enabled. 在測試結束時調用fsync
Using synchronous I/O mode 使用同步I / O模式
Doing random read test 作隨機讀取測試
Initializing worker threads... 初始化工做線程…
Threads started!
[ 3s ] reads: 2.34 MiB/s writes: 0.00 MiB/s fsyncs: 0.00/s latency (ms,95%): 877.615
[ 6s ] reads: 3.45 MiB/s writes: 0.00 MiB/s fsyncs: 0.00/s latency (ms,95%): 657.933
[ 9s ] reads: 3.38 MiB/s writes: 0.00 MiB/s fsyncs: 0.00/s latency (ms,95%): 646.192
File operations: 文件操做
reads/s: 189.14 讀的速率
writes/s: 0.00 寫的速率
fsyncs/s: 0.00 fsync的速率
Throughput:
read, MiB/s: 2.96 讀的大小(m)
written, MiB/s: 0.00 寫的大小(m)
General statistics:
total time: 10.4033s 總時間
total number of events: 1969 事件總數量
Latency (ms):
min: 18.13
avg: 331.26
max: 1335.37
95th percentile: 746.32
sum: 652243.23
Threads fairness:
events (avg/stddev): 30.7656/3.41
execution time (avg/stddev): 10.1913/0.13
[root@localhost ~]# sysbench --file-num=4 --file-block-size=16384 --file-total-size=1G --file-test-mode=rndrd --file-extra-flags=direct --max-requests=0 --max-time=10 --num-threads=64 --report-interval=3 fileio cleanup
WARNING: --num-threads is deprecated, use --threads instead
WARNING: --max-time is deprecated, use --time instead
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)
Removing test files...
8.3 tpcc測試
[root@oracle01 sysbench]# ./tpcc.lua --mysql-socket=/mysqldb/db_master/mysql.sock --mysql-user=root --mysql-password=oracle --mysql-db=sbtest --time=30 --threads=64 --report-interval=1 --tables=10 --scale=10 --db-driver=mysql prepare
。。。。
(準備環境:建立
10張表)
[root@oracle01 sysbench]# ./tpcc.lua --mysql-socket=/mysqldb/db_master/mysql.sock --mysql-user=root --mysql-password=oracle --mysql-db=sbtest --time=30 --threads=64 --report-interval=1 --tables=10 --scale=10 --db-driver=mysql run
。。。。
SQL statistics:
queries performed: --查詢執行:
read: 1195 --讀總數
write: 1171 --寫總數
other: 308 --其餘操做(CURD以外的操做,例如COMMIT)
total: 2674 --所有總數
transactions: 84 (1.65 per sec.)--總事務數(每秒事務數)
queries: 2674 (52.47 per sec.)--其餘操做總數(每秒其餘操做次數)
ignored errors: 6 (0.12 per sec.)--總忽略錯誤總數(每秒忽略錯誤次數)
reconnects: 0 (0.00 per sec.)--重連總數(每秒重連次數)
General statistics: --常規統計
total time: 50.9527s --總耗時
total number of events: 84 --共發生多少事務數
Latency (ms):
min: 4420.74
avg: 30312.93
max: 50944.12
95th percentile: 46941.21
sum: 2546286.47
Threads fairness: --併發統計
events (avg/stddev): 1.3125/0.46 --總處理事件數/標準誤差
execution time (avg/stddev): 39.7857/6.21
[root@oracle01 sysbench]# ./tpcc.lua --mysql-socket=/mysqldb/db_master/mysql.sock --mysql-user=root --mysql-password=oracle --mysql-db=sbtest --time=30 --threads=64 --report-interval=1 --tables=10 --scale=10 --db-driver=mysql cleanup
sysbench 1.0.15 (using bundled LuaJIT 2.1.0-beta2)
Dropping tables '1'...
Dropping tables '2'...
Dropping tables '3'...
Dropping tables '4'...
Dropping tables '5'...
Dropping tables '6'...
Dropping tables '7'...
Dropping tables '8'...
Dropping tables '9'...
Dropping tables '10'...
(清除測試)
9經常使用命令
9.1 cpu測試
準備
[root@oracle01 ~]# sysbench --threads=10 --tables=10 --table-size=100000 --rand-type=uniform --report-interval=1 --time=10 --mysql-user=root --mysql-password=oracle --mysql-socket=/mysqldb/db_master/mysql.sock /usr/share/sysbench/oltp_read_write.lua prepare
運行
[root@oracle01 ~]# sysbench --threads=10 --tables=10 --table-size=100000 --rand-type=uniform --report-interval=1 --time=10 --mysql-user=root --mysql-password=oracle --mysql-socket=/mysqldb/db_master/mysql.sock /usr/share/sysbench/oltp_read_write.lua run
清除
[root@oracle01 ~]# sysbench --threads=10 --tables=10 --table-size=100000 --rand-type=uniform --report-interval=1 --time=10 --mysql-user=root --mysql-password=oracle --mysql-socket=/mysqldb/db_master/mysql.sock /usr/share/sysbench/oltp_read_write.lua cleanup
9.2 IO測試
準備
[root@oracle01 ~]# sysbench --file-num=4 --file-block-size=16384 --file-total-size=1G --file-test-mode=rndrd --file-extra-flags=direct --max-requests=0 --max-time=600 --num-threads=64 --report-interval=3 fileio prepare
運行
[root@oracle01 ~]# sysbench --file-num=4 --file-block-size=16384 --file-total-size=1G --file-test-mode=rndrd --file-extra-flags=direct --max-requests=0 --max-time=600 --num-threads=64 --report-interval=3 fileio run
清除
[root@oracle01 ~]# sysbench --file-num=4 --file-block-size=16384 --file-total-size=1G --file-test-mode=rndrd --file-extra-flags=direct --max-requests=0 --max-time=600 --num-threads=64 --report-interval=3 fileio cleanup
9.3 tpcc測試
準備
[root@oracle01 sysbench]# ./tpcc.lua --mysql-socket=/mysqldb/db_master/mysql.sock --mysql-user=root --mysql-password=oracle --mysql-db=sbtest --time=30 --threads=64 --report-interval=1 --tables=10 --scale=10 --db-driver=mysql prepare
運行
[root@oracle01 sysbench]# ./tpcc.lua --mysql-socket=/mysqldb/db_master/mysql.sock --mysql-user=root --mysql-password=oracle --mysql-db=sbtest --time=30 --threads=64 --report-interval=1 --tables=10 --scale=10 --db-driver=mysql run
清除
[root@oracle01 sysbench]# ./tpcc.lua --mysql-socket=/mysqldb/db_master/mysql.sock --mysql-user=root --mysql-password=oracle --mysql-db=sbtest --time=30 --threads=64 --report-interval=1 --tables=10 --scale=10 --db-driver=mysql cleanup
9.4 磁盤測試
準備
[root@oracle01 sysbench]#sysbench --num-threads=16 --report-interval=3 --max-requests=0 --max-time=300 --test=fileio --file-num=200 --file-total-size=200G --file-test-mode=rndrw --file-block-size=16384 --file-extra-flags=direct prepare
運行
[root@oracle01 sysbench]#sysbench --num-threads=16 --report-interval=3 --max-requests=0 --max-time=300 --test=fileio --file-num=200 --file-total-size=200G --file-test-mode=rndrw --file-block-size=16384 --file-extra-flags=direct run
清除
[root@oracle01 sysbench]#sysbench --num-threads=16 --report-interval=3 --max-requests=0 --max-time=300 --test=fileio --file-num=200 --file-total-size=200G --file-test-mode=rndrw --file-block-size=16384 --file-extra-flags=direct cleanup