社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

几个Nginx性能优化方法

马哥Linux运维 • 10 月前 • 119 次点击  

均需修改nginx的配置文件

vi /nginx/conf/nginx.conf

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

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

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

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

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


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

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

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

实操

# 编辑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


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

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


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/157172
 
119 次点击