05-Nginx性能调优

目录

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 代表内核开启。也就是说,有几个内核,就需要使用几个二进制位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xianghan收藏册

极简精品作,一分也是一份鼓励哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值