服务器(java实现)能接收的最大客户端socket连接数?

老瓶子 发布于 2012/08/27 14:48
阅读 4K+
收藏 2
编了个服务器程序(java实现),2个线程实现。第一个线程为监听线程,把连接的客户端socket的输入流放入一个“数组”里;第二个线程 无阻塞的读取这个“数组”里的所有输入流。

把java虚拟机的内存设置为500M---700M,
1. 服务器连接2500个客户端socket后(3台电脑实现来产生2500个客户端socket),任务管理器查看进程javaw.exe(发现使用cpu时间片45左右,内存212M左右,并且长时间稳定在这个数值)。运行半个小时后陆续出现socket断开现象。
2. 服务器连接1500个客户端socket(3台电脑实现来产生1500个客户端socket),任务管理器查看进程javaw.exe(发现使用cpu时间片45左右,内存190M左右,并且长时间稳定在这个数值)。运行半个小时后陆续出现socket断开现象。

3.服务器连接1000个客户端socket,服务器能正常工作。

 

请问java实现的服务器能够连接的最大客户端Socket数量是多少啊?
有没有什么办法能把最大连接数提高到1万个啊?
加载中
0
天下朋友
天下朋友

1. 查看代码和配置是否完全符合线程模型,自己对框架的理解是否有偏差。我之前使用netty的时候,pipeline里面没加线程池异步处理,恰好在业务处理部分使用的缓存bug,使得worker全部等待

2. 检查业务代码的处理,是否有不当的地方,造成资源未释放

3. 检查代码和配置,是否有中到陷阱

返回顶部
顶部