在高负载(每小时 400 个并发线程)下,MYSQL 在一段时间后(我的情况是 30 分钟)变得无响应

在高负载(每小时 400 个并发线程)下,MYSQL 在一段时间后(我的情况是 30 分钟)变得无响应

我正在使用MySQL服务器对我的应用程序进行负载测试。在这里,我每小时为 400 名用户加载应用程序以执行某些操作。我已经对文件进行了一些MySQL调整。my.conf

我正在使用一台应用程序服务器(4GB RAM,双核处理器)和一台数据库服务器(4GB RAM,双核处理器),MySQL版本是5.5.31-0ubuntu0.12.04.2-log(Ubuntu)。

这是我的设置:

bind-address            = *
max_connect_errors=10000
myisam-recover         = BACKUP
max_connections        = 200
max_user_connections   = 100
table_open_cache       = 1000
table_definition_cache = 1000
tmp_table_size         = 256M
flush_time             = 0
key_buffer              = 64M
max_allowed_packet      = 32M
thread_stack            = 192K
thread_cache_size       = 16M
back_log                = 1000
query_cache_limit       = 64M
query_cache_size        = 128M
connect_timeout         = 15
interactive_timeout     = 300
wait_timeout            = 10
max_binlog_size         = 100M
innodb_buffer_pool_size=2048MB
innodb_io_capacity=1000
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb_additional_mem_pool_size=16M
innodb_lock_wait_timeout = 300
log_slow_queries=ON
long_query_time=3.000000
query_cache_type=OFF
slow_query_log=ON
log_output=TABLE
open_files_limit = 4000
max_allowed_packet      = 16M
[isamchk]
key_buffer              = 16M

还有一点,大约 30 分钟后,当我查看进程列表时,它显示了 13-20 个连接,但 30 分钟后突然增加到 140 个并且服务器变得无响应,请帮助我摆脱这个问题。

相关内容