关于nginx 处理并发的问题

BLHeJe 2015-01-28 04:53:35
nginx作代理,用ab去压的时候(比如:ab -n 100000 -c 100000),没过多久ab反馈拒绝连接了,然后看到任务管理器中有一个nginx进程一直占用着CPU(如果是双核就占50%,换了一台8核的,就占用12%左右),错误日志猛增,内容都是2015/01/28 10:43:22 [alert] 11180#0: accept4() failed (22: Invalid argument) 这样的,若把ab的并发请求改小一些,可以通过。
想请问一下
1.出这样错的时候,是不是说nginx承受不住了,需要调优
2.出错后,服务就一直拒绝访问,错误日志也一直增加,等了很久都没有停下来,只有重启nginx才行,这种情况正常吗,感觉好像是nginx处理出现死循环了一样

另外我是在windows下跑的nginx
...全文
366 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2015-02-06
  • 打赏
  • 举报
回复
客气,但是线程数太多了点。。。切换线程上下文也是很浪费CPU的。 建议先按照CPU线程数×4,然后再根据测试效果上下浮动调整。因为运算密集型跟IO密集型在这方面会有较大区别。
BLHeJe 2015-02-06
  • 打赏
  • 举报
回复
引用 1 楼 ldh911 的回复:
调优肯定是需要的,但问题未必仅仅是Nginx本身的。 比如网络带宽如果不足,可能本身就会面临大量TCP包阻塞问题。 不过从CPU负载来看倒是比较怪异,你Nginx配置了多少工作线程啊?
配的是65535 那个CPU负载问题,后来发现原来是我没有在cygwin的shell里运行nginx,直接在windows的cmd下运行nginx就会出现这种情况 我原来理解是编译好后能完全脱离cygwin shell,现在发现可能做不到 多谢楼上帮助
MiceRice 2015-01-29
  • 打赏
  • 举报
回复
调优肯定是需要的,但问题未必仅仅是Nginx本身的。 比如网络带宽如果不足,可能本身就会面临大量TCP包阻塞问题。 不过从CPU负载来看倒是比较怪异,你Nginx配置了多少工作线程啊?

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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