我正在尝试测量向LAMP服务器添加内存的效果。
如何找到哪些进程尝试从Linux缓冲区缓存中读取,但是错过并从磁盘读取?
答案 0 :(得分:1)
SystemTap是实现这一目标的最佳方式之一,但公平警告很难得到一个好的答案。内核根本不直接提供这些数据。您必须根据系统请求读取的次数以及读取磁盘的次数来推断它。 通常它们排列得相当好,您可以将差异归因于VFS缓存,但并非总是如此。一个问题是LVM-LVM是一个“块设备”,但底层磁盘也是如此,所以如果你不小心,那么很容易对磁盘读取进行双重计算。
前一阵子我狠抓了它并写下了这个:
https://sourceware.org/systemtap/wiki/WSCacheHitRate
我并不认为它是完美的,但它比没有更好,并且只要环境相当“正常”,通常会产生合理的输出。它确实试图以相当粗略的方式考虑LVM。