最近发现在模拟并发线程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