linux - 在 ramdisk 上缓存 - 查找要删除的最旧文件

标签 linux file caching output ramdisk

我在 Linux 中有一个很好的缓存系统,它使用 ramdisk 来缓存图像文件和我网站各个页面的 HTML 输出。

我的网站相当大,缓存所有内容所需的 ramdisk 空间超过 15GB(不包括图像输出),而我只有 2GB 可用于缓存。

写入和读取缓存相对较快,但问题是当我用完空间时,如何快速找到最陈旧的文件,以便为新文件腾出空间。我相信使用“ls -R”并扫描大输出是一个缓慢的过程。

我唯一的另一个低效选择是经常刷新整个缓存,以免耗尽 ramdisk 空间。

我的缓存允许我的网站加载许多页面,首字节时间 (TTFB) 低于 200 毫秒,这是 Google 所喜欢的,因此我想在从缓存加载文件时尝试将 200 毫秒保留为最大 TTFB 值,即使文件由于缺少 ramdisk 空间而被删除。

我想过通过缓存指针直接访问内存,但由于缓存的输出大小不同,我觉得该选项最多会浪费内存空间或使用大量CPU来查找下一个空闲内存位置。

有人知道如何快速查找然后从缓存中删除最旧的文件吗?

最佳答案

使用 ramdisk 时,ls -latr 不应太慢。但这可能更接近您正在寻找的内容:

find -type f -printf '%T+ %p\n' | sort | head -1

关于linux - 在 ramdisk 上缓存 - 查找要删除的最旧文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30331023/

相关文章:

c - c代码中su命令的使用

linux - 在 amazon linux AMI 中安装 phpmyadmin 时遇到问题

linux - 什么命令在链中失败?

c - fread() 操作将错误的数据补充到结构中

caching - nginx 使用 memcached 缓存来自远程服务器的响应

caching - ArangoDb 作为 redis 的缓存服务器替代品

css - 当我的页面引用在 HTTPS 中时,为什么 Facebook 会在 HTTP 中为我的应用程序的 css 插入预加载脚本?

linux - 如何在终端中启动命令,就像我打开终端并输入命令一样

php - 保护网站的最佳方法和途径

java - 新文件在 Eclipse 目录中创建,而不是在当前目录下