用sysbench測試mysql性能

安裝sysbench:

sudo apt-get install sysbench

OLTP基準測試

在執行之前,首先需要進去mysql創建一個叫sbtest的數據庫:

create database sbtest;
//如果已有想刪除的話,執行下面的
//drop database sbtest;

然後生成我們需要用來測試的表:

 sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-user=root --mysql-password=XXX --mysql-socket=/var/run/mysqld/mysqld.sock prepare


生成了測試時候之後,就可以運行下面的命令了:

//這個例子才on個了8個併發進程,只讀模式,測試時長60秒
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-user=root --mysql-password=dingjia --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

下面的是測試結果:

OLTP test statistics:
    queries performed:
        read:                            811202
        write:                           0
        other:                           115886
        total:                           927088
    transactions:                        57943  (965.63 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 811202 (13518.78 per sec.)
    other operations:                    115886 (1931.25 per sec.)

Test execution summary:
    total time:                          60.0055s
    total number of events:              57943
    total time taken by event execution: 479.7070
    per-request statistics:
         min:                                  2.94ms
         avg:                                  8.28ms
         max:                                 37.36ms
         approx.  95 percentile:              10.61ms

Threads fairness:
    events (avg/stddev):           7242.8750/36.52
    execution time (avg/stddev):   59.9634/0.00

其中最有價值的是:

  1. 總的事務數
  2. 每秒事務數
  3. 時間統計信息(最小、平均、最大響應時間、以及95%百分比響應時間)
  4. 線程公平統計信息(thread-fairness),用於表示模擬負載的公平性


CPU基準測試

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
用兩個進程計算素數,結果打印出計算出素數的時間。


Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          13.2352s
    total number of events:              10000
    total time taken by event execution: 26.4601
    per-request statistics:
         min:                                  2.43ms
         avg:                                  2.65ms
         max:                                 13.97ms
         approx.  95 percentile:               2.85ms

Threads fairness:
    events (avg/stddev):           5000.0000/135.00
    execution time (avg/stddev):   13.2300/0.00

I/O基準測試

首先要創建一個數據集:

sysbench --test=fileio --file-total-size=500M prepare

然後就可以針對不同類型的IO進行不同的測試:

  • seqwr:順序寫入
  • seqrewq:順序重寫
  • seqrd:順序讀取
  • rndrd:隨機讀取
  • rndwr:隨機寫入
  • rndrw:混合隨機讀寫

執行命令:

sysbench --test=fileio --file-total-size=500M --file-test-mode=rndwr --init-rng=on --max-time=30 --max-requests=0 run

輸出的結果包含大量的信息。和I/O子系統密切相關的包括每秒請求數和總吞吐量,另外,時間信息也是非常有用的。

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1
Initializing random number generator from timer.


Extra file open flags: 0
128 files, 3.9062Mb each
500Mb total file size
Block size 16Kb
Number of random requests for random IO: 0
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 write test
Threads started!
Time limit exceeded, exiting...
Done.

Operations performed:  0 Read, 1700 Write, 2080 Other = 3780 Total
Read 0b  Written 26.562Mb  Total transferred 26.562Mb  (906.16Kb/sec)
   56.64 Requests/sec executed    //每秒請求數

Test execution summary:
    total time:                          30.0168s
    total number of events:              1700
    total time taken by event execution: 0.0147
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.01ms
         max:                                  0.06ms
         approx.  95 percentile:               0.01ms

Threads fairness:
    events (avg/stddev):           1700.0000/0.00
    execution time (avg/stddev):   0.0147/0.00

測試完成後,可以運行下面的命令來刪除第一步生成的測試文件

sysbench --test=fileio --file-total-size=500M cleanup






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章