# 缓存与文件句柄优化

URL: https://caijiao.org/nginx/performance-cache
Source: docs/nginx/performance-cache.md
Description: 本节介绍 Nginx 缓存优化与文件句柄管理方法，包括 open_file_cache 配置、缓存路径优化、文件描述符限制和性能调优建议，提高网站响应速度。

在高并发场景下，合理配置缓存和文件句柄可显著提升 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**：限制缓存总大小

## 三、文件描述符优化

1. 调整系统文件描述符限制：

```bash
ulimit -n 65535
```

2. 确保 worker_connections 与系统限制匹配，提高最大并发处理能力

## 四、优化建议

1. 对高并发静态文件服务，启用 open_file_cache 可减少磁盘 I/O
2. 定期清理缓存目录，避免占满磁盘
3. 配合 gzip 压缩和浏览器缓存提升性能
4. 监控 Nginx 活跃连接数和缓存命中率，动态调整参数

---

通过优化缓存和文件句柄，Nginx 可以显著提升高并发场景下的性能，降低服务器负载并提高响应速度。
