PHP / MYSQL连接失败在重负载下通过mysql.sock
在提出这一点之前,我已经做了相当多的阅读,所以让我先说说我没有用完连接,记忆,或者cpu,而且从我能说出来,我也没有用完文件描述符.
当MySQL处于沉重的负载状态时,这是PHP引发的:
这种情况在负载下随机发生 – 但是我推的越多,PHP就越频繁地向我投掷.当这种情况发生时,我可以通过控制台连接本地,从PHP到127.0.0.1,而不是使用更快的unix套接字的“localhost”. 以下是一些系统变量,以消除常见问题: cat /proc/sys/fs/file-max = 4895952 lsof | wc -l = 215778 (during "outages") 最高使用率:26%(261/1000) InnoDB缓冲池/数据大小:10.0G / 3.7G(很多o室) > soft nofile 999999 我实际上是运行MariaDB(服务器版本:10.0.17-MariaDB MariaDB Server) 这些结果是在正常加载下生成的,并且在休息时间运行mysqlslap,所以慢查询不是问题 – 只是高连接. 任何建议?我可以根据需要报告附加的设置/数据 – mysqltuner.pl说一切都是一个好的 再次,这里的揭示是通过IP连接工作很好,在这些中断过程中是快速的 – 我不知道为什么. 编辑:这是我的my.ini(有些值可能看起来有点像我最近的故障排除更改,请记住,MySQL日志,系统日志或dmesg中没有错误) socket=/var/lib/mysql/mysql.sock skip-external-locking skip-name-resolve table_open_cache=8092 thread_cache_size=16 back_log=3000 max_connect_errors=10000 interactive_timeout=3600 wait_timeout=600 max_connections=1000 max_allowed_packet=16M tmp_table_size=64M max_heap_table_size=64M sort_buffer_size=1M read_buffer_size=1M read_rnd_buffer_size=8M join_buffer_size=1M innodb_log_file_size=256M innodb_log_buffer_size=8M innodb_buffer_pool_size=10G [mysql.server] user=mysql [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid open-files-limit=65535
很可能是由于net.core.somaxconn
/ proc / sys / net / core / somaxconn的值是多少? net.core.somaxconn # The maximum number of "backlogged sockets". Default is 128. 尚未连接的队列中的连接.任何超过该队列的内容都将被拒绝.我怀疑你的情况.尝试根据您的负载增加它. 作为root用户运行 echo 1024 > /proc/sys/net/core/somaxconn (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |