美文网首页
Nginx调优

Nginx调优

作者: 心无君 | 来源:发表于2016-01-12 22:12 被阅读0次

    下文涉及到的相关模块的安装,请参见Nginx源码安装

    1. worker_processes

    • 建议配置
    # nginx.conf
    
    # 工作进程数,建议设置为CPU核数
    worker_processes 8;
    
    # 工作进程绑定的核,建议一个工作进程绑定一个核
    worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
    
    #指定进程可以打开的最大描述符,最好与ulimit -n 的值保持一致
    worker_rlimit_nofile 1048576;
    
    events {
          # 使用epoll的I/O 模型
          use epoll;
    
          #工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行
          #每个进程允许的最多连接数, 理论上每台nginx服务器的最大连接数为worker_processes*worker_connections
          worker_connections  65536;
    }
    
    • 测试
      OS:CentOS release 6.5 (Final)
      CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
      内存:64G
      Nginx:1.6.0
      压测工具:https://pts.aliyun.com/lite/index.htm
      压测参数:线程(2000) * 施压机(5) * 执行时长(1min)
      
      worker_processes 测试结果
    • 结论
      结论1:worker_processes最好设置为CPU核数
      结论2:Nginx单台TPS大约为6W
      

    2. TCMalloc

    • 建议配置
    # nginx.conf
    # google_perftools的线程目录
    google_perftools_profiles /data/greentea/tmp/tcmalloc/tcmalloc;
    
    • 测试
    OS:CentOS release 6.5 (Final)
    CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
    内存:64G
    Nginx:1.6.0
    压测工具:https://pts.aliyun.com/lite/index.htm
    压测参数:线程(2000) * 施压机(1) * 执行时长(5min) * 预热时长(1min)
    
    TCMalloc 测试结果
    • 结论
    结论1:开启TCMalloc,性能有显著提升
    

    3. Real IP

    • 相关配置
     # nginx.conf
     # 还原用户真实IP
     set_real_ip_from 127.0.0.1;
     set_real_ip_from 10.0.0.0/8;
     set_real_ip_from 172.16.0.0/12;
     set_real_ip_from 192.168.0.0/16;
     real_ip_header X-Forwarded-For;
     real_ip_recursive on;
    
    • 测试
    OS:CentOS release 6.5 (Final)
    CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
    内存:64G
    Nginx:1.6.0
    压测工具:https://pts.aliyun.com/lite/index.htm
    压测参数:线程(2000) * 施压机(1) * 执行时长(5min) * 预热时长(1min)
    
    Real IP 测试结果
    • 结论
    结论1:RealIP模块无明显性能损耗。(建议开启)
    

    4. GEO

    • 相关配置
     # nginx.conf
     # 计算IP所在城市
     geo $remote_addr $geo_is_beijing {
          default 0;
          1.2.2.0/24 1;
          1.2.5.0/24 1;
          1.2.8.0/24 1;
          1.4.4.0/24 1;
          1.8.0.0/16 1;
    }
    
    • 测试
    OS:CentOS release 6.5 (Final)
    CPU(8核):Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
    内存:64G
    Nginx:1.6.0
    压测工具:https://pts.aliyun.com/lite/index.htm
    压测参数:线程(2000) * 施压机(1) * 执行时长(5min) * 预热时长(1min)
    
    GEO 性能测试
    • 结论
    结论1:GEO模块无明显性能损耗。(测试区分北上广杭)
    

    相关文章

      网友评论

          本文标题:Nginx调优

          本文链接:https://www.haomeiwen.com/subject/vnzqkttx.html