主题
缓存与文件句柄优化
在高并发场景下,合理配置缓存和文件句柄可显著提升 Nginx 性能,减少文件 I/O 开销和请求延迟。
一、open_file_cache 配置
nginx
http {
open_file_cache max=10000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}- open_file_cache:缓存打开的文件描述符
- max:最大缓存数量
- inactive:超过时间未访问文件会被移出缓存
- open_file_cache_valid:缓存有效检查间隔
- min_uses:文件被访问次数达到才缓存
- open_file_cache_errors:是否缓存打开失败的文件
二、缓存路径优化
nginx
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;- levels:缓存目录层级,提高文件查找效率
- keys_zone:共享内存区存储缓存键
- inactive:过期未访问文件自动清理
- max_size:限制缓存总大小
三、文件描述符优化
- 调整系统文件描述符限制:
bash
ulimit -n 65535- 确保 worker_connections 与系统限制匹配,提高最大并发处理能力
四、优化建议
- 对高并发静态文件服务,启用 open_file_cache 可减少磁盘 I/O
- 定期清理缓存目录,避免占满磁盘
- 配合 gzip 压缩和浏览器缓存提升性能
- 监控 Nginx 活跃连接数和缓存命中率,动态调整参数
通过优化缓存和文件句柄,Nginx 可以显著提升高并发场景下的性能,降低服务器负载并提高响应速度。