广告
返回顶部
首页 > 资讯 > 服务器 >05-Nginx性能调优
  • 312
分享到

05-Nginx性能调优

nginx服务器运维 2023-09-17 13:09:55 312人浏览 泡泡鱼
摘要

目录 Nginx 的并发处理机制 全局模块下的调优 worker_processes 2 worker_cpu_affinity 01 10 worker_rlimit_nofile 65535 events 模块下的调优 w

目录

Nginx 的并发处理机制

全局模块下的调优

worker_processes 2

worker_cpu_affinity 01 10

worker_rlimit_nofile 65535

events 模块下的调优

worker_connections 1024

accept_mutex on

accept_mutex_delay 500ms

multi_accept on

use epoll

A、 select | poll | epoll

B、 rtsig

C、 kqueue

D、/dev/poll

http 模块下的调优

非调优属性简介

include mime.types;

default_type     application/octet-stream;

charset utf-8;

sendfile on

tcp_nopush on

tcp_nodelay on

keepalive_timeout 60

keepalive_requests 10000

client_body_timeout 10


Nginx并发处理机制

一般情况下并发处理机制有三种:多进程、多线程,与异步机制。Nginx 对于并发的处理同时采用了三种机制。当然,其异步机制使用的是异步非阻塞方式。

我们知道Nginx 的进程分为两类:master 进程与 worker 进程。每个 master 进程可以生成多个 worker 进程,所以其是多进程的。每个 worker 进程可以同时处理多个用户请求,每个用户请求会由一个线程来处理,所以其是多线程的。

那么,如何解释其“异步非阻塞”并发处理机制呢?

worker 进程采用的就是 epoll 多路复用机制来对后端服务器进行处理的。当后端服务器返回结果后,后端服务器就会回调 epoll 多路复用器,由多路复用器对相应的 worker 进程进行通知。此时,worker 进程就会挂起当前正在处理的事务,拿 io 返回结果去响应客户端请求。响应完毕后,会再继续执行挂起的事务。这个过程就是“异步非阻塞”的。

      1. 全局模块下的调优

  1. worker_processes 2

打开 nginx.conf 配置文件,可以看到 worker_processes 的默认值为 1。

worker_processes,工作进程,用于指定 Nginx 的工作进程数量。其数值一般设置为 CPU

内核数量,或内核数量的整数倍

不过需要注意,该值不仅仅取决于 CPU 内核数量,还与硬盘数量及负载均衡模式相关。在不确定时可以指定其值为 auto。

  1. worker_cpu_affinity 01 10


将 worker 进程与具体的内核进行绑定。不过,若指定 worker_processes 的值为 auto, 则无法设置 worker_cpu_affinity。

该设置是通过二进制进行的。每个内核使用一个二进制位表示,0 代表内核关闭,1 代表内核开启。也就是说,有几个内核,就需要使用几个二进制位。

  1. worker_rlimit_nofile 65535

用于设置一个 worker 进程所能打开的最多文件数量。其默认值与当前 linux 系统可以打开的最大文件描述符数量相同。

      1. events 模块下的调优

  1. worker_connections 1024

设置每一个 worker 进程可以并发处理的最大连接数。该值不能超过 worker_rlimit_nofile

的值。

  1. accept_mutex on

  1. on:默认值,表示当一个新连接到达时,那些没有处于工作状态的 worker 将以串行方式来处理;
  2. off:表示当一个新连接到达时,所有的 worker 都会被唤醒,不过只有一个worker 能获取新连接,其它的 worker 会重新进入阻塞状态,这就是“惊群”现象。

  1. accept_mutex_delay 500ms

设置队首 worker 会尝试获取互斥的时间间隔。默认值为 500 毫秒。

  1. multi_accept on

  1. off系统会逐个拿出新连接按照负载均衡策略,将其分配给当前处理连接个数最少的worker。
  2. on系统会实时的统计出各个 worker 当前正在处理的连接个数,然后会按照“缺编” 最多的 worker 的“缺编”数量,一次性将这么多的新连接分配给该 worker。

  1. use epoll

