【MYSQL 基準測試結果】

wei-xh發表於2014-12-10

測試工具:sysbench

測試伺服器:DL380 G7 1  單機測試

記憶體大小:主機記憶體32G ,INNODB POOL SIZE 20G

硬碟:2塊普通的HDD

CPU12物理core

raid卡寫cache開啟

mysql版本:5.6.19

 

MYSQL 基準測試結果:

1)安全事務提交的方式,一個事務只包含一個update,事務數可到22000左右

2)安全事務提交的方式,一個事務包含一個insert 3個update 1個delete,事務數可到10000以上

3)非安全提交的方式,一個事務包含一個insert 3個update 1個delete,事務數可到12000以上。

4)查詢數非常恐怖,可到180000以上,CPU已耗盡

 

如果僅僅壓測事務,機器的CPU很難耗盡,再增多併發,TPS也沒大的提升。查詢非常容易耗盡主機的CPU。這幾點上跟ORACLE是一樣的。

主機raid卡的cache非常重要,之所以採用安全事務提交方式MYSQL的事務數也能非常高,都歸功於raid的cache。如果關閉cache,提交數只能到400左右。

 

測試方法:

測試場景一:測試MYSQL每秒的事務數(每次提交重新整理日誌到磁碟,日誌包含binloginnodb的事務日誌)

涉及引數:

sync_binlog=1

innodb_flush_log_at_trx_commit=1

innodb_flush_method=O_DIRECT

 

一個事務包含:(一個insert 3update 1delete)

併發數

tps

CPU使用

15

7394

35%

20

9264

40%

25

10431

43%

30

11207

48%

 

測試引數:

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=2000000 --oltp-distinct-ranges=0 --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp-order-ranges=0 --oltp-range-size=100 --oltp-point-selects=0 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-test-mode=complex --max-requests=2000000 --num-threads=20 --max-time=40 run

 

測試場景二:測試MYSQL每秒的事務數(每次提交重新整理日誌到快取,由作業系統決定何時刷磁碟)

涉及引數:

sync_binlog=0

innodb_flush_log_at_trx_commit=2

 

一個事務包含:(一個insert 3update 1delete)

併發數

tps

CPU使用

15

11163

49%

20

12979

55%

25

13704

60%

 

測試引數:

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=2000000 --oltp-distinct-ranges=0 --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp-order-ranges=0 --oltp-range-size=100 --oltp-point-selects=0 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-test-mode=complex --max-requests=2000000 --num-threads=20 --max-time=40 run

 

 

測試場景三:測試MYSQL每秒的查詢數

有多個查詢語句:主鍵等值查詢、主鍵範圍查詢(100跨度)、主鍵範圍查詢求SUM、主鍵範圍查詢排序、主鍵範圍查詢求distinct

併發數

QPS

CPU使用

15

133362

63%

20

155422

79%

25

188904

100%

 

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=2000000 --oltp-distinct-ranges=0 --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp-read-only=on --oltp-test-mode=complex --max-requests=2000000 --num-threads=20 --max-time=40 run

 

 

測試場景四:測試MYSQL每秒的事務數(每次提交重新整理日誌到磁碟,日誌包含binloginnodb的事務日誌)

涉及引數:

sync_binlog=1

innodb_flush_log_at_trx_commit=1

innodb_flush_method=O_DIRECT

 

一個事務只包含一個update,事務數22246

 

測試引數:

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=2000000 --oltp-distinct-ranges=0 --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp-nontrx-mode=update_key --oltp-test-mode=nontrx --max-requests=2000000 --num-threads=30 --max-time=40 run

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-1363440/,如需轉載,請註明出處,否則將追究法律責任。

相關文章