我的 Centos 盒子似乎使用了大量缓存,大多数使用的内存都用于缓存,我如何才能找出缓存的用途?
已使用的、可用的、缓存的共享缓冲区总数 内存:16439708 10469864 5969844 0 197936 9534176 -/+ 缓冲区/缓存:737752 15701956 交换:16763816 0 16763816
答案1
Linux 机器中的缓存通常用于将磁盘块缓存到内存中,以防止写入硬盘并加快 I/O 操作。此外,许多空闲内存在实际使用时被缓存和释放。必需的。
在解释 的输出时free
,您应该查看第二行的实际内存使用量。
上述数字可以解释为:
- 9534176 千字节缓存内存
- 实际使用了 737752 个内存
- 15701956 实际释放内存
如需了解更多信息,请查看http://www.faqs.org/docs/linux_admin/buffer-cache.html。
答案2
您可以查看 /proc/slabinfo 或使用命令 slaptop 来获得类似 top 的缓存对象界面。
答案3
缓存是为了加速磁盘 I/O 操作。
正如 Linus Torvalds 曾经说过的,“空闲内存是坏内存”。Linux 内核使用未使用的(系统/应用程序)内存作为缓存,如果程序需要更多内存,系统将从缓存中获取。