我有一个网站,每分钟加载约60 000个请求由Nginx提供.最近,我启用了打开文件缓存,并且性能得到了显着提升.但在平均值中,当负载最大时,响应时间仍然非常大,而Nginx使用了大量IO.
这是我目前的设置:
open_file_cache max=10000 inactive=30s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
我还有一些记忆:
free -m
total used free shared buffers cached
Mem: 7910 6917 992 0 439 885
-/+ buffers/cache: 5592 2317
Swap: 8099 0 8099
问题:现在我为open_file_cache max = 10000和其他参数选择正确的值吗?足够10000,是太小还是大?有没有办法监控打开文件缓存的使用?
最佳答案
打开文件缓存是一个用于元数据操作的缓存系统(文件mtime,文件存在等),而不是文件内容,所以它有所帮助,但没有你想象的那么多.
您可以尝试的一些解决方法是:
>如果已打开动态gzip,请降低gzip压缩比.
>如果您运行的是最新的内核(> 2.6.22),请尝试打开aio.检查http://wiki.nginx.org/HttpCoreModule#aio
>禁用访问日志记录.仅此一项就可以为您带来非常高的性能提升.确保你不需要它!
>尝试实际的文件内容缓存模块,例如https://github.com/bpaquet/ngx_http_enhanced_memcached_module.警告:这将需要从源代码重新编译Nginx!