Nginx多少算高并发(看这篇就够了)

Nginx是大型架构的关键,也是实现高并发的关键,下面我就重点详解Nginx多少算高并发以及关键技术@mikechen

高并发

在一些大型互联网公司,比如:阿里的双11就是最经典的代表,每秒几十万的请求,这就是典型的高并发场景。

Nginx多少算高并发(看这篇就够了)-mikechen

 

Nginx多少算高并发

一般,Nginx通常在几百…到几千个并发连接,就算有一定的并发量了。

如果Nginx并发连接超过几千到几万并发,这就算典型的“高并发”了。

Nginx多少算高并发(看这篇就够了)-mikechen

Nginx 的性能,高度依赖于:Nginx配置,以及硬件配置、以及优化…等等。

比如: CPU 核心数、内存、磁盘 I/O /和网络带宽,以及优化…等等。

CPU核心数

每个worker进程通常会占用一个CPU核心,因此CPU核心数越多,理论上能支持的并发连接数就越多。

内存

内存大小,决定了Nginx可以缓存多少数据,以及能同时处理多少个连接。

网络带宽

当然还会包含:网络带宽,这会限制了Nginx能够处理的最大流量。

Nginx配置

要实现高并发,Nginx 需要进行特定的配置参数调整,例如:

worker_processes

worker_processes 4;  # 设置为 CPU 核心数

设置 worker 进程数,通常为 CPU核心数,当然,你可以设置为和核数的 2-4 倍。。。等等;

Nginx多少算高并发(看这篇就够了)-mikechen

worker_connections

worker_connections,设置每个工作进程能够打开的最大连接数,比如:为 1024、 或更大。

worker_connections 10240;  # 每个 worker 进程最大连接数

keepalive_timeout

设置 keepalive 连接的超时时间,通常为 60-120 秒;

sendfile

启用 sendfile 选项,提高文件传输性能;

tcp_nopush

启用 tcp_nopush 选项,提高网络传输性能。

worker_rlimit_nofile

增加每个进程的文件描述符限制,避免连接数过多时出现问题。

比如:

ulimit -n 1000000  # 增加文件描述符的数量

当然,除此之外,还可以利用Nginx的多服务器来扩展集群。

总之,适当的配置调整、操作系统优化、和服务器集群…等等,是确保 Nginx 在高并发场景下的关键点。

mikechen睿哥

mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法