編者按:從smart818的觀點來看,線程池對性能的影響確實是非常大的,甚至可以把mariadb看成是mysql的企業版。在下面高並發測試顯示,MySQL5.6.19的性能減少了50%,整個測試也說明了,MariaDB10確實比MySQL5.6社區版強很多。
補上作業,MariaDB10和MySQL5.6社區版壓力測試,見下圖:
sysbench10.8.8.43)
MySQL5.6和MariaDB10.0.1110.8.8.100)
壓力測試參數:
- sysbench --test=oltp --mysql-table-engine=innodb
- --oltp-table-size=10000000 --max-requests=0 --max-time=900
- --num-threads=512 --mysql-host=10.8.8.100 --mysql-port=3308
- --mysql-user=admin --mysql-password=123456 --mysql-db=test run
1千萬記錄,不限制請求,壓測15分鐘,並發連接數512個。
my.cnf參數:
- sync_binlog = 0
- innodb_flush_log_at_trx_commit = 0
- innodb_flush_method = O_DIRECT
- innodb_flush_neighbors = 1
- innodb_buffer_pool_size = 20G
- innodb_io_capacity = 500
- innodb_log_file_size = 512M
- innodb_log_files_in_group = 3
- innodb_log_buffer_size = 16M
- tx_isolation = READ-COMMITTED
- thread_handling = pool-of-threadsMariaDB的線程池)
機器配置:
比較差,DELL R610,2顆4核CPU,RAID1WriteBack策略)7200轉SAS硬盤。
可以明顯的看到,在高並發的時候,MySQL5.6.19的性能減少了50%。
下面是top和壓力測試截圖:
MySQL5.6.19
load average達到195,已經超負荷。
TPS為每秒1002.42個。
MariaDB10.0.11
load average為11.59
TPS為每秒2044.80個。
補充:現在把並發連接數調成了900個,再壓一次,看看TPS:
MySQL5.6.19
MariaDB10.0.11
可以看到,隨著並發連接數的增加,MySQL5.6性能持續下降,而MariaDB10,性能保持平穩。
結論:
大體和官方的測試差不多,因手裡沒有MySQL5.6的企業版,所以不能說MariaDB10就一定強,但在高並發環境,MySQL5.6.19社區版不建議使用在生產環境上。
官方的測試:http://hcymysql.blog.51cto.com/5223301/1404998
博文地址:http://hcymysql.blog.51cto.com/5223301/1424625