Nginx优化
Nginx优化
1、worker_processes 8;
nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数。(如我的机器是一颗CPU六核心,这里就设置为6或者6的倍数;如果是2颗CPU8核心,这里就写16或16的倍数)
2、worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分配CPU,这里的0表示CPU核心,1表示进程,所以00000001表示分配一个进程给八个核心中的一个核心。也可将一个进程分配到多个cpu。
3、 worker_rlimit_nofile 65535;
这个指令是指当一个nginx 进程打开的最多文件描述符的数目,该参数的理论值为最多打开文件数(使用ulimit -n查看)与nginx 进程数相除;
但最好跟ulimit -n的值保持一致,都设置为65535,因为nginx 分配请求并不是那么均匀,假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
ulimit -n表示当前系统最大打开文件数,默认是1024个。
如果打开文件数超出1024个,就会报错error: too many open files建议在/etc/profile 中增加一行 ulimit -SHn 65535,将其改为65535个。
4、use epoll;
使用epoll 的I/O 模型;
nginx针对不同的操作系统,有不同的事件模型;
Epoll: 使用于Linux内核2.6版本及以后的系统。
5、worker_connections 65535;
每个进程允许的最多连接数;
6、keepalive_timeout 60;
keepalive 超时时间。
7、 client_header_buffer_size 4k;
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,系统默认分页大小为4096,即4k,可以使用getconf PAGESIZE
命令查看。
8、open_file_cache max=65535 inactive=60s;
为打开文件做缓存,默认是没有启用的,max 指定文件缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
9、open_file_cache_valid 80s;
指多长时间检查一次缓存的有效信息,如80s后检查文件是否发生变化,变化了就更新。
10、open_file_cache_min_uses 1;
open_file_cache 指令中的inactive 参数时间内文件的最少使用次数;
案例8中设置的是60s,表示假如有一个文件在60s内一次都没被使用,它就会被移除。
还有一些关于内核优化设置,FastCGI优化设置等等。
参考资料:
Nginx优化
open_file_cache
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)