游戏在线到 1000 人左右,就无法再登录了。连接的时候提示无法连接。

2016-09-30 11:11:30 +08:00
 fengfisher

系统: 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 的。

4676 次点击
所在节点    Linux
32 条回复
fengfisher
2016-09-30 20:44:19 +08:00
@21grams 怎么看端口有没有用光?
fengfisher
2016-09-30 20:44:32 +08:00
@dxwwym 呃,一个小手游
fengfisher
2016-09-30 20:44:46 +08:00
@p2p 不是不是。
fengfisher
2016-09-30 20:45:32 +08:00
@alqaz 两个机器配置是一样的。都一套脚本初始化的。
fengfisher
2016-09-30 20:46:07 +08:00
@okletswin 这个也看了,也是正常的。
fengfisher
2016-09-30 20:46:35 +08:00
@blackboar 确认了不是网络的问题,是云服务器,已连进来有游戏了,但就是会突然又断开这样。
tinybaby365
2016-09-30 22:15:19 +08:00
试试 setrlimit ,需要 root 权限
tinybaby365
2016-09-30 22:23:18 +08:00
之前做过单机 100w 的长链接实践,大概的经验是这样的:
不使用 setrlimit ,单进程可以接收的连接数是突破不了 65K ,这个时候可以用多进程解决。主进程 listen , fork 出多个子进程 accept ,靠进程数来突破连接数限制。
另一种使用 setrlimit ,但需要 root 权限。
此外还要注意,整个系统总 fd 数的限制。
mritd
2016-10-06 09:56:52 +08:00
@calease 感觉一样😂😂😂
wd85318
2016-11-04 16:09:49 +08:00
屁大点事,自己技术有问题,你这种技术我们今天有个群也讨论了,你早就会炒掉。
fengfisher
2017-05-02 10:50:58 +08:00
@tinybaby365 谢谢了,后面账号被降权了,没用这个号了。
之前不久又做了一次测试,同样的报错,后面程序查了,是程序的问题。
fengfisher
2017-05-02 10:52:30 +08:00
@wd85318 嗯,我的技术很多方面还是很不足,确实有被炒掉的可能,现在也在努力学习提升中。谢谢大家了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/309943

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX