有没有办法显示Linux缓冲区caching未命中?

我正在尝试测量向LAMP服务器添加内存的效果。

我怎样才能find哪些进程尝试从Linux缓冲区caching读取,但错过和从磁盘读取?

SystemTap是最好的方法之一,但公平的警告很难得到一个好的答案。 内核根本不提供这个数据直接。 您必须根据系统请求读取的次数以及读取磁盘的次数来推断它。 通常他们排队相当好,你可以将其区别归因于VFS缓存,但并不总是如此。 一个问题是LVM – LVM是一个“块设备”,但是底层磁盘也是如此,所以如果你不小心的话,很容易对磁盘读取进行双重计数。

有一段时间,我刺杀了它,写下了这个:

https://sourceware.org/systemtap/wiki/WSCacheHitRate

我并不是说它是完美的,但它比没有任何事情好,只要环境相当“正常”,通常会产生合理的产出。 它确实试图以相当粗糙的方式来解释LVM。