技术解析
系统: centos 6.5 64 位 游戏语言: lua & C++
问题表现: 游戏在线到 1000 人左右,就无法再登录了。连接的时候提示无法连接 然后,游戏对应的端口,例如是 10000 ,在 zabbix 下会报警端口连不上,但实际用 netstat -plnt |grep 10000 是可以看到端口和进程的。 zabbix 的端口检测机制如下: nc -z -w 2 127.0.0.1 10000 如果$?返回不为 0 ,则报警说连不上了。 PS: 但最恶心的是,在测试服用机器人模拟登录,可以超过 1200 人以上。。.
已检查过的配置: 游戏内存, CPU ,网络都足够,没有瓶颈
/etc/security/limits.conf /etc/security/limits.d/90-nproc.conf /etc/sysctl.conf --也已检查 fs.file-max = 180000
用来设定整体 TCP 内存的整体使用状况 net.ipv4.tcp_mem = 94500000 915000000 927000000
TCP 连接上的读缓存上限 net.ipv4.tcp_rmem = 10240 87380 12582912
TCP 连接上的写缓存上限 net.ipv4.tcp_wmem = 10240 87380 12582912
发送套接字缓冲区大小的默认值(以字节为单位 net.core.wmem_default = 8388608
接收套接字缓冲区大小的默认值(以字节为单位) net.core.rmem_default = 8388608
接收套接字缓冲区大小的最大值 net.core.rmem_max = 16777216
发送套接字缓冲区大小的最大值 net.core.wmem_max = 16777216 ulimit 也已修改:
求问:到底还有哪里的系统配置问题导致游戏端口连不上呢? 而且,确认是系统的问题,游戏配置是 OK 的。