centos查看cpu核心数量

今天来给大家讲解一下Nginx的工作原理以及的一些可优化的参数配置,也都是在实际工作中总结出来的经验。

一、nginx工作原理

1.1、nginx进程模型

nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,如下图所示:

centos查看cpu核心数量

centos查看cpu核心数量

1.2、master和worker的工作职责

master是一个领导,它只负责管理worker,具体的工作任务由下面的worker(工人)去做。

master的职责:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

worker的职责:处理来自客户端的请求,多个worker进程之间是对等的,他们同等竞争来自客户端的请求,如下图所示:

centos查看cpu核心数量

各个worker进程互相之间是独立的,一个请求只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。

1.3、master-workers的机制的好处

1、对于每个 worker 进程来说,独立的进程,不需要加锁,所以省掉了加锁带来的开销,同时在编程以及问题查找时,也会方便很多。

2、采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的worker 进程。当然,worker 进程的异常退出,肯定是程序有 bug 了,异常退出,会导致当前 worker 上的所有请求失败,不过不会影响到所有请求,所以降低了风险。

二、优化参数配置

2.1、worker_processes进程数设置

Nginx 采用了 io 多路复用机制,每个 worker 都是一个独立的进程,但每个进程里只有一个主线程,通过异步非阻塞的方式来处理请求, 即使是千上万个请求也不在话下。每个 worker的线程可以把一个 cpu的性能发挥到极致,所以 worker 数和服务器的cpu核数相等是最为适宜的。设少了会浪费 cpu,设多了会造成 cpu 频繁切换上下文带来的损耗。

修改Nginx的nginx.conf配置文件,设置worker_processes进程数量

# 设置 worker 数量。
worker_processes 2
centos查看cpu核心数量

centos查看cpu核心数量

CentOS 查看系统 CPU个数、核心数、线程数的几个命令:

1、查看CPU物理个数
  grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l

centos查看cpu核心数量

查看 CPU物理个数

2、查看CPU核数
  grep ‘core id’ /proc/cpuinfo | sort -u | wc -l

centos查看cpu核心数量

查看 CPU核数

3、查看CPU线程数
  grep ‘processor’ /proc/cpuinfo | sort -u | wc -l

centos查看cpu核心数量

查看 CPU线程数

2.2、Nginx能支持的最大并发数

nginx的配置文件中有一个worker_connection属性的配置,这个是表示每个 worker 进程所能建立连接的最大值,所以,一个 nginx 能建立的最大连接数,理论上应该是 worker_connections * worker_processes。

那么问题来了,发送一个http请求,占用了woker的几个连接数呢?答案应该是2个或者4个

如果是支持 http1.1 的浏览器每次访问要占两个连接,所以Nginx处理普通的静态访问最大并发数是: worker_connections * worker_processes /2

如果是作为HTTP反向代理服务器,Nginx能处理的最大并发数量应该是 worker_connections *worker_processes/4。因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接。

举个例子:

nginx 有一个 master ,有四个 worker ,每个 worker 支持最大的连接数1024 ,那么nginx支持的最大并发数是多少?

普通的静态访问最大并发数是: worker_connections * worker_processes /2

所以就是1024*4/2=2048

而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *worker_processes/4

所以就是1024*4/4=1024

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2705686032@qq.com 举报,一经查实,本站将立刻删除。原文转载: 原文出处:

(0)
尊云-小张的头像尊云-小张
上一篇 2024 年 5 月 5 日 09:44
下一篇 2024 年 5 月 5 日 09:51

相关推荐

发表回复

登录后才能评论

联系我们

400-900-3935

在线咨询: QQ交谈

邮件:cong@zun.com

工作时间:365天无休服务 24小时在线

添加微信