程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 5.6 GA與5.5性能比較測試

MySQL 5.6 GA與5.5性能比較測試

編輯:MySQL綜合教程

如果你還不清楚 MySQL 5.6 版本一長串的新特性和改進內容,可以從這裡獲得了解。

而我這篇文章的主要目的則是性能的測試。

我使用 Sysbench workloads (Read-Only/Read-Write) 來測試。下面是我的測試環境:

硬件配置:

服務器 : 32核 bi-thread (HT) Intel 2300Mhz, 128GB RAM

操作系統 : Oracle Linux 6.2

文件系統 : XFS mounted with "noatime,nodiratime,nobarrier,logbufs=8"

MySQL : 5.6-GA, latest 5.5

MySQL 配置:

  1. #--------------------------------------------------  
  2.  max_connections = 4000  
  3.  
  4.  key_buffer_size = 200M  
  5.  low_priority_updates = 1  
  6.  sort_buffer_size = 2097152  
  7.  back_log = 1500  
  8.  query_cache_type = 0  
  9.  
  10. # files  
  11.  innodb_file_per_table  
  12.  innodb_log_file_size = 1024M  
  13.  innodb_log_files_in_group = 3  
  14.  innodb_open_files = 4000  
  15.  table_open_cache = 8000  
  16.  table_open_cache_instances = 16  
  17.  
  18. # buffers  
  19.  innodb_buffer_pool_size = 32000M  
  20.  innodb_buffer_pool_instances = 32  
  21.  innodb_log_buffer_size = 64M  
  22.  join_buffer_size = 32K  
  23.  sort_buffer_size = 32K  
  24.  
  25. # tune  
  26.  innodb_checksums = 0  
  27.  innodb_doublewrite = 0  
  28.  innodb_support_xa = 0  
  29.  innodb_thread_concurrency = 0  
  30.  innodb_flush_log_at_trx_commit = 2  
  31.  innodb_flush_method = O_DIRECT  
  32.  innodb_max_dirty_pages_pct = 50  
  33.  innodb_use_native_aio =1  
  34.  innodb_stats_persistent = 1  
  35.  innodb_spin_wait_delay = 6 / 96  
  36.  
  37. # perf special  
  38.  innodb_adaptive_flushing = 1  
  39.  innodb_flush_neighbors = 0  
  40.  innodb_read_io_threads = 16  
  41.  innodb_write_io_threads = 4  
  42.  innodb_io_capacity = 2000  
  43.  innodb_purge_threads =1  
  44.  innodb_adaptive_hash_index =  1 / 0  
  45.  
  46. # Monitoring  
  47.  innodb_monitor_enable = '%' 
  48.  performance_schema = ON 
  49.  performance_schema_instrument = '%=on' 
  50. #-------------------------------------------------- 

MySQL 調整:

配置最主要的不同是 AHI (innodb_adaptive_hash_index) 和 Spin Delay (innodb_spin_wait_delay) -- 而其他的部分在這個測試過程中基本上已經足夠好了。
關於 AHI 的影響我之前已經寫了很多文章。AHI 主要的困境在於“用還是不用”,在很多情況下它可以幫助因為鎖導致的堵塞並加快索引的訪問,但在高並發的情況下可能會因為其 btr_search_latch 導致 rw鎖爭用導致的瓶頸

在 MySQL 5.6 中的 Spin Delay 設置需要特別的注意,因為它在管理內部互斥量和 rw 鎖爭用時扮演非常重要的角色,利用它可能會讓你輕松的將性能提升一倍。你可以通過這裡來了解詳情,但你應該知道,沒有銀彈,也沒有什麼固定的最優值是適合各種不同的環境,這個完全依賴於你的系統負載。因此其默認值跟 MySQL 5.5 一樣都是 6)。
因此,在我的測試中,我非常好奇想了解在不同的負載情況下最佳的 AHI 和 Spin Delay 設置的配置對。

接下來要記住 MySQL 5.5 和 5.6 在可伸縮性方面的限制。我在 8、16、32 和 64 核的情況下重新進行測試64核相當於開啟和超線程的32核機器,其他的都沒有開啟超線程)

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2013-04/82070.htm

編輯推薦】

  1. MySQL 5.6.10 vs Percona 5.6.6之TPCCC性能測試
  2. MariaDB成為MySQL命運轉折點?
  3. MySQL遭遇DELETE誤操作的回滾
  4. 一步完成MySQL向Redis遷移
  5. 兩種方法解決mysql主從不同步

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved