最近發現在模擬併發線程100-500要求thread_cache_size減少CPU和最大連接數?
使用默認設置,加上在my.cnf以下時,我的MySQL服務器命中90%的CPU佔用率過高
max_connections = 500 max_allowed_packet = 16M
我注意到max_connection可以打高達500,也Threads_Created的可以去高到200-500,我認爲這實際上已經造成異常高的CPU
因此而不是使用默認設置,我調整
innodb_buffer_pool_size = 2G #32bit linux server innodb_log_file_size = 256M innodb_log_buffer_size = 8M innodb_thread_concurrency = 16 innodb_flush_method = O_DIRECT innodb_additional_mem_pool_size = 20M table_cache = 1028 thread_cache_size = 16 key_buffer_size=32M query_cache_size=32M join_buffer_size=1M
在相同的負載測試中,CPU下降到10%以下... 但是我注意到max_connection從不再打到500。 現在小於50 ...
這是由thread_cache_size引起的,我調整過了嗎?在默認情況下,它是0. 或者是有什麼地方錯了...我想知道在這種情況下,如果MySQL服務器正確測試與最大連接。我想測試一下,如果併發線程可以達到max_connections,但不知何故它不會以我之前測試的相同數量命中。 自改變以來,它現在從未超過50。
有什麼想法?
我知道現在要問的時間太晚了,但是您的舊配置,即以上參數的舊值是什麼? – ursitesion 2014-10-01 14:30:38