作家
登录

应用场景深度解析:Nignx性能优化指南

作者: 来源: 2017-11-23 11:57:02 阅读 我要评论

  •  
  • 个中net.core.somaxconn这个设备在CentOS 6系列中,这个参数的值可以大年夜于65535,在CentOS 7中,这个参数的最大年夜值为65535 
  •  
  •   
  •  
  • net.ipv4.tcp_timestamps 
  •  
  • net.ipv4.tcp_tw_recycle 
  •  
  • net.ipv4.tcp_tw_reuse 
  • 这三种筹划都是用于精华存放入memcache或者Redis的,大年夜而让Nginx支撑分布式缓存,并且对于缓存存储不受Nginx本地存储的影响。

    1. net.ipv4.tcp_slow_start_after_idle 

    这个参数是禁用TCP慢启动的,当然如不雅应用CentOS 6的用户建议将版本进级到6.5以及6.5今后的版本,这个参数设备才有意义,低于6.5的版本,须要做些特别设备才可以。

    其它留意事项

    1、net.ipv4.tcp_mem没事别瞎改,体系主动计算,别吃饱撑着!

    2、fs.file-max没事别瞎改,内核根据内存大年夜小主动计算,表示kernel可分派的最大年夜文件句柄数,这个参数的大年夜小简单的来说袈浼等于cat /proc/meminfo|grep MemTotal的大年夜小乘以10%,精确的计算可以在我博客查看。

    3、fs.nr_open可以修改,此为单个过程可分派的最大年夜文件句柄数,默认是为1024*1024

    4、以下三个参数在Nginx没有启用SO_TCPKEEPALIVE特点时,根本不会生效,且启用SO_TCPKEEPALIVE特点的参数,不是keepalive_timeout!

    1. net.ipv4.tcp_keepalive_time 
    2.  
    3. net.ipv4.tcp_keepalive_probes 
    4.  
    5. net.ipv4.tcp_keepalive_intvl 

    HTTP Keep-Alive与TCP Keepalive是两个不合的概念,简单说前者是复竽暌姑一个TCP连接,后者用于TCP连接的链路探活。

    关于HTTP Keep-Alive与TCP Keepalive我博客近期会宣布一片文┞仿,经由过程wireshark抓包来详解。

    5、net.ipv4.tcp_max_orphans不要设置过大年夜,一个孤儿连接要占用64K的弗成交换内存,网上动辄这个值设备个几百万,吼吼,为内存认为担心。

    6、net.ipv4.tcp_max_tw_buckets没事别设置几万几十万的,这个参数是TW的连接跨越这个设置时在/var/log/messages中打印警告信息,同时释放TW连接,可以设置小一点,当体系中TW太多时,net.ipv4.tcp_tw_recycle和net.ipv4.tcp_tw_reuse两个参数并没有卵用,所以TW连接过大年夜的可以直接暴力的将net.ipv4.tcp_max_tw_buckets设置为0,并没有什愦问题,当然最终解决照样要依附法度榜样和对Nginx的设备以及从新编译内核,削减TW连接的产生。

    7、rmem和wmem可根据netstat –s|grep socket的结不雅来断定是否足够,出现类似以下信息时就要推敲增长对应的大年夜小了。

    269651 packets pruned from receive queue because of socket buffer overrun

    这三个参数一般建议都设备为0,高并发时tw连接想快速收受接收及复竽暌姑照样呵呵吧。

    5346082 packets collapsed in receive queue due to low socket buffer

    Nginx层面

    1、安装优化

    安装优化重要针对Nginx的编译安装,这里包含两个部分,一是针对编译器的编译参数优化,二是经由过程Nginx的应用处景来定制化Nginx的编译选项。以下经由过程Nginx最为静态资本办事器的案例来抛砖引玉地说下Nginx安装的优化:

    起重要肯定Nginx是针对哪类静态资本做办事,例如供给js、css以及jpg、png等资本的拜访,照样针对MP3、MP4、RMVB、zip、rar等大年夜文件的资本拜访。这两种静态资本的场景应用对Nginx的编译参数照样有很大年夜影响的。js\css\jpg等这类静态资本一般文件都是比较小的,作为互联网公司一般文件的平均大年夜小不会跨越4M,所以一般编译时是不须要将–with-threads编译进去,而后者这种文件动辄都邑跨越10M的静态资本,一般就须要将–with-threads开启了,以便应用Nginx的线程池来晋升文件传输的机能。

    其次,作为静态资本办事器,大年夜部分的模块是应用不到的,能应用到的模块有ssl模块、http v2模块,所以编译Nginx的参数就变成下面如许了:

    1. ./configure –prefix=/opt/websuite/nginx \ 
    2.  
    3. –conf-path=/opt/config/nginx/nginx.conf \ 
    4.  
    5. –modules-path=/opt/websuite/nginx/modules \ 
    6.  
    7. –error-log-path=/opt/logs/nginx/error.log \ 
    8.  
    9. –http-log-path=/opt/logs/nginx/access.log \ 
    10.  
    11. –pid-path=/opt/run/nginx –user=websuite \ 
    12.  
    13. group=websuite \ 
    14.  
    15. with-file-aio \ 
    16.  

    17.   推荐阅读

        为什么云服务器上存储的数据更安全

      Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 企业收集体系遭受恶意进击事>>>详细阅读


      本文标题:应用场景深度解析:Nignx性能优化指南

      地址:http://www.17bianji.com/lsqh/39182.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)