Nginx学习笔记(三): Nginx性能调优

Tags: nginx 

目录

说明

Tuning NGINX for Performance中给出了一些调优建议,调整的不只是nginx参数,还是有系统参数。

系统参数

net.core.somaxconn:内核参数,等待建立的连接的数量,如果连接增长非常快,存在连接无法建立的情况,可以考虑将这个数值增大。如果设置的数值超过512,需要在nginx的listen指令后面添加backlog配置,并设置为相同的值。

 backlog=number
 sets the backlog parameter in the listen() call that limits the maximum length for the queue of pending connections. 
 By default, backlog is set to -1 on FreeBSD, DragonFly BSD, and macOS, and to 511 on other platforms. 

net.core.netdev_max_backlog:内核参数,网卡缓存报文的速度,调大可以提高报文吞吐。

sys.fs.file-max:内核参数,整个系统可以打开的文件数。

nofile:系统配置, /etc/security/limits.conf中设置的用户可打开的文件数。

net.ipv4.ip_local_port_range:内核参数,临时端口范围,如果port数量不足,可以调大,通常设置为1024~65000。

nginx参数

worker_processes:工作进程的数量

worker_connections:每个worker的最高并发

keepalive_requests:一个keep-alive连接中可以包含请求数。

keepalive_timeout:keep-alive长连接的保持时间。

keepalive:与upstream之间缓存的空闲keep-alive连接数量。

proxy_http_version:代理时使用的http协议,默认是1.0,如果使用keep-alive,需要修改成1.1。

proxy_set_header:转发到upstream时,添加的header,如果使用keep-alive,需要设置下面的header:

proxy_set_header Connection "";

access_log:开启访问日志缓存,添加buffer=sizeflush=time设置日志刷新时间,或者干脆关闭访问日志off

send_file:使用send_file指令加速文件读取发送速度,send_file直接在内核态,将文件内容写入socket,不拷贝到用户空间。

limit_conn_zonelimit_conn:限制满足特定条件的连接数量。

limit_rate:限制向每个客户端的传输速率。

limit_req_zonelimit_req:限制请求的速率。

max_conns:到backend的最大连接数。

queue:存放等待被转发的请求的队列长度

使用CacheCompression

参考

  1. nginx documentation
  2. events context
  3. Tuning NGINX for Performance

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球