關於mysql5.7的160萬qps

http://dimitrik.free.fr/blog/archives/2015/10/mysql-performance-yes-we-can-do-more-than-16m-qps-sql-on-mysql-57-ga.html


wKioL1dgyVPAAWG6AAAMf1z2qRA797.png-wh_50


看到上面這個圖後,我終於知道網上流傳mysql5.7比mysql5.6快3倍的依據了,它的測試硬件如下:

 Intel(R) Xeon(R) CPU E7-8890 v3 (codename Haswell-EX)
 4 CPU sockets x 18 cores-HT (144 CPU threads)
 2.5 Ghz, 512GB RAM
 Linux kernel 3.16


測試工具是sysbench,每個表100萬記錄,共8個表,採用非事務模式測試(純select)。

測試結果是在1000併發下,qps還比較淡定,高達160萬。


每一代mysql大版本,其最高qps匹配的是當年那個水平的頂級硬件能力,老外說:“

MySQL 5.7 is showing a near perfect scalability up to 72cores-HT on        4CPU sockets”,但是對於mysql5.6,從下圖可以看出,cpu core從36提升到72,其最高qps沒啥變化,只是併發能力提高了而已。

wKioL1dhFpTjK6ACAAAMwridsKE699.png-wh_50


所以,在一般的硬件條件下,即使是純select,想測試出5.7比5.6快3倍的效果,嘿嘿。

本人在一臺esxi虛擬機上測試5.6和5.7的非事務select,採用的是單表1000萬,測試命令如下:

#sysbench --mysql-db=db_test \
--mysql-port=3306 --db-driver=mysql --mysql-user=root \
--mysql-password=123456 --test=oltp --oltp-table-size=10000000 \
--num-threads=100 --max-time=900 \
--oltp-test-mode=nontrx --oltp-nontrx-mode=select \
--max-requests=0 --percentile=95 run >> ./sysbench1.log


結論我就不說了,以免誤導觀衆。我只能說:好馬配好鞍,想體驗5.7的能力,硬件一定要跟上。

對於任何新版本數據庫,其實都有類似規律,即,在升級軟件的同時,最好有硬件升級的預算。


ps:在一臺物理服務器上,本人用mysql 5.7.13跑出的qps是29萬多,測試環境如下:

mem:128G
cpu:4*6Cores 1.2GHz
OS:CentOS Linux release 7.0.1406 (Core)
Mysql:5.7.13-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial)


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