完成端口编程问题,急!急!急!急!
完成端口编程问题,急!急!急!急!
用完成端口编程,服务器是CPU P2.4, RAM 1G, 系统可用内存876MB,系统缓存475MB,这时有
5000个客户端连接在线,每个客户端每300毫秒向服务器端发送200字节数据,CPU占用是65%。
同时,我为每个Socket设置的发送接收缓存是1MB,服务器接到数据后不做处理,直接返回。
这时过一段时间服务器会蓝屏,提示物理内存不足。但是内存还有800多MB.
请问高手,这是为何,是不是发送接收缓存是1MB,5000 * 1MB > 475MB 导致缓存溢出。
有没有解决方法???
问题点数:20、回复次数:5Top
1 楼hxynxxx(S)回复于 2004-12-02 08:49:28 得分 0
一个CPU开两个线程。Top
2 楼hxynxxx(S)回复于 2004-12-02 11:33:18 得分 0
UPTop
3 楼hxynxxx(S)回复于 2004-12-02 11:34:38 得分 0
UPTop
4 楼click2004(大家好)回复于 2004-12-02 14:02:44 得分 20
关注Top
5 楼hxynxxx(S)回复于 2004-12-10 11:26:15 得分 0
本人认为做好不用完成端口,直接使用非block的Socket,每个一段时间去recv一次最好,
由系统自己分配缓存,这样对每个连接才会公平,否则当有一个连接不停的发数据时,CPU
资源就会被他全占用,而且数据量大时,不停的切换线程,很耗费资源。
请各位指教,谢谢。Top




