#linux #shared-memory
#linux #разделяемая память
Вопрос:
Сначала немного предыстории: мы использовали это руководство, чтобы поместить нашу папку Minecraft world (размер которой с нашими настройками не превысит 150 МБ или около того) в папку общей памяти Linux. Мы создаем резервные копии каждые 10 минут на жесткий диск с помощью rsync. Это должно уменьшить количество операций ввода-вывода, которые приходится выполнять жесткому диску (одному диску емкостью 1 ТБ).
Мы настроили это вчера вечером, но забыли, что каждый вторник вечером также запускается наша программа резервного копирования (которая создает резервные копии всего сервера на другой компьютер в сети). Обычно это не проблема, но на этот раз наш сервер впал в кому. Он начал заменять память, потому что у него закончилась оперативная память.
Теперь я нахожу это немного странным, поскольку я думаю, что общая память выделит только 150 МБ в ОЗУ для хранения данных. Можно подумать, что при установленном 4 ГБ это не имеет большого значения.
Мой вопрос: действительно ли общая память выделяет столько места в ОЗУ, сколько объем данных, которые вы в нее помещаете, или она ведет себя по-другому (например, резервирует большие блоки)? Мне трудно найти информацию об этом в сети.
Если бы вы могли дать несколько других советов о том, почему сервер мог взбеситься, пожалуйста, сделайте это.
Комментарии:
1. Очевидное предложение, но почему бы не попробовать отслеживать использование памяти вашими процессами?
Ответ №1:
Вероятно, вы можете узнать, что вам нужно, используя
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