LINUX.ORG.RU

Вопрос Spoofing'у

 , ,


7

7

Spoofing, как именно ты настраивал tmpfs для слабого винта, чтобы и оперативы не забирать слишком много. Не очень тебя понял.

Раскрой свои слова:

едва-ли не половина системы в tmpfs, в том числе /home: дот-файлы редактируются весьма редко, один раз сохранил весь хомяк, а потом восстанавливаешь из архива при перезагрузках.

SSD не нужен, если у вас хотя бы 2гб памяти и кэши программ умещаются в tmpfs, а HDD используется для разового запуска приложений, да кинцо с торрентов скачать. :--)



Последнее исправление: goodbyeXP (всего исправлений: 1)

Подозреваю, после правки каст не срабатывает..
Так что, Spoofing :)

aol ★★★★★
()

Чтобы не забирать всю RAM, размер tmpfs указывается параметром size при монтировании.

У меня дистрибутив CRUX, за счёт использования системы инициализации System V Init — там всё проще, редактируется один файлик /etc/rc. Если у тебя какой-нибудь Arch Linux и systemd, то я не знаю где там можно вписать свои кастомные скрипты выполняющиеся при загрузке — гугли.

Энивей, в /etc/rc имею вот такую порнографию:

for d in /var/run /var/lock /var/log; do
	if ! /bin/mountpoint -q $d; then
		temp=`/usr/bin/mktemp -d`
		/usr/bin/rsync -a --delete $d/ $temp
		/bin/mount -t tmpfs -o nosuid,nodev,size=9M tmpfs $d
		/usr/bin/rsync -a --delete $temp/ $d
		/bin/rm -rf $temp
		unset temp
	fi
done

mount -t tmpfs -o size=50M tmpfs /var/spool/mail
mount -t tmpfs -o size=10M tmpfs /var/www
mount -t tmpfs -o size=100% tmpfs /home
mount -t tmpfs -o size=100% tmpfs /usr/ports

cat /www.tar.gz | tar -x -z -p -C /var/www &
cat /home.tar.gz | tar -x -z -p -C /home &
cat /ports.tar.gz | tar -x -z -p -C /usr/ports &

Значит, первая часть, где циклом for проходимся по трём директориям /var/run, /var/lock и /var/log, и синхронизируем их содержимое с RAM-диском. Это нужно потому, что некоторые программы используют собственные директории для /var/run, допустим, установили php, она создала /var/run/php для себя, но при перезагрузке /var/run/php исчезнет, т.к. директория была создана только в tmpfs, а не на диске. Поэтому надо её создавать на HDD чтобы она синхронизировалась из HDD в RAM: настраивается ровно один раз и забывается. Ты же не часто уставливаешь серверный софт? Поэтому на счёт «геморно» притензии не принимаю. =)

Короче, первая часть с for предназначения для загрузки в RAM именно тех директорий, содержимое которых очень важно сохранить со всей структурой поддиректорий. Логи, если пишутся не просто в /var/log, а там ещё есть /var/log/exim, /var/log/nginx, /var/log/apache/access.log, то их надо иметь все эти файлы и директории, нельзя создавать пустую /var/log.

Далее, монтируем пустые директории /home, /var/spool/mail и т.д.

И далее, загружаем в них данные, которые изменяются очень редко, в /home у меня только dot-файлы: раз настроил, сделал бэкап и забыл.

TL;DR

Ближе к делу. Вот прямо сейчас ты переносишь /home в RAM

Делай раз

# tar -c -v -z -p -C /home . | cat > /tmp/home.tar.gz ; mv /tmp/home.tar.gz /home.tar.gz ; sync

Делай два

# mount -t tmpfs -o size=50% tmpfs /home

Делай три

cat /home.tar.gz | tar -x -z -p -C /home

Всё. Весь твой хомяк теперь в tmpfs со всеми данными, автоматизируй второй и третий этап при загрузке и так будет всегда. Изменил что-то важное в /home? Сохрани, выполни первый этап.

Важно! Убедись, что твой du -sh /home занимает меньше 100% твоей памяти.

Сколько вешает твой /home? У меня около 100мб, а памяти 4гб. Значит, можно сделать -o size=100M дабы указать лимит в 100 мегабайт для tmpfs и выше этого он не съест памяти.

Spoofing ★★★★★
()
Ответ на: комментарий от Spoofing

А почему не используешь zram? Можно будет то же количество данных уложить в меньший объём памяти.

sudopacman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.