轻量级HTTP服务器Nginx(Nginx性能优化技巧)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了轻量级HTTP服务器Nginx(Nginx性能优化技巧),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3215字,纯文字阅读大概需要5分钟。
内容图文
![轻量级HTTP服务器Nginx(Nginx性能优化技巧)](/upload/InfoBanner/zyjiaocheng/960/c9c9d2f1199a404cbb87a6c56ca21e7b.jpg)
一、编译安装过程优化
1.?减小?Nginx?编译后的文件大小
在编译?Nginx?时,默认以?debug?模式进行,而在?debug?模式下
会插入很多跟踪和?ASSERT?之类的信息,编译完成后,一个?Nginx
要有好几兆字节。在编译前取消?Nginx?的?debug?模式,编译完成后
Nginx?只有几百千字节,因此可以在编译之前,修改相关源码,取消
debug?模式,具体方法如下?:
在?Nginx?源码文件被解压后,找到源码目录下的?auto/cc/gcc?文
件,在其中找到如下几行?:
#?debug
CFLAGS=”$CFLAGS?-g”
注释掉或删掉这两行,即可取消?debug?模式。
2.?为特定的?CPU?指定?CPU?类型编译优化
在编译?Nginx?时,默认的?GCC?编译参数是“-O”,要优化?GCC?编
译,可以使用以下两个参数?:
--with-cc-opt='-O3'
--with-cpu-opt=CPU?#?为特定的?CPU?编译,有效的值包括?:
pentium,?pentiumpro,?pentium3,?pentium4,?athlon,
opteron,?amd64,?sparc32,?sparc64,?ppc64
要确定?CPU?类型,可以通过如下命令?:
#cat?/proc/cpuinfo?|?grep?"model?name"
二、利用?TCMalloc?优化?Nginx?的性能
参考:
https://blog.csdn.net/ChenVast/article/details/72866435
三、Nginx?内核参数优化
内核参数的优化,主要是在?Linux?系统中针对?Nginx?应用而进行
的系统内核参数优化,常见的优化参数值如下。
下面给出一个优化实例以供参考?:
net.ipv4.tcp_max_tw_buckets?=?6000
net.ipv4.ip_local_port_range?=?1024?65000
net.ipv4.tcp_tw_recycle?=?1
net.ipv4.tcp_tw_reuse?=?1
net.ipv4.tcp_syncookies?=?1
net.core.somaxconn?=?262144
net.core.netdev_max_backlog?=?262144
net.ipv4.tcp_max_orphans?=?262144
net.ipv4.tcp_max_syn_backlog?=?262144
net.ipv4.tcp_synack_retries?=?1
net.ipv4.tcp_syn_retries?=?1
net.ipv4.tcp_fin_timeout?=?1
net.ipv4.tcp_keepalive_time?=?30
将上面的内核参数值加入?/etc/sysctl.conf?文件中,然后执行如
下命令使之生效?:
[home]#/sbin/sysctl?-p
下面是对实例中选项的含义进行介绍?:
net.ipv4.tcp_max_tw_buckets?参数用来设定?timewait?的数
量,默认是?180000,这里设为?6000。
net.ipv4.ip_local_port_range?选项用来设定允许系统打开的端
口范围。
net.ipv4.tcp_tw_recycle?选项用于设置启用?timewait?快速回
收。
net.ipv4.tcp_tw_reuse?选项用于设置开启重用,允许将?TIME-
WAIT?sockets?重新用于新的?TCP?连接。
net.ipv4.tcp_syncookies?选项用于设置开启?SYN?Cookies,当
出现?SYN?等待队列溢出时,启用?cookies?进行处理。
net.core.somaxconn?选项默认值是?128,?这个参数用于调节系
统同时发起的?tcp?连接数,在高并发的请求中,默认的值可能会导致
链接超时或者重传,因此,需要结合并发请求数来调节此值。
net.core.netdev_max_backlog?选项表示当每个网络接口接收
数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据
包的最大数目。
net.ipv4.tcp_max_orphans?选项用于设定系统中最多有多少个
TCP?套接字不被关联到任何一个用户文件句柄上。如果超过这个数
字,孤立连接将立即被复位并打印出警告信息。这个限制只是为了防
止简单的?DoS?攻击。不能过分依靠这个限制甚至人为减小这个值,
更多的情况是增加这个值。
net.ipv4.tcp_max_syn_backlog?选项用于记录那些尚未收到客
户端确认信息的连接请求的最大值。对于有?128MB?内存的系统而
言,此参数的默认值是?1024,对小内存的系统则是?128。
net.ipv4.tcp_synack_retries?参数的值决定了内核放弃连接之
前发送?SYN+ACK?包的数量。
net.ipv4.tcp_syn_retries?选项表示在内核放弃建立连接之前发
送?SYN?包的数量。
net.ipv4.tcp_fin_timeout?选?项?决?定?了?套?接?字?保?持?在?FIN-
WAIT-2?状态的时间。默认值是?60?秒。正确设置这个值非常重要,
有时候即使一个负载很小的?Web?服务器,也会出现因为大量的死套
接字而产生内存溢出的风险。
net.ipv4.tcp_keepalive_time?选项表示当?keepalive?启用的时
候,TCP?发送?keepalive?消息的频度。默认值是?2(单位是小时)。?
内容总结
以上是互联网集市为您收集整理的轻量级HTTP服务器Nginx(Nginx性能优化技巧)全部内容,希望文章能够帮你解决轻量级HTTP服务器Nginx(Nginx性能优化技巧)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。