`
melec
  • 浏览: 28518 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多
最近用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,

  计划1. 修改upstream的设置.
  计划2. 配置lvs.替代nginx做负载均衡.

记下来几个东西,明天配置看结果. 再修改此帖.


upstream bbs_server_pool {
   server   192.168.1.15:80 weight=1 max_fails=0 fail_timeout=30s;(尝试下降低timeout,降低max_fails)
 }

location / {
    proxy_next_upstream http_502 http_504 error timeout invalid_header;
   proxy_pass http://bbs_server_pool;
   proxy_redirect off;
   proxy_set_header Host  $host;
   proxy_set_header X-Forwarded-For  $remote_addr;
}

#让TIME_WAIT尽快回收,我也不知是多久,观察大概是一秒钟(我都已设置)
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "40001 61000" > /proc/sys/net/ipv4/ip_local_port_range



再增加一个优化

启用/tmp/php-cgi.sock,修改如下即可。

     fastcgi_pass  unix:/tmp/php-cgi.sock;

     # fastcgi_pass  127.0.0.1:9000;


php-fpm.conf的优化

1、启用/tmp/php-cgi.sock,查找并修改成如下代码即可。

  <value name=”listen_address”>/tmp/php-cgi.sock</value>

结论:
(1)proxy_next_upstream参数很有用,他可以避免很多 错误
(2)max_fails 参数在繁忙的大型系统中建议设置为3,如果没有几个后端服务器的话保持默认即可。不怕出错,可以设置成0,这样负载分配更均衡。
(3)proxy_read_timeout要根据自身程序而定,不要过大,也不 要太小。如果是php程序,请参照php.ini中的max_execution_time选项值,默认30s。

老梁的博客有很多测试和说明
http://blog.sina.com.cn/s/blog_66b600260100ijg7.html
分享到:
评论

相关推荐

    Nginx+Apache负载均衡

    - **高性能负载均衡**:Nginx+Apache 组合提供了一个高性能、低成本的负载均衡解决方案,能够显著提高网站性能和服务可用性。 - **易于配置与管理**:相比昂贵的商用硬件负载均衡器,Nginx 的配置更加简单直观。 - *...

    nginx-1.21.3.tar.gz

    总的来说,Nginx-1.21.3 是一款强大的 Web 服务解决方案,无论是在小型项目还是大型企业级应用中,都能提供高效、稳定的反向代理服务。通过深入理解和熟练运用,我们可以充分利用它的各种功能,提升网站的性能和用户...

    Nginx+Squid负载均衡相关的PPT

    通过Nginx+Squid的组合,企业可以构建出一套强大的负载均衡和缓存解决方案,满足高并发、高可用和高效率的业务需求。同时,这两款开源软件拥有丰富的配置选项和社区支持,可以根据实际情况灵活调整,以适应不断变化...

    nginx负载均衡

    【Nginx负载均衡】是网络服务器架构中的一个重要概念,主要目的是通过分散网络流量来提高系统的可用性和响应速度。Nginx作为一个高性能的HTTP和反向代理服务器,它能够有效地处理高并发请求,并且可以同时支持Rails...

    Nginx轻松实现开源负载均衡

    【Nginx负载均衡详解】 Nginx是一款由俄罗斯开发者Igor Sysoev编写的高性能HTTP和反向代理服务器,以其高效稳定、低内存消耗、简单配置和低成本等特点,在全球范围内广泛应用于各种规模的企业,特别是在中、小型...

    nginx负载均衡配置

    ### Nginx负载均衡配置详解 #### 一、前言 Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上 Nginx 的...

    nginx-release-1.21.4.zip

    在运维中,Nginx的角色不仅仅是一个Web服务器,还常被用作反向代理,将用户的请求转发到不同的后端服务,实现负载均衡。例如,当有多个Web应用服务器时,Nginx可以根据预设的策略(如轮询、权重、IP哈希等)将请求...

    nginx 负载均衡for windows, 跨越 100万TCP连接

    **Nginx作为一款强大的Web服务器,其在负载均衡领域的应用是广泛的,尤其在Windows平台上,它同样能够展现出高效和稳定的表现。标题提及的“nginx 负载均衡for windows, 跨越 100万TCP连接”揭示了Nginx在Windows...

    安装Nginx(负载均衡器)

    ### 安装Nginx(负载均衡器) #### 概述 Nginx,发音为“engine x”,是由俄罗斯开发者Igor Sysoev创建的一款开源Web服务器软件,它支持多种功能,包括但不限于反向代理、负载均衡、HTTP缓存等。自发布以来,Nginx...

    Web服务器Nginx实现开源负载均衡.doc

    Nginx 负载均衡优点及适用环境 Nginx 负载均衡实现比较简单,可配置性很强,可以按 URL 做负载均衡,默认对后端有健康检查的能力。后端机器少的情况下(少于 10 台)负载均衡能力表现好。其优点主要有:功能强大,...

    nginx-1.19.2.tar.gz

    2. **反向代理和负载均衡**:Nginx 可以作为反向代理服务器,将来自客户端的请求转发到后端服务器集群,同时支持基于多种策略(如轮询、权重、IP哈希等)的负载均衡,确保服务的可用性和性能。 3. **静态文件处理**...

    Nginx+Tomcat搭建高性能负载均衡集

    在构建高性能的Web服务时,一个常见的架构是使用Nginx作为反向代理和负载均衡器,结合Tomcat作为应用服务器。Nginx以其高效、轻量级的特性,能够处理大量的并发连接,并且可以将请求分发到多个后端Tomcat服务器,...

    Nginx负载均衡条件下Redis共享Session测试

    本测试主要探讨了在Nginx负载均衡环境下,通过Redis实现Session共享的解决方案。 **Nginx负载均衡** Nginx的负载均衡功能可以通过配置upstream模块实现。它可以根据不同的策略(如轮询、最少连接、IP哈希等)将请求...

    nginx-1.6.2.tar.gz nginx-1.6.2下载

    - **负载均衡**:Nginx 可以通过轮询、权重、最少连接数等多种策略进行负载均衡,分发客户端请求到多个后端服务器,确保系统的稳定运行。 2. **Nginx 1.6.2 版本特点** - **发布日期**:Nginx 1.6.2 在2014年发布...

    Nginx-1.23.2.zip

    2. **反向代理**:Nginx可以作为反向代理服务器,将用户的请求转发到后端服务器,从而实现负载均衡和故障隔离,提高服务的可用性。 3. **静态文件处理**:Nginx在处理静态资源如图片、CSS、JavaScript等文件时表现...

    nginx-0.1.11.tar.gz

    Nginx以其稳定性和出色的性能在互联网行业中广泛使用,尤其在处理静态内容和作为反向代理服务器时表现卓越。 **版本0.1.11** Nginx 的0.1.11版本是其早期的一个发行版,发布于2004年左右。尽管此版本较旧,但它...

    nginx-1.19.6.zip

    Nginx以其轻量级的进程模型、高效的内存使用以及强大的负载均衡能力而闻名,是许多高并发网站首选的Web服务器。在这个"nginx-1.19.6.zip"压缩包中,包含的是Nginx的1.19.6版本安装文件,确保了软件的真实性和可靠性...

Global site tag (gtag.js) - Google Analytics