MySQL 5.5 innodb_spin_wait_delay參數測試

 

1.測試環境

操做系統:SUSE11  mysql

數據庫版本:MySQL 5.5.28  sql

硬件信息:HP G7 460刀片機 數據庫

2 Intel(R) Xeon(R) CPU  E5645  @ 2.40GHz,每顆CPU 6 socket

64G內存 ide

壓力測試工具:sysbench 0.5 工具

2.數據庫配置

[mysqld] oop

port            = 3306 測試

socket          = /tmp/mysql.sock spa

skip-name-resolve  操作系統

skip-external-locking

key_buffer_size = 160M

max_allowed_packet = 10M

table_open_cache = 5000

sort_buffer_size = 1K

net_buffer_length = 8K

read_buffer_size = 100M

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

max_connections = 20000

max_user_connections = 20000

innodb_log_file_size = 1G

innodb_flush_method=O_DIRECT

innodb_buffer_pool_size = 42G

innodb_additional_mem_pool_size = 10M

innodb_log_buffer_size = 3G

innodb_flush_log_at_trx_commit = 2 

innodb_lock_wait_timeout = 50

innodb_io_capacity = 2000

innodb_read_io_threads = 4

innodb_write_io_threads  = 20

innodb_adaptive_hash_index = OFF

innodb_buffer_pool_instances = 12

thread_cache_size = 512

thread_concurrency = 24

innodb_stats_on_metadata = OFF

3.測試參數

innodb_spin_wait_delay

參數簡介

自旋(spin)是一種經過不間斷地測試來查看一個資源是否變爲可用狀態的等待操做,用於僅須要等待很短的時間等待所需資源的場景。使用自旋這種空閒循環(busy-loop)」來完成資源等待的方式要比經過上下文切換使線程轉入睡眠狀態的方式要高效得多。但若是自旋了一個很短的時間後其依然沒法獲取資源,則仍然會轉入前述第二種資源等待方式。此變量則正是用於定義InnoDB自旋操做的空閒循環轉數,默認爲6轉。做用範圍爲全局級別,可用於選項文件,屬動態變量。

測試過程

使用sysbench測試工具,對數據庫逐步加壓測試,鏈接的進程數有40個逐步增長到128個,每次增長8個,共20個測試結果。對這20個測試結果進行分析,得出以下結論。

測試結果

系統默認值爲6。能夠看到,當該參數爲0時,TPS最低,當該參數大於5時,TPS差異不大,所以建議取默認值。

相關文章
相關標籤/搜索