服务器提高并发量

jakky520 2009-09-22 09:48:53
如果提高服务器的并发量啊 ?欢迎探讨

服务器能够支持最大的并发量除了和IOCP有影响外还和哪些因素有关 ?

求教高人。在Linux上已经修改了内核 , 将__FD_SETSIZE改成成了65535 后总是在大概3000-3500路左右的时候就上不去了。请有过相关服务器经验的高手赐教。
...全文
348 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MinSi 2009-10-23
  • 打赏
  • 举报
回复
学习!
平凡的思想者 2009-10-21
  • 打赏
  • 举报
回复
从哲学上说,消除瓶颈是提高服务器性能和并发能力的唯一途径。
如果你能够消除所有的瓶颈,你就能够最大的发挥硬件性能,让系统的性能和并发数到达最佳。
采用多线程多核编程,使用事件驱动或异步消息机制,尽量减少阻塞和等待操作(如I/O阻塞、同步等待或计时/超时等)。
原理:
1、多线程多核编程,消除cpu瓶颈。
2、采用IOCP或epoll,利用状态监测和通知方式,消除网络I/O阻塞瓶颈。
3、采用事件驱动或异步消息机制,可以消除不必要的等待操作。
4、如果是Linux,可以采用AIO来消除磁盘I/O阻塞瓶颈。
5、在事件驱动框架或异步消息中统一处理timer事件,变同步为异步,而且可以在一个线程处理无数timer事件。
6、深入分析外部的阻塞来源,消除它。
比如数据库查询较慢,导致服务器处理较慢,并发数上不去,这时就要优化数据库性能。
7、如果与某个其他server通信量很大,导致性能下降较多。
可以考虑把这两个server放在一个主机上,采用共享内存的方式来做IPC通信,可以大大提高性能。
wanglovec 2009-10-10
  • 打赏
  • 举报
回复
I0与CPU并发处理

减少内存复制
  • 打赏
  • 举报
回复
2.6以上的内核,可以用epoll,不是全遍历,而是修改了内核,用类似回调函数的思想来实现的并发检测。
gumbour 2009-09-22
  • 打赏
  • 举报
回复
IOCP是windows下的东西, linux肯定是多线程epoll,如果你用select遍历会死人的。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