Nginx性能调优策略

简介: Nginx性能调优策略

Nginx是一个高性能的Web服务器和反向代理服务器,常用于处理高并发的请求。以下是一些常见的Nginx性能调优策略:


一、调整worker_processes和worker_connections


Nginx配置文件中,可以通过worker_processes和worker_connections参数来调整worker进程的数量和每个进程能够处理的最大连接数。通常来说,worker_processes的数量应该设置为服务器上可用的CPU核心数,而worker_connections的数量应该根据服务器的硬件配置和预期的并发连接数进行调整。


一般一个进程足够了,你可以把连接数设得很大。如果有SSL、gzip这些比较消耗CPU的工作,而且是多核CPU的话,可以设为和CPU的数量一样。或者要处理很多很多的小文件,而且文件总大小比内存大很多的时候,也可以把进程数增加,以充分利用IO带宽(主要似乎是IO操作有block)。  


worker_processes,工作进程数


默认:worker_processes: 1

调大:worker_processes: CPU核心数,(双核4线程,可以设置为4)


worker_connections,单个工作进程(worker)可以允许同时建立外部连接的数量


数字越大,能同时处理的连接越多

默认:worker_connections: 1024

调大:worker_connections: 100000,(调大到10万连接)


二、如何配置数值大小


系统的最大打开文件数>= worker_connections*worker_process


根据系统的最大打开文件数来调整,worker_connections进程连接数量要小于等于系统的最大打开文件数,worker_connections进程连接数量真实数量= worker_connections*worker_process


查看系统的最大打开文件数


[root@yhg-server ~]# ulimit -a|grep “open files”


open files (-n) 65535


三、在主配置文件nginx.conf中配置


user root;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;

工作进程数(我的服务器是8核,所以配置8)

worker_processes 8;


配置Nginx worker进程最大打开文件数

worker_rlimit_nofile 65535;
events {


单个进程允许的客户端最大连接数(65535/2)

worker_connections 32000;
}


四、max_clients


从用户的角度,http 1.1协议下,由于浏览器默认使用两个并发连接,因此计算方法:


nginx作为http服务器的时候:

max_clients = worker_processes * worker_connections/2


nginx作为反向代理服务器的时候:

max_clients = worker_processes * worker_connections/4


五、CPU相关信息查看


物理CPU个数

cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l


逻辑CPU个数:(核数)

cat /proc/cpuinfo | grep “processor” | wc -l


每个物理CPU中Core的个数:

cat /proc/cpuinfo | grep “cpu cores” | wc -l


查看CPU型号

cat /proc/cpuinfo | grep ‘model name’ |uniq


目录
相关文章
|
2月前
|
负载均衡 应用服务中间件 nginx
Nginx的6大负载均衡策略及权重轮询手写配置
【10月更文挑战第9天】 Nginx是一款高性能的HTTP服务器和反向代理服务器,它在处理大量并发请求时表现出色。Nginx的负载均衡功能可以将请求分发到多个服务器,提高网站的吞吐量和可靠性。以下是Nginx支持的6大负载均衡策略:
235 7
|
2月前
|
存储 缓存 监控
|
2月前
|
负载均衡 算法 Java
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
尼恩,一位资深架构师,分享了关于负载均衡及其策略的深入解析,特别是基于权重的负载均衡策略。文章不仅介绍了Nginx的五大负载均衡策略,如轮询、加权轮询、IP哈希、最少连接数等,还提供了手写加权轮询算法的Java实现示例。通过这些内容,尼恩帮助读者系统化理解负载均衡技术,提升面试竞争力,实现技术上的“肌肉展示”。此外,他还提供了丰富的技术资料和面试指导,助力求职者在大厂面试中脱颖而出。
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
|
4月前
|
存储 缓存 负载均衡
NGINX 性能调优的五大技巧
【8月更文挑战第27天】
98 5
|
4月前
|
负载均衡 应用服务中间件 Linux
在Linux中,Nginx如何实现负载均衡分发策略?
在Linux中,Nginx如何实现负载均衡分发策略?
|
4月前
|
网络协议 应用服务中间件 测试技术
nginx参数调优能提升多少性能
nginx参数调优能提升多少性能
|
5月前
|
应用服务中间件 网络安全 nginx
Nginx简易防CC策略规则
Nginx简易防CC策略规则
61 1
|
5月前
|
缓存 负载均衡 监控
Nginx性能调优5招35式不可不知的策略实战
以上 V 哥总结的5个方面关于 Nginx性能调优的策略,实际应用中需要结合实际项目的情况来测试,希望对你有帮助,欢迎关注威哥爱编程,技术路上我们一起成长。
171 0
|
29天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
71 7
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解