MySQL 5.6 GA與5.5性能比較測(cè)試
如果你還不清楚 MySQL 5.6 版本一長串的新特性和改進(jìn)內(nèi)容,可以從這里獲得了解。
而我這篇文章的主要目的則是性能的測(cè)試。
我使用 Sysbench workloads (Read-Only/Read-Write) 來測(cè)試。下面是我的測(cè)試環(huán)境:
硬件配置:
服務(wù)器 : 32核 bi-thread (HT) Intel 2300Mhz, 128GB RAM
操作系統(tǒng) : Oracle Linux 6.2
文件系統(tǒng) : XFS mounted with "noatime,nodiratime,nobarrier,logbufs=8"
MySQL : 5.6-GA, latest 5.5
MySQL 配置:
- #--------------------------------------------------
 - max_connections = 4000
 - key_buffer_size = 200M
 - low_priority_updates = 1
 - sort_buffer_size = 2097152
 - back_log = 1500
 - query_cache_type = 0
 - # files
 - innodb_file_per_table
 - innodb_log_file_size = 1024M
 - innodb_log_files_in_group = 3
 - innodb_open_files = 4000
 - table_open_cache = 8000
 - table_open_cache_instances = 16
 - # buffers
 - innodb_buffer_pool_size = 32000M
 - innodb_buffer_pool_instances = 32
 - innodb_log_buffer_size = 64M
 - join_buffer_size = 32K
 - sort_buffer_size = 32K
 - # tune
 - innodb_checksums = 0
 - innodb_doublewrite = 0
 - innodb_support_xa = 0
 - innodb_thread_concurrency = 0
 - innodb_flush_log_at_trx_commit = 2
 - innodb_flush_method = O_DIRECT
 - innodb_max_dirty_pages_pct = 50
 - innodb_use_native_aio =1
 - innodb_stats_persistent = 1
 - innodb_spin_wait_delay = 6 / 96
 - # perf special
 - innodb_adaptive_flushing = 1
 - innodb_flush_neighbors = 0
 - innodb_read_io_threads = 16
 - innodb_write_io_threads = 4
 - innodb_io_capacity = 2000
 - innodb_purge_threads =1
 - innodb_adaptive_hash_index = 1 / 0
 - # Monitoring
 - innodb_monitor_enable = '%'
 - performance_schema = ON
 - performance_schema_instrument = '%=on'
 - #--------------------------------------------------
 
MySQL 調(diào)整:
配置最主要的不同是 AHI (innodb_adaptive_hash_index) 和 Spin Delay (innodb_spin_wait_delay) -- 而其他的部分在這個(gè)測(cè)試過程中基本上已經(jīng)足夠好了。 
關(guān)于 AHI 的影響我之前已經(jīng)寫了很多文章。AHI 主要的困境在于“用還是不用”,在很多情況下它可以幫助因?yàn)殒i導(dǎo)致的堵塞并加快索引的訪問,但在高并發(fā)的情況下可能會(huì)因?yàn)槠?btr_search_latch 導(dǎo)致 rw鎖爭(zhēng)用導(dǎo)致的瓶頸
在 MySQL 5.6 中的 Spin Delay 設(shè)置需要特別的注意,因?yàn)樗诠芾韮?nèi)部互斥量和 rw 鎖爭(zhēng)用時(shí)扮演非常重要的角色,利用它可能會(huì)讓你輕松的將性能提升一倍。(你可以通過這里來了解詳情,但你應(yīng)該知道,沒有銀彈,也沒有什么固定的***值是適合各種不同的環(huán)境,這個(gè)完全依賴于你的系統(tǒng)負(fù)載。因此其默認(rèn)值跟 MySQL 5.5 一樣都是 6)。 
因此,在我的測(cè)試中,我非常好奇想了解在不同的負(fù)載情況下***的 AHI 和 Spin Delay 設(shè)置的配置對(duì)。
接下來要記住 MySQL 5.5 和 5.6 在可伸縮性方面的限制。我在 8、16、32 和 64 核的情況下重新進(jìn)行測(cè)試(64核相當(dāng)于開啟和超線程的32核機(jī)器,其他的都沒有開啟超線程)
本篇文章來源于 Linux公社網(wǎng)站(www.linuxidc.com) 原文鏈接:http://www.linuxidc.com/Linux/2013-04/82070.htm















 
 
 





 
 
 
 