当接近磁盘限制时,Nginx缓存管理器是否会清除文件?

时间:2016-02-17 15:32:59

标签: caching nginx

我们正在计划更新我们的Nginx缓存持续时间,我只是浏览文档,以确保在遇到以下内容时没有任何内容可以阻止我们:

  

max_size 设置缓存大小的上限(在本例中为10千兆字节)。它是可选的;不指定值允许缓存增长以使用所有可用磁盘空间。当缓存大小达到限制时,称为缓存管理器的进程将删除最近最少用于将缓存大小恢复到限制之下的文件。

来源:https://www.nginx.com/blog/nginx-caching-guide/

我们安装了一个单独的硬盘驱动器,它将仅用于缓存和 我很想不指定max_size属性,以便它只使用可用空间(如上所述),但它没有指定缓存管理器是否在“限制”时处理清理磁盘的隐含大小。

有没有人知道缓存管理器是否会处理这个问题,或者我们应该设置max_size(达到硬盘的大小)只是为了安全起见?

1 个答案:

答案 0 :(得分:3)

Nginx源代码显示文件缓存管理器是一个由缓存管理器进程调用的小function。如果当前缓存大小大于max_size,则checks,如果是,则尝试从内部队列和磁盘中删除最后一个缓存节点。除非您在配置文件中重新定义它,否则max_size只是set,具有较大的平台相关常量value

因此,似乎缓存管理器不会做任何花哨的事情,比如尝试确定磁盘大小。它只是使用一个很大的常数值,让你担心后果。

因此,如果您未能明确设置max_size,最终可能会导致大量errors和行为不当的缓存。

另请注意,缓存管理器位于单独的进程中,并且可能无法及时注意到缓存大小超出限制。因此,最好将max_size设置为比实际HDD大小至少少100 Mb的值。