首页 > 系统相关 >3.1 nginx全局块和events块配置

3.1 nginx全局块和events块配置

时间:2024-07-09 15:09:02浏览次数:15  
标签:processes worker cpu nginx affinity 3.1 events CPU

1 example

# 运行Nginx进程的用户
user nginx;
worker_processes  8;
worker_cpu_affinity auto;

# 定义存储某类型的全局错误的日志位置
# nginx日志分为很多级别 [debug | info | notice | warn | error | crit | alert | emerg]
error_log  /var/log/nginx/error.log  error;
# 指定进程ID(pid)存放的路径 
pid        /var/run/nginx.pid;
# 一个nginx进程打开的最多文件描述符数目,理论值应该是系统的最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;

events {
    # 使用epoll的I/O模型,用这个模型来高效处理异步事件
    use epoll;
    # 每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。
    worker_connections  20480;
}
 

2 配置CPU参数

Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。cpu是任务处理,计算最关键的资源,cpu核越多,性能就越好。

2.1 nginx worker_processes

worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了;

2.2 nginx worker_cpu_affinity

cpu有多少个核?就有几位数,1代表内核开启,0代表内核关闭;

例如:我有一个服务器是最低配,8核CPU,nginx配置信息则如下:

worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
 

上面的配置表示:8核CPU,开启8个进程。

我其实把nginx worker_cpu_affinity参数通常设置为auto

2.3 实例

2核CPU,开启2个进程

worker_processes 2;
worker_cpu_affinity 01 10;
 

2核CPU,开启4进程

worker_processes 4;
worker_cpu_affinity 01 10 01 10;
 

2核CPU,开启8进程

worker_processes 8;
worker_cpu_affinity 01 10 01 10 01 10 01 10;
 

8核CPU,开启2进程

worker_processes 2;
worker_cpu_affinity 10101010 01010101;
 

10101010表示开启了第2,4,6,8内核,01010101表示开始了1,3,5,7内核;

如果多个CPU内核的利用率都相差不多,证明nginx己经成功的利用了多核CPU。

测试结束后,CPU内核的负载应该都同时降低。

 

标签:processes,worker,cpu,nginx,affinity,3.1,events,CPU
From: https://www.cnblogs.com/david-cloud/p/18291966

相关文章

  • 3.1 Jenkins用户权限管理
    Jenkins默认使用的是自带的数据库管理用户,支持同步LDAP、Github等认证集成。关于用户与权限管理是Jenkins比较弱的一点,当大规模授权的时候建议使用API接口授权,否则当你打开web页面授权时,会很乱加载缓慢,最终导致保存失败权限丢失。用户管理配置用户接入入口:系统管理->全局安......
  • 3.1 Ansible Ad-hoc 常用命令集
    1Ad-hoc简介Ad-Hoc(点对点模式)是指ansible下临时执行的一条命令,并且不需要保存的命令,对于复杂的命令会使用playbook。Ad-hoc的执行依赖于模块,ansible官方提供了大量的模块。如:command、raw、shell、file、cron等,具体可以通过ansible-doc-l进行查看。可以使用ansible-doc-sm......
  • Nginx+Tomcat负载均衡、动静分离群集
    一:tomcat安装(在192.168.10.102和192.168.10.103)1:关闭防火墙[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenforce02:安装java环境[root@localhost~]#yum-yinstalljava[root@localhost~]#java-version3:安装tomcat[root@localhos......
  • Nginx+Tomcat群集
    一.实验环境 二.安装多台Tomcat服务器1.在安装Tomcat之前必须先安装JDK。        JDK的全称是JavaDevelopmentKit,是sun公司提供的JAVA语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的Java源程序经过编译可形成Java字节码,只要安装了JDK,就可以利用jvm解释这些......
  • 案列:Nginx+Tomcat负载均衡、动静分离群集
    一、案列:部署Tomcat(在192.168.10.102和192.168.10.103)1.关闭防火墙[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenforce02.安装java环境[root@localhost~]#yum-yinstalljava[root@localhost~]#java-version3.安装tomcat[root@localh......
  • Nginx 是一个非常流行的 Web 服务器和反向代理服务器
    Nginx是一个非常流行的Web服务器和反向代理服务器,以其高性能、稳定性、丰富的功能集和低资源消耗而闻名。下面是一个简化的Nginx使用教程,包括基本的安装、配置和一些常见用途。安装Nginx在Ubuntu/Debian上安装:sudoaptupdatesudoaptinstallnginx在CentOS......
  • Nginx常用操作
    NginxNginx的最重要的几个使用场景静态资源服务,通过本地文件提供服务反向代理服务,延伸出包括缓存,负载均衡等API服务,OpenResty相关概念简单请求和非简单请求请求方法是HEAD,GET,POST三种之一HTTP头信息不超过右边着几个字段:Accept、Accept-Language、Content-Language、L......
  • c++ primer plus 第15章友,异常和其他:15.3.1 调用abort()02
    c++primerplus第15章友,异常和其他:15.3.1调用abort()02调用abort()02文章目录c++primerplus第15章友,异常和其他:15.3.1调用abort()0215.3.1调用abort()15.3.1调用abort()对于这种问题,处理方式之一是,如果其中一个参数是另一个参数的负值,则调用abort(......
  • Nginx性能调优5招35式不可不知的策略实战
    Nginx是一个高性能的HTTP和反向代理服务器,它在全球范围内被广泛使用,因其高性能、稳定性、丰富的功能以及低资源消耗而受到青睐。今天V哥从5个方面来介绍Nginx性能调优的具体策略,希望对兄弟们有帮助,废话不多说,马上开整。1.系统层面:调整内核参数:例如,增加系统文件描述符的限制......
  • Docker部署Django+MySQL+Redis+Nginx+uWSGI+Celery(超详细)
    一、知识储备经过我们之前学习的Docker相关知识,现在我们来进行实战,以下介绍如何通过DockerCompose部署Django项目:先前知识:Docker学习笔记(一)概念理解-CSDN博客Docker学习笔记(二)镜像、容器、仓库相关命令操作-CSDN博客Docker学习笔记(三)Dockerfile-CSDN博客DockerCompose......