Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

拜读了一下源码,提一点建议 #3

Closed
ckcfcc opened this issue Sep 22, 2014 · 3 comments
Closed

拜读了一下源码,提一点建议 #3

ckcfcc opened this issue Sep 22, 2014 · 3 comments

Comments

@ckcfcc
Copy link

ckcfcc commented Sep 22, 2014

简单做了个echo,用了5台PC跑了下,每个PC开了10000的连接,由10线程管理,总共连接数5W

客户机每隔100毫秒建立一个连接,连接全部建立成功后,开始收发包,发送1个Hello World给服务端,服务端回应,收到回应后继续发送。

被测机配置如下:
处理器: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz (4核心 + 超线程技术)
内存: 32768MB RAM

连接 5W,可以全部连上,但是,机器如果运行很久没有重启,有连不上的情况
开始发包后,会不定期持续掉连接,最后稳定在3万5000左右。

服务端用的收发规则是 SP_PACK 和 RP_SERIAL

建议:代码中用了临界区和RW锁或Spin锁,如果能使用无锁方式(lock-free)相信性还能有很大的提升。
仅仅是建议,作者不喜勿怪。

@ldcsaa
Copy link
Owner

ldcsaa commented Sep 22, 2014

跟锁没有多少关系。
在CPU非满载的情况下。请检查网络流量是否已满,在网络负载满的情况下,默认的心跳包会被堵塞,导致自动断开连接。
可关闭心跳检测机制再测试。如果服务器资源未占满,应该不会出现掉线。
如有问题,进Q群交流:怪兽乐园 75375912

@ckcfcc
Copy link
Author

ckcfcc commented Sep 23, 2014

谢谢作者的回复。

没有关心心跳,是否默认情况下心跳是自动开启的呢?

@ldcsaa
Copy link
Owner

ldcsaa commented Sep 24, 2014

yes!!!

@ldcsaa ldcsaa closed this as completed Sep 24, 2014
@ldcsaa ldcsaa reopened this Sep 24, 2014
@ldcsaa ldcsaa closed this as completed Sep 29, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants