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 日

相关推荐

  • 宝塔ssl证书申请教程(宝塔开了ssl后出现503)

    现在很多网站都由原来的http://www.xxx.com转换为https://www.xxx.com,这就是说从http协议转到了https协议。如果说网站不是https协议,Chrome浏览器会提示不安全。https比http协议安全性高,对于一些表单的提交都是加密的,当我们在表单中输入一些敏感信息时,降低了数据泄漏的可能性。 今天尊云和你们分享自己搭建…

    2024 年 4 月 23 日
    000
  • debian修改ip地址为dhcp(怎么看dhcp分配的ip)

    当我们在安装 Debian Linux 时,在安装过程中它试图从调制解调器(或 DHCP 服务器)获得 DHCP ip 地址(如果可用的话)。但是在您的系统上总是建议有一个静态 IP 地址。静态 IP 地址的主要好处是,它将在整个重新引导过程中保持持久。 在本指南中,我们将演示如何在 Debian 11 (Bullseye) 上设置静态 ip 地址。 在 D…

    2024 年 4 月 20 日
    200
  • window远程登录权限设置

    windows系统想共享文件给其他设备使用时非常的简单,只需要在文件夹上配置共享就可以了。但多用户使用的时候,这样的权限配置就过于粗糙了,会带来很多麻烦的问题。 本篇文章的内容主要两个方面 1,配置smb共享专用用户组和用户,仅授予smb访问权限。 2,配置smb相关安全设置 一,新建smb共享专用用户组和用户并配置权限 用windows当nas系统共享文件…

    2024 年 5 月 3 日
    300
  • tcping命令结果详解(查看tcp连接的命令)

    1. tcping的作用及原理 tcping 是一种网络工具,用于测试网络中指定主机的 TCP 连接。与 ping 命令类似,tcping 通过发送网络数据包来测试主机的可达性和响应时间,但tcping 使用 TCP 协议进行测试,而 ping 命令使用 ICMP 协议进行测试。 具体来说,tcping 命令会向目标主机的指定 TCP 端口发送一个 SYN …

    3天前
    300
  • openssl查看版本命令

    你可以使用以下命令来查看 OpenSSL 的版本: openssl version 执行该命令后,终端会返回 OpenSSL 的版本信息,例如: OpenSSL 1.1.1g 21 Apr 2020 这个输出表示你的系统上安装的 OpenSSL 版本为 1.1.1g,发布日期是 2020 年 4 月 21 日。请注意,实际的版本号和发布日期可能会因你的系统配…

    2024 年 4 月 27 日
    000

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-900-3935

在线咨询: QQ交谈

邮件:cong@zun.com

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

添加微信