Mysql在高峰时段开始丢弃连接

时间:2015-08-03 05:08:11

标签: mysql limits sysctl

我们的数据库在高峰时段开始断开连接。大约有3%的连接被丢弃,mysql返回消息" mysqli :: mysqli():( HY000 / 2003):无法连接到MySQL服务器上的10.88。***&#39 ; (99)" 。我已经调整了几个mysql和内核参数,但它没有帮助: - 在/ etc / sysctl.conf的:

  

net.ipv4.tcp_max_tw_buckets = 524288   net.core.somaxconn = 2048   net.ipv4.ip_local_port_range = 1024 65000   net.ipv4.tcp_max_syn_backlog = 30000   net.ipv4.tcp_syncookies = 1   net.ipv4.tcp_synack_retries = 2

- 的/ etc / my.cnf中:

  

open_files_limit = 65536   MAX_CONNECTIONS = 3600
  connect_timeout = 60
  WAIT_TIMEOUT = 2400
  back_log = 4096

- 的/ etc /安全/ limits.conf中

  

mysql soft nofile 65536   mysql hard nofile 65536   mysql soft nproc 65536   mysql hard nproc 65536

我们的数据库处理> 40000查询和>一台数据库机器每秒8000连接,没有分片和连接池。 我错过了什么? 有谁知道可能导致这个瓶颈的原因是什么?感谢。

以下是my.cnf中的内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

skip_name_resolve = off
open_files_limit = 65536

max_allowed_packet = 1073741824
expire_logs_days = 2

binlog_format = row
innodb_file_per_table = 1
innodb_flush_method=O_DIRECT

innodb_buffer_pool_instances = 16
innodb_buffer_pool_size = 43G
innodb_thread_concurrency = 0

log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
slave-skip-errors = 1062,1032

max_connections=3600
connect_timeout=60
wait_timeout=2400

back_log=4096

thread_cache_size=48

symbolic-links=0

user=mysql

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
!includedir /etc/my.cnf.d

1 个答案:

答案 0 :(得分:1)

所以..尝试将你的max_connections增加到> 8000?

在my.cnf

的max_connections = 9000