Linux Распределение общей памяти - PullRequest
0 голосов
/ 03 мая 2011

Сначала немного предыстории: мы использовали этот учебник , чтобы поместить нашу папку мира Minecraft (которая не будет превышать 150 МБ или около того с нашими настройками) в папку общей памяти Linux. Мы копируем его каждые 10 минут на жесткий диск с помощью rsync. Это должно уменьшить количество операций ввода-вывода, которые должен выдержать жесткий диск (один диск емкостью 1 ТБ).

Мы настроили это вчера вечером, но забыли, что каждый вечер вторника тоже запускается наша программа резервного копирования (которая выполняет резервное копирование всего сервера на другую машину в сети). Обычно это не проблема, но на этот раз наш сервер впал в кому. Он начал обмениваться памятью, потому что ему не хватило оперативной памяти.

Теперь я нахожу это немного странным, поскольку я думаю, что общая память будет выделять только 150 МБ в ОЗУ для хранения данных. Если вы установили 4 ГБ, вы подумали бы, что это не так уж важно.

У меня такой вопрос: выделяет ли Shared Memory столько места в RAM, сколько объема данных, которые вы на нее помещаете, или она ведет себя по-другому (как будто она резервирует большие блоки)? Мне трудно найти информацию об этом в сети.

Если вы могли бы дать некоторые другие советы о том, почему сервер мог взбеситься, пожалуйста, сделайте.

1 Ответ

2 голосов
/ 03 мая 2011

Вы, вероятно, можете узнать, что вы хотите, используя

df /dev/shm
du -shc /dev/shm/minecraft/world/*

Или вы можете использовать лучшую дорогу, создать отдельное крепление и ограничить его:

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

НТН

PS : вполне возможно настроить это монтирование из fstab, например

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