Linux共享内存分配行为

时间:2011-05-03 13:42:31

标签: linux shared-memory

首先是一个小背景:我们使用this tutorial将我们的Minecraft世界文件夹(在我们的设置中不会超过150MB左右)放在Linux共享内存文件夹中。我们使用rsync每隔10分钟将其备份到硬盘。这应该减少HDD(单个1TB驱动器)必须承受的I / O操作量。

我们昨天晚上设置了这个,但是我们忘记了每个星期二晚上我们的备份程序也开始运行(它将整个服务器备份到网络上的另一台机器)。通常这不是问题,但这次我们的服务器陷入了昏迷状态。它开始交换内存,因为RAM耗尽。

现在我发现这有点奇怪,因为我认为共享内存只会在RAM上分配150MB来存储数据。如果安装了4GB,你会认为这并不重要。

我的问题是:共享内存实际上是否在RAM上分配了与放在其上的数据量相同的空间,或者它的行为是否有所不同(比如保留更大的块)?我很难在网上找到关于此的信息。

如果您可以提供一些有关服务器可能会被吓坏的其他提示,请执行此操作。

1 个答案:

答案 0 :(得分:2)

你可以使用

找出你想要的东西
df /dev/shm
du -shc /dev/shm/minecraft/world/*

或者你可以使用更好的道路并创建一个单独的安装,并限制它:

mkdir /tmp/minecraft
sudo mount -o size=150M,noexec,nodev -t tmpfs none /tmp/minecraft

HTH

PS :完全可以从fstab设置此挂载,例如

none  /mnt/minecraft tmpfs   auto,size=400M,noexec,nodev 0 0