强制文件保留在 SuSe 上的 dentry 和 inode 缓存中

强制文件保留在 SuSe 上的 dentry 和 inode 缓存中

我们有一些很少执行的 SQL 查询。

一段时间后第一次运行它们大约需要 2 分钟,第二次调用仅需要 800 毫秒。

我发现当我重启 postgres 时查询仍然很快。只有当我用以下命令清除 inode 缓存时

echo 3 > /proc/sys/vm/drop_caches

查询又变慢了。所以我开始观察查询过程中加载了哪些文件:

inotifywait -mr  ~postgres/data/*

首次登录时会进行多次:

/var/lib/pgsql/data/base/16414/ ACCESS 119232

这是一个1GB的文件:

-rwxr-xr-x 1 postgres postgres 1,0G 22. Mär 09:53 /var/lib/pgsql/data/base/16414/119232

我认为这是一个包含表索引的文件

是否有可能

  1. 找出哪些文件包含索引
  2. 强制操作系统将文件保存在缓存中?

相关内容