JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Nginx - 调优 nginx性能优化

wys521 2024-10-03 04:16:14 精选教程 20 ℃ 0 评论
  • worker调优
    worker是Nginx的进程,一个worker理论上可以处理几万个请求,为了更好利用Nginx的缓存机制,让worker运行在固定的CPU上,从而减少worker切换CPU时造成的性能消耗。worker的数量并不是越多越好,worker的数量一般配制与物理CPU的物理核心数相同。

  • CPU在LINUX的编号
    CPU物理核心编号由一个8位的二进制串表示,0000 0001表示第一个物理核心,0000 0010表示第二个核心,0000 0100表示第三个物理核心。第八号物理核心表示为1000 0000。

  • Nginx 配制worker与CPU绑定
    nginx.conf 配制如下
worker_processes 2;
worker_cpu_affinity 0001 0010;

将两个worker绑定在第一、二个CPU物理核心上。


  • worker nice值的调整(worker进程的优先级调整)
    worker的优先级是通过worker_priority参数调整的,其取值范围为[-20, 20]。
worker_processes 2;
worker_cpu_affinity 0001 0010;
worker_priority 19;

虽然worker的nice值最大为20,实际上只以到达19,当超出20这个值时,用nginx -t进得测试已经报出配制异常,但nginx仍然能以19的优先级启动。


  • worker_rlimit_number调优
    worker_rlimit_number,用于限制nginx单个进程最大的并发量。假设2个worker最大并发量为3W,那么单个worker的并发量为1.5W。这里worker_rlimit_number应该调整为15000

注意:默认情况下,此参数不在nginx.conf文件里出现,需要手动添加配置。

配置如下:

worker_processes 2;
worker_cpu_affinity 0001 0010;
worker_priority 19;
worker_rlimit_number 15000;
  • event事件驱动相关配制
events{
  worker_connections 102400;
  accept_mutex on | off;
}

worker_connections:每个worker支持的最大连接并发量。
如果accept_mutex设置成on,则请求由各worker轮流处理。如果设置成off,则一个请求过来,会通知所有的worker,哪个worker处理的请求少,则由哪个worker处理请求。因为accept_mutex值为off时,会通知所有的worker,因此比较消耗性能。

  • server模块相关配制
    server_tokens
    server_tokens在http模块或server模块里设置。在http模块设置,则作用于所有server模块。在server模块设置,则只作用于单个server模块。当server_tokens的值为off时,将不对外暴露nginx版本信息,有利于避开不良用户针对nginx不对版本的漏洞攻击
http{
  server_tokens off;
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表