几个Nginx性能优化方法

共 2185字,需浏览 5分钟

 ·

2023-07-16 22:32


均需修改nginx的配置文件




vi /nginx/conf/nginx.conf



1、worker_processes 工作进程最大连接数



worker 进程数默认为 1 ,
单进程最大连接数为1024



  • 每个 worker 进程都是单线程的进程,它们会调用各个模块以实现多种多样的功能




  • 如果这些模块确认不会出现阻塞式的调用,那么有多少CPU内核就应该配置多少个进程




  • 反之,如果有可能出现阻塞式调用,那么需要配置稍多一些的worker进程







例如:如果业务方面会致使 用户请求 大量读取 本地磁盘上的静态资源文件,而且服务器上的内存较小,以至于 大部分的请求 访问 静态资源文件 时,都必须读取磁盘(磁头的寻址是缓慢的),而不是内存中的磁盘缓存,那么磁盘 IO 调用可能会 阻塞 住 worker 进程少量时间,进而导致服务整体性能下降。



2edbbe786aaced25058378293d3a2277.webp



运行工作进程个数一般设置CPU的核心或者核心数x2


如果不了解CPU的核数,可以top命令后按1来看



a4271cf9307dd75ab753dd50fe2e21a6.webp



实操





#
编辑ng的配置文件




>
vi /usr/local/nginx/conf/nginx.conf




>
worker_processes 4;




#
保存退出




#
重新加载ng配置文件




>
/usr/local/nginx/sbin/nginx-s reload




#
查看进程情况




>
 ps -aux | grep nginx |grep -v grep




5e72888b83938b138b29919da6965956.webp









2、worker_cpu_affinity工作进程绑定CPU内核


假定每一个 worker 进程都是非常繁忙的,如果多个 worker 进程都在抢同一个 CPU,那么这就会出现 同步问题。


反之,如果每一个 worker 进程都独享一个 CPU,就在 内核的调度 策略上实现了完全的 并发。


注意:worker_cpu_affinity 配置仅对 Linux 操作系统有效。





# 如:如果有`2`颗`CPU`内核,就可以进行如下配置



worker_processes 2;


worker_cpu_affinity 10 01;





# 如:如果有`4`颗`CPU`内核,就可以进行如下配置



worker_processes 4;


worker_cpu_affinity 1000 0100 0010 0001;





# 如:如果有`8`颗`CPU`内核,就可以进行如下配置



worker_processes 8;


worker_cpu_affinity 00000001 00000010 00000100 0000100000010000 00100000 01000000 10000000;






链接:https://blog.csdn.net/u010922732/article/details/90404096




(版权归原作者所有,侵删)













浏览 85
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报