请注意,在我的 linux mint 9 - isadora 系统下,内存和缓存很快就达到满负荷水平。我以前使用过 Ubuntu 和 Debian,但根本没有导致此问题。目前,我经常输入以下命令来清空缓存“echo 3 > /proc/sys/vm/drop_caches”。
请问有什么办法可以解决这个问题吗?或者您知道出了什么问题吗?| 我只在这台机器上编程;没有图形,没有游戏,什么都没有。
在此先感谢您的帮助!
答案1
内核使用一种算法来尝试用尽可能多的内容填充缓存。缓存就是缓存,这就是它存在的目的,缓存中的内容越多,我们可能需要返回磁盘的内容就越少。请记住,磁盘可能比缓存慢 100 倍。
为什么这是个问题或者您遇到了什么问题?您使用什么来查看内存有多“满”?您应该使用空闲的 +/- 缓冲区/缓存列:
$ free
total used free shared buffers cached
Mem: 968304 922820 45484 0 318792 205404
-/+ buffers/cache: 398624 569680
Swap: 0 0 0
该系统有超过一半的内存可用。它处于相当好的状态。
如果系统的 Mem 列中有大量可用内存,则通常意味着它拥有的内存太多,内核甚至无法找到它的用途(例如,内存比数据库的大小还多)。这意味着您浪费了内存。
答案2
Linux 将尽可能多地使用内存作为缓存。如果不这样做,就会有更多的磁盘流量来不断从磁盘重新读取信息。一旦需要它来做更有用的事情,它就会被用于此。别担心,它知道自己在做什么。
答案3
这是设计使然。大多数 Linux 系统会尽可能多地缓存,并根据需要释放内存。