设置worker 与客户端连接的处理方式。Nginx 会自动选择适合当前系统的最高效的方式。当然,也可以使用 use 指令明确指定所要使用的连接处理方式。user 的取值有以下几种: select | poll | epoll | rtsig | kqueue | /dev/poll 。

A、 select | poll | epoll

这是三种多路复用机制。select 与 poll 工作原理几乎相同,而epoll 的效率最高,是现在使用最多的一种多路复用机制。

B、 rtsig

realtime signal,实时信号,Linux 2.2.19+的高效连接处理方式。但在 在Linux 2.6 版本后, 不再支持该方式。

C、 kqueue

应用在 BSD 系统上的epoll。

D、/dev/poll

UNIX 系统上使用的 poll。

      1. Http 模块下的调优

  1. 非调优属性简介

  1. include mime.types;

将当前目录(conf 目录)中的 mime.types 文件包含进来。

  1. default_type     application/octet-stream;

对于无扩展名的文件,默认其为 application/octet-stream 类型,即 Nginx 会将其作为一个八进制流文件来处理。

  1. charset utf-8;

设置请求与响应的字符编码。

  1. sendfile on

设置为 on 则开启 Linux 系统的零拷贝机制,否则不启用零拷贝。当然,开启后是否起作用,要看所使用的系统版本。Centos6 及其以上版本支持 sendfile 零拷贝。

  1. tcp_nopush on

  1. on:以单独的数据包形式发送 Nginx 的响应头信息,而真正的响应体数据会再以数据包的形式发送,这个数据包中就不再包含响应头信息了。
  2. off:默认值,响应头信息包含在每一个响应体数据包中。

  1. tcp_nodelay on

  1. on:不设置数据发送缓存,即不推迟发送,适合于传输小数据,无需缓存。
  2. off:开启发送缓存。若传输的数据是图片等大数据量文件,则建议设置为 off。

  1. keepalive_timeout 60

设置客户端与Nginx 间所建立的长连接的生命超时时间,时间到达,则连接将自动关闭。单位秒。

  1. keepalive_requests 10000

设置一个长连接最多可以发送的请求数。该值需要在真实环境下测试

  1. client_body_timeout 10

设置客户端获取 Nginx 响应的超时时限,即一个请求从客户端发出到接收到Nginx 的响应的最长时间间隔。若超时,则认为本次请求失败。

来源地址:https://blog.csdn.net/xianghanscce/article/details/127762473

--结束END--

本文标题: 05-Nginx性能调优

本文链接: https://www.lsjlt.com/news/411107.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 05-Nginx性能调优
    目录 Nginx 的并发处理机制 全局模块下的调优 worker_processes 2 worker_cpu_affinity 01 10 worker_rlimit_nofile 65535 events 模块下的调优 w...
    99+
    2023-09-17
    nginx 服务器 运维
  • Nginx+Linux性能调优的方法是什么
    本篇内容介绍了“Nginx+Linux性能调优的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Nginx以高性能负载均衡、缓存和w...
    99+
    2023-06-16
  • Nginx负载均衡的性能测试与调优实践
    概述:Nginx作为一款高性能的反向代理服务器,常用于负载均衡的应用场景。本文将介绍如何进行Nginx负载均衡的性能测试,并通过调优实践提升其性能。性能测试准备:在进行性能测试之前,我们需要准备一台或多台具备较好性能的服务器,安装Nginx...
    99+
    2023-10-21
    性能测试 Nginx 负载均衡 调优实践
  • 如何优化Nginx的性能
    今天就跟大家聊聊有关如何优化Nginx的性能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。文件描述符限制由于每个TCP连接都要占用一个文件描述符,一旦文件描述符耗尽,新的连接到来就会...
    99+
    2023-06-15
  • Nginx性能优化的方法
    这篇文章主要介绍了Nginx性能优化的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Nginx性能优化的方法文章都会有所收获,下面我们一起来看看吧。Linux系统参数优化下文中提到的一些配置,需要较新的Li...
    99+
    2023-06-27
  • 使用Docker Compose、Nginx和MariaDB优化PHP应用程序的性能调优
    引言:在现代的Web应用程序开发中,性能是一个至关重要的考虑因素。在处理大量并发请求时,优化应用程序的性能可以显著提高用户体验,并减少服务器资源的消耗。本文介绍如何使用Docker Compose、Nginx和MariaDB优化PHP应用程...
    99+
    2023-10-21
    Docker nginx mariadb
  • MySQL性能调优
    对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库……林林总总,但是第一必备技能还应该是MySQL。从LAMP的兴起,到Mariadb的...
    99+
    2022-05-13
    mysql
  • redis性能调优
    针对Redis的性能优化,主要从下面几个层面入手:最初的也是最重要的,确保没有让Redis执行耗时长的命令使用pipelining将连续执行的命令组合执行,使用pipelining时,只需要从客户端一次向R...
    99+
    2022-10-18
  • 浅谈一下Nginx性能优化
    目录Nginx 性能优化1、Nginx运行工作进程数量2、Nginx运行CPU亲和力3、Nginx最大打开文件数4、Nginx事件处理模型5、开启高效传输模式6、连接超时时间7、fa...
    99+
    2023-05-15
    Nginx性能 Nginx性能优化
  • oracle 10g性能调优
    原文http://www.oracle.com/technetwork/articles/schumacher-analysis-099313.html 数据库Oracle 10 g,许多以前难以得到的响应...
    99+
    2022-10-18
  • WebLogic Server 性能调优
    任何在市场上成功的产品都拥有良好的性能。虽然成为象WebLogic Server这样广泛使用的产品需要具备很多特性,但性能绝对是必不可少的。 良好的编程习惯在帮助应用运行方面起了很大的作用,但是仅有它们还是不够的。应用服务器必须能够在多种硬...
    99+
    2023-06-03
  • Nginx如何优化调整
    这篇文章将为大家详细讲解有关Nginx如何优化调整,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、网络层面带宽带宽对Nginx性能的影响是最为直接的,就算如何独享10M的带宽也肯定不如100M带宽下Ng...
    99+
    2023-06-04
  • MySQL | 05 如何设计高性能的索引?
    上回我们主要研究了为什么使用索引,以及索引的数据结构。今天带你了解如何设计高性能的索引。其中,有这么一个点,说的是 InnoDB 引擎中使用的是聚簇索引,其主索引的实现树中的叶子结点存储的是完整的数据记录,...
    99+
    2022-10-18
  • Nginx性能优化的方法是什么
    今天小编给大家分享一下Nginx性能优化的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Nginx 性能优化1、N...
    99+
    2023-07-06
  • 高并发下Nginx性能怎么优化
    本篇内容介绍了“高并发下Nginx性能怎么优化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Nginx同Apache一样都是一种WEB服务器...
    99+
    2023-06-25
  • 怎么安装并调优Nginx
    这篇文章主要讲解了“怎么安装并调优Nginx”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么安装并调优Nginx”吧!Nginx编译前的优化[root@linuxprobe ~]...
    99+
    2023-06-27
  • 优化Nginx负载均衡的网络性能
    引言:Nginx已经成为一个非常流行的开源反向代理服务器,它在处理高并发请求时具有非常出色的性能表现。为了进一步优化Nginx负载均衡的网络性能,本文将介绍一些具体的代码示例和配置技巧。一、配置keepalive在Nginx配置文件中加入以...
    99+
    2023-10-21
    nginx 负载均衡 优化网络性能
  • 如何进行Nginx高性能优化配置
    本篇文章为大家展示了如何进行Nginx高性能优化配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Nginx是Apache服务不错的替代品。其特点是占有内存少,并发能力强,事实上nginx的并发能力...
    99+
    2023-06-15
  • .Net性能调优-ArrayPool详情
    目录1、使用2、Shared2.1特点2.2耗时对比2.3示例(前端文件通过后端Api上传OSS)3、Create()1、使用 获取缓冲池实例 :Create / Shar...
    99+
    2022-11-12
  • oracle性能调优学习0621
    1.PLAN_tablecolumn query_plan format a55column cardinality format 99999column cost format 99999delet...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作