首先,我知道Linux如何使用内存来进行磁盘caching( http://www.linuxatemyram.com/ ),但是这似乎有些不同。
首先,我运行htop。 所有正在运行的进程的总内存使用率%s等于刚刚超过50%,并且在将所有正在运行的进程的实际内存使用量相加时显示相同的结果。 但是,htop列出我的内存使用量为1381 / 1536MB。
环顾四周,我发现我应该检查免费-m,看看我的内存是否被用于磁盘caching。 唉,免费只显示这个:
total used free shared buffers cached Mem: 1536 1381 154 0 0 0 -/+ buffers/cache: 1381 154 Swap: 0 0 0
我现在很困惑。 这些额外的记忆在哪里? Linux“吃我的RAM”吗?
编辑:抱歉造成一些混乱,这个VPS运行在OpenVZ上。
你的交换被禁用。 如果你真的configuration了一个交换分区然后使用
swapon -a
启用它。 如果你忘了创build一个交换分区,那么你可能应该创build它并激活它。
dd if=/dev/zero of=/swap bs=1M count=1024
1024是多less交换内存你想要的。 对于桌面系统,我build议你使用双倍的内存。 现在你应该“格式化”交换文件。
mkswap /swap
现在你应该启用它:
swapon /swap
现在运行免费-m,你应该看到免费的交换。
如果要在启动时启用交换,请在/ etc / fstab中添加以下行
/swap none swap sw 0 0
如果你仍然有空闲的磁盘,然后configuration一个交换分区,并从mkswap重新运行我的指令,并更改/交换与分区的ID。