【发布时间】:2015-05-19 16:19:49
【问题描述】:
我在 linux 中有一个不错的缓存系统,它使用 ramdisk 来缓存图像文件和我网站各个页面的 HTML 输出。
我的网站相当大,缓存所有内容所需的 ramdisk 空间超过 15GB(不包括图像输出),我只有 2GB 可用于缓存。
写入和读取缓存相对较快,但问题是试图找出如何在空间不足时快速找到最陈旧的文件以腾出空间一个新文件。我相信使用“ls -R”并扫描大输出是一个缓慢的过程。
另一个对我来说效率低下的唯一选择是频繁刷新整个缓存,以免内存盘空间用完。
我的缓存允许我的网站以低于 200 毫秒的首字节 (TTFB) 时间加载许多页面,这是 google 喜欢的,所以我想在从缓存加载文件时尝试将 200 毫秒作为最大 TTFB 值, 即使文件因 ramdisk 空间不足而被删除。
我曾想过通过缓存指针使用直接访问内存,但由于缓存的输出大小不同,我觉得该选项最多会浪费内存空间或使用大量 cpu 来查找下一个空闲内存位置。
有人知道如何快速查找并从缓存中删除最旧的文件吗?
【问题讨论】:
标签: linux file caching output ramdisk