我有一个虚拟服务器只适用于MySQL的less数应用程序。 这是一个256 MB的服务器。 目前几乎没有任何数据,但是free -m显示了完整的内存使用情况:
total used free shared buffers cached Mem: 245 197 47 0 23 120 -/+ buffers/cache: 53 192 Swap: 511 2 509
这是在Ubuntu 10.04。 所有的configuration设置是默认的IIRC – 键缓冲区是16,查询caching是16.(我可能会缺less一些
所以,在我看来,几乎没有任何数据和缓冲区的特殊设置,我应该使用低于256.如果OS + MySQL最近需要256是256吗?
正如Jeff所说,Linux上的使用数字可能会令人困惑。 Linux会自动保留你在RAM中访问的文件的副本。 如果您再次需要它们,那么访问速度比回到磁盘要快。 如果运行程序需要更多的内存,这些caching的内容可以完全抛弃。 这是有道理的。 不幸的是, free命令会以包含这些caching文件的方式显示数字,并使其看起来几乎不在RAM中。
你真的想看更多的第二行,比第一行。 那是没有包含缓冲区/caching数据的内存使用情况。 在你的情况下,它表明你正在使用53MB,并有192MB空闲。
– 克里斯托弗·卡雷尔
RAM用于将常用位保存在比硬盘更快的存储空间中。 免费的最右边的列告诉你,你的RAM的一半是用来从硬盘caching。
如果你没有使用所有的内存,那么你正在浪费资源。 在内存不足的情况下丢弃caching实际上是免费的,而如果没有caching的话,从磁盘读取的速度要慢几个数量级。