用Nginx做负载均衡,表现很不稳定.解决中..

  • Post author:
  • Post category:其他


最近用loadrunner测试一个php应用的并发(相当于论坛).

客户要求.每秒达到4000-5000并发请求.

提供了8台联想PC..4G内存,双核的CPU. 而且无光驱,又不能上外网.

其中4台用硬盘安装了双系统.CentOS.32位.网口100M.(板载网卡性能差,改用独立的)

4台装loadrunner测试.每台模拟1000用户,thinktime设成0.

1,先单机测试. nginx + php-fpm + mysql

平均:1700hits/s, 800trans/s, CPU 80%多, 内存占用2G左右, 网络90%.

应用加了Cache数据库命中率不高但仍然占了20%CPU. 按这个测试,也就差不多极限了.

2,接下来做负载均衡. 1台nginx proxy pass 到后面3台 如上面测试的配置.

发现出现502错误,连接不稳定,负载不均衡. 网络流量也不稳定.直接刷页面也不慢.

测试结果并没有3X,反而是0.5X,很是郁闷.

修改多次php-fpm,nginx的workprocessor等等参数. 不见效.今日以遗憾告终.

3,回来后赶紧查资料.发现以下可能项,需要优化.

1),nginx upstream的排错逻辑可能造成的问题. (修改后有效)

2),nginx proxy时,如果后端响应超时或失败会暂停请求10s(已印证)

3),nginx 超时时间设置过长. (修改后有效)

4),worker_rlimit_nofile配置要和系统内核配置一致,我的是65535.(修改有效)

5),linux内核配置问题. 启动 nginx前执行ulimit -HSn 65535,



版权声明:本文为phpmaster原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。