我有一个运行bash文件的cron,这个bash文件将同时打开大约1000个PHP脚本,这些PHP脚本中的每一个都与MySQL建立连接。运行一段时间后,我看到间歇性的MySQL错误,如:
SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (4)
我发现错误(4)是操作系统级别(系统调用中断)。
/var/log/messages/
上的有很多kernel: nf_conntrack: table full, dropping packet
条消息,我不知道它是否与此问题有关。
有人可以帮助我吗?
答案 0 :(得分:2)
简而言之,您的服务器很忙,您已达到允许的最大连接数。
修复此增加最大配置连接数限制
# Temporarily Solution
echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max
# Permanent Solution
# Add following line on /etc/rc.d/rc.local
$ vim /etc/rc.d/rc.local
echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max
编辑
更简单的方法是这样做 /etc/sysctl.conf文件。 使用root权限打开ssh / term并添加一行 /etc/sysctl.conf文件为: net.netfilter.nf_conntrack_max = 65536 并保存文件,然后输入: sysctl -p