Nginx调优

本文详细介绍了如何进行Nginx调优,包括设置进程数、查看CPU个数、调整最大打开文件数、优化事件处理模型、http主体优化、Gzip压缩和缓存策略。针对CPU亲和力,提供了不同线程数场景下的配置示例,并讲解了location匹配规则及其优先级。通过这些优化措施,可以提高Nginx的服务性能和资源利用率。
摘要由CSDN通过智能技术生成

目录

Nginx调优

Nginx进程

设置Nginx运行进程个数

查看cpu个数     

设置nginx中进程数

重载nginx配置文件

查看nginx进程数

Nginx运行cpu亲和力

4核4线程配置

如果我是4线程的CPU,只想跑两个进程呢?

Nginx最多可以打开文件数

设置nginx最大可打开文件数

修改系统可以打开的最大文件数:

Nginx事件处理模型

http主体优化

开启高效传输模式

长连接超时时间

文件上传大小限制

location匹配

location匹配:

精确匹配

前缀匹配

正则匹配

正常匹配

全匹配

命名匹配

nginx配置文件检测

Gzip调优

启用gzip

拷贝测试文件测试

expires缓存调优

以扩展名区分

对目录及其进行判断:

expire功能优点


Nginx调优

Nginx进程

[root@wzy ~]# ps aux | grep nginx | grep -v "grep"

在这里我们还可以看到在查看的时候,worker进程是www程序用户,但是master进程还是root,其中,master是监控进程,也叫主进程,worker是工作进程,还有cache相关进程,关系如图:

 可以直接理解为master进程是管理worker进程,而worker进程才是为用户提供服务的。

设置Nginx运行进程个数

Nginx运行进程个数一般我们设置CPU的核心或者核心数x2,如果你不了解,top命令之后按1也可以看出来。也可以查看/proc/cpuinfo文件

查看cpu个数     

[root@wzy ~]# top  #按1,可以看到我这里是4 核心

设置nginx中进程数

在nginx.conf的全局设置中修改

[root@wzy ~]# vi /usr/local/nginx/conf/nginx.conf

改:worker_processes  1;

为worker_processes  4;

重载nginx配置文件

[root@wzy ~]# nginx -s reload

[root@wzy ~]# systemctl reload nginx

查看nginx进程数

[root@wzy ~]# ps -aux | grep nginx | grep -v 'grep'

Nginx运行cpu亲和力

根据你的CPU线程数配置,在高并发情况下,通过设置cpu亲和力来降低由于多CPU核切换带来的性能损耗。

4核4线程配置

在nginx.conf文件全局配置中添加

[root@wzy ~]# vim /usr/local/nginx/conf/nginx.conf

为了避免cpu在切换进程时产生性能损耗,我们也可以将worker进程与cpu核心进行"绑定",当worker进程与cpu核心绑定以后,worker进程可以更好的专注的使用某个cpu核心上的缓存,从而减少因为cpu切换不同worker进程而带来的缓存失效,如果想要让worker进程与某个cpu核心绑定,则需要借助另外一个配置指令,它就是"worker_ cpu_ affinity"指令。

想要搞明白怎样使用"worker_ cpu_ affinity" 指令,最好先来了解一个概念,这个概念就是"cpu掩码",我们可以通过"cpu掩码"表示某个cpu核心,比如,当前机器上一共有4个cpu核心,那么我们就用4个0表示这4个核,也就是说,我们可以使用如下字符表示这4个核: 0000
那么第一个核就用如下字符表示:0001
第二个核就用如下字符表示:0010
第三个核就用如下字符表示:0100

第四个核就用如下字符表示:1000

规律就是,有几个核,就用几个0表示,如果想要使用某个核,就将对应位的0改成1,位从右边开始
比如,如果有8个核,我就可以使用如下字符表示这8个核中的第一个核:
00000001

如果我是4线程的CPU,只想跑两个进程呢?

[root@wzy ~]# vi /usr/local/nginx/conf/nginx.conf

worker_processes  2;

worker_cpu_affinity 0101 1010;

表示第一个进程在第一个和第三个cpu上运行,第二个进程在第二个和第四个cpu上运行,两个进程分别在这两个组合上轮询!

补充:

2核CPU,开启2个进程

worker_processes2;

worker_cpu_affinity  01  10;

2核CPU,开启4进程

worker_processes 4;

worker_cpu_affinity  01  10  01  10;

2核CPU,开启8进程

worker_processes8;

worker_cpu_affinity  01 10 01 10 01 10 01 10;

8核CPU,开启2进程

worker_processes2;

wor

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值