nginx调优

本文中,红色字体为nginx调优建议值。 


 1. Linux系统资源限制配置调优

  linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。
  limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。

  * soft nofile 655350 #任何用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接
  * hard nofile 655350
  * soft nproc 655350 #任何用户可以打开的最大进程数
  * hard nproc 655350

hard和soft两个值都代表什么意思呢?
soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错。

永久设置可以打开的最大的文件描述符数量,操作如下:

#root权限下,在/etc/security/limits.conf中添加如下两行,表示所有用户最大打开文件描述符数的soft limit为655350,hard limit为655350。
* soft nofile 655350
* hard nofile 655350

2. nginx进程数的配置调优

  nginx服务启动后,会存在两个重要的进程

1. master进程,控制nginx的启动、停止、配置文件的重载。

2. worker进程,用于处理用户请求,将收到的请求转发的到后端服务端。

  worker进程的个数(默认初始值为1)可以在配置文件nginx.conf文件中进行配置,如下所示:

worker_processes  1;  #Nginx配置文件中 worker_processes指令后面的数值代表了nginx启动后worker进程的个数。

  worker进程的数量一般建议等于CPU的核数或者CPU核数的两倍。通过执行lscpu命令可以获取到CPU的核数。

  配置完成worker进程的数量后,还建议将每一个worker进程绑定到不同的CPU核上,这样可以避免出现CPU的争抢。将worker进程绑定到不同的CPU核时,可以通过在nginx.conf中增加worker_cpu_affinity 配置,例如将worker进程分配到4核的CPU上,可以按照如下配置进行配置。

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000;  #0001表示启用第一个CPU内核,0010表示启用第二个CPU内核,依此类推

特别说明:1.9.10版本后,可以配置worker_processes 为auto。如下:

worker_processes auto;   #可以根据物理CPU自动设定,nginx启动后的worker进程数与实际cpu核数相等。
worker_cpu_affinity auto;

3. nginx客户端连接数的调优

  在高并发的请求调用中,连接数有时候很容易成为性能的一个瓶颈。nginx可以通过如下方式来调整nginx的连接数。

  配置nginx单个进程允许的客户端最大连接数(默认初始值为1024),可以修改nginx中的nginx.conf配置文件中的配置如下:

events {
    worker_connections  65535;
}

 4. nginx事件处理模型的调优

  为了性能得到最优处理,nginx的连接处理机制在不同的操作系统中一般会采用不同的I/O事件模型。在Linux操作系统中,一般使用epoll的I/O多路复用模型。如下:

events {
    worker_connections  65535;
    use epoll;
}

 

posted @ 2022-08-29 17:46  查拉图斯特拉面条  阅读(313)  评论(0编辑  收藏  举报