我的 Centos 机器似乎使用了很多缓存,大部分使用的内存都用于缓存,我怎样才能知道缓存的用途?
缓存的已用空闲共享缓冲区总数 电话:16439708 10469864 5969844 0 197936 9534176 -/+ 缓冲区/缓存:737752 15701956 交换:16763816 0 16763816
我的 Centos 机器似乎使用了很多缓存,大部分使用的内存都用于缓存,我怎样才能知道缓存的用途?
缓存的已用空闲共享缓冲区总数 电话:16439708 10469864 5969844 0 197936 9534176 -/+ 缓冲区/缓存:737752 15701956 交换:16763816 0 16763816
基于 Linux 的机器中的缓存通常用于将磁盘块缓存到内存中,以防止写入硬盘并加快 I/O 操作。此外,大量空闲内存在实际需要时被缓存和释放。
在解释 的输出时
free
,您应该查看第二行的实际内存使用情况。上面的数字可以解释为:
有关更多信息,请查看http://www.faqs.org/docs/linux_admin/buffer-cache.html。
您可以查看 /proc/slabinfo 或使用命令 slaptop 来为缓存对象提供类似顶部的接口。
缓存用于加速磁盘 I/O 操作。
正如 Linus Torvalds 曾经说过的,“空闲内存就是糟糕的内存”。Linux内核使用未使用的(系统/应用程序)内存进行缓存,如果程序需要更多内存,系统会从缓存中获取。