SharedTmpfsMaintainance
Материал из ALT Linux Wiki
(5 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
[[Category:Admin]] | [[Category:Admin]] | ||
- | |||
Строка 47: | Строка 46: | ||
=== Создайте единый скрипт очистки === | === Создайте единый скрипт очистки === | ||
- | Например, скрипт {{path|~/bin/CLEANUP}} | + | Например, скрипт {{path|~/bin/CLEANUP}}. |
+ | |||
+ | Впишите туда команды очистки с учетом того, как вы используете $TMP. | ||
+ | К примеру, мой скрипт: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
Строка 72: | Строка 74: | ||
rm -rf $TMP/src-rpm-unpacked.???????? | rm -rf $TMP/src-rpm-unpacked.???????? | ||
</source> | </source> | ||
+ | |||
+ | Или мой {{path|~/bin/hsh-rmchroots}} (mike@): | ||
+ | <source lang="bash"> | ||
+ | #!/bin/sh | ||
+ | exec 2>/dev/null | ||
+ | for i in $TMP/*/chroot/..; do hsh-rmchroot $i; done | ||
+ | for i in $TMP/*/cache; do rm -rf $i; done | ||
+ | </source> | ||
+ | |||
+ | === Добавляйте вызов CLEANUP в конце тяжелых вызовов === | ||
+ | |||
+ | К примеру, запустить на ночь тяжелую сборку на 16 hasher'ов | ||
+ | $ HUGE_BUILD -j 16 | ||
+ | и уйти спать неправильно, так как тяжелая сборка завершится за 2 часа, | ||
+ | а использованные папки hasher? будут захламлять tmpfs от полусуток. | ||
+ | Правильно запускать так: | ||
+ | $ HUGE_BUILD -j 16; CLEANUP | ||
+ | чтобы память была освобождена сразу же, как сборка завершится. | ||
+ | |||
+ | === pam_pegasus === | ||
+ | |||
+ | на бездисковых сборочных узлах работает | ||
+ | [http://git.altlinux.org/people/ldv/packages/?p=pam_pegasus.git pam_pegasus] |
Текущая версия на 22:36, 16 декабря 2016
Содержание |
Советы, как не захламлять tmpfs общего пользования
Собирайте в tmpfs; храните результаты сборки на диске.
к примеру, пусть вы используете по умолчанию $TMP/hasher.
$ cat .hasher/config workdir=$TMP/hasher
сделайте ~/hasher постоянным хранилищем для $TMP/hasher. Для этого впишите в ~/.bashrc, ~/.zshrc
mkdir -p $TMP/hasher; ln -sf ~/hasher/repo $TMP/hasher
теперь сборка будет происходить в $TMP/hasher. а ее результат будет сохраняться в ~/hasher/repo.
Проверяйте размер $TMP по завершении работы с удаленной машиной
Чтобы не проверять руками, впишите проверки в скрипты
~/.zlogout
clear tmpusage=`du -sh $TMP 2>/dev/null | awk '{print $1}'` if [ "$tmpusage" != 0 ]; then ls $TMP echo tmp usage on `hostname`: du -sh $TMP fi setopt norcs
~/.bash_logout
# ~/.bash_logout clear tmpusage=`du -sh $TMP 2>/dev/null | awk '{print $1}'` if [ "$tmpusage" != 0 ]; then ls $TMP echo tmp usage on `hostname`: du -sh $TMP fi
Создайте единый скрипт очистки
Например, скрипт ~/bin/CLEANUP.
Впишите туда команды очистки с учетом того, как вы используете $TMP. К примеру, мой скрипт:
#!/bin/sh for hasherdir in $TMP/hasher*; do if [ -d "$hasherdir" ]; then set -x [ -d "$hasherdir/chroot" ] && hsh-rmchroot $hasherdir set +x rm -rf "$hasherdir" fi done done # Собирайте в tmpfs; храните результаты сборки на диске. mkdir -p $TMP/hasher ln -s ~/hasher/repo $TMP/hasher/ if [ -d ~/LP ]; then rm -rf ~/LP/noarch rm -rf ~/LP/x86_64 fi rm -rf $TMP/rpm-tmp.????? rm -rf $TMP/src-rpm-unpacked.????????
Или мой ~/bin/hsh-rmchroots (mike@):
#!/bin/sh exec 2>/dev/null for i in $TMP/*/chroot/..; do hsh-rmchroot $i; done for i in $TMP/*/cache; do rm -rf $i; done
Добавляйте вызов CLEANUP в конце тяжелых вызовов
К примеру, запустить на ночь тяжелую сборку на 16 hasher'ов
$ HUGE_BUILD -j 16
и уйти спать неправильно, так как тяжелая сборка завершится за 2 часа, а использованные папки hasher? будут захламлять tmpfs от полусуток. Правильно запускать так:
$ HUGE_BUILD -j 16; CLEANUP
чтобы память была освобождена сразу же, как сборка завершится.
pam_pegasus
на бездисковых сборочных узлах работает pam_pegasus