Настройка оптимизации
Настройка оптимизации
Настройка amavisd-new для использования tmpfs состоит из нескольких этапов:
1. Найти параметр $TEMPBASE программы amavisd-new.
2. Создать временную файловую систему на базе оперативной памяти (tmpfs).
3. Остановить amavisd-new.
4. Смонтировать tmpfs.
5. Запустить amavisd-new.
6. Убедиться в том, что amavisd-new работает.
Сначала необходимо узнать, где определен параметр amavisd-new $TEMPBASE. Это точка монтирования для создаваемой файловой системы tmpfs. По умолчанию значение $TEMPBASE совпадает с $MYHOME, которое по умолчанию равно /var/amavis. Чтобы знать наверняка, используйте grep для вашего файла конфигурации. В данном примере параметр
$TEMPBASE установлен в $MYHOME:
# grep TEMPBASE /etc/amavisd.conf
$TEMPBASE = $MYHOME; # (должен быть задан, если его используют
# другие переменные конфигурации)
$ENV{TMPDIR} = $TEMPBASE; # разумно, но обычно не требуется
“-f=$TEMPBASE {}”, [0,8], [3,4,5,6], qr/infected: ([~\r\n]+)/ ],
# adjusting /var/amavis above to match your $TEMPBASE.
# directory $TEMPBASE specifies) in the ‘Names=’ section.
Запускаем grep еще раз для определения значения $MYHOME. В примере видно, что определение $MYHOME закомментировано, так что используется значение по умолчанию:
# grep MYHOME /etc/amavisd.conf
# $MYHOME служит значением по умолчанию для некоторых
# других параметров конфигурации.
# $MYHOME не используется программой напрямую. Нет завершающей косой черты #$MYHOME = ‘/var/lib/amavis’; # (умолчание – это ‘/var/amavis’) $TEMPBASE = $MYHOME; # (должен быть задан, если его используют
# другие переменные конфигурации) #$TEMPBASE = “$MYHOME/tmp”; # предпочитает оставить домашний
# каталог /var/amavis чистым? #$helpers_home = $MYHOME; # (по умолчанию равен $MYHOME) #$daemon_chroot_dir = $MYHOME; # (по умолчанию undef, т. е. chroot
# не требуется)
#$pid_file = “$MYHOME/amavisd.pid”; # (по умолчанию “$MYHOME/amavisd.pid”) #$lock_file = “$MYHOME/amavisd.lock”; # (по умолчанию “$MYHOME/amavisd.lock”) #$forward_method = “bsmtp:$MYHOME/out-%i-%n.bsmtp”; $unix_socketname = “$MYHOME/amavisd.sock”; # сокет вспомогательного протокола amavis (обычно устанавливается в $MYHOME/amavisd.sock) $LOGFILE = “$MYHOME/amavis.log”; # (по умолчанию пуст, журнал не ведется) “{} -ss -i ‘*’ -log=$MYHOME/vbuster.log”, [0], [1],
Теперь необходимо создать запись для tmpfs в файле /etc/fstab, используя вычисленный в предыдущем разделе размер файловой системы. В следующем примере указан размер 150 Мбайт, а доступ ограничен определенным пользователем и группой. В данном случае идентификатор пользователя равен 7509, а GID – 54322, что соответствует пользователю и группе vscan в файлах /etc/passwd и /etc/group; но помните, что в вашей системе номера практически наверняка будут другими, так что вам нужно будет найти их самостоятельно:
/dev/shm /var/amavis tmpfs defaults,size=150m,mode=700,uid=7509,gid=54322 0 0
Прежде чем монтировать /var/amavis, остановите amavisd-new командой:
# /etc/init.d/amavisd-new stop
Затем монтируем /var/amavis (помните, что это файловая система tmpfs, которую вы только что определили в /etc/fstab):
# mount /var/amavis
Теперь заново запускаем amavisd-new:
# /etc/init.d/amavisd-new start
Проверяем, все ли хорошо, просматривая журналы и исследуя вывод df -h. В следующем примере размер /var/amavis равен 100 Мбайт, а используются в настоящее время всего 76 Кбайт:
# df -h /var/amavis
Filesystem /dev/shm
Size Used Avail Use% Mounted on
100M 76k 99M 1% /var/amavis
Примечание
Иногда amavisd-new оставляет устаревшие файлы в своем каталоге $TEMPBASE. Для того чтобы предотвратить заполнение $TEMPBASE такими файлами, вы можете каждый день останавливать amavisd-new, удалять устаревшие файлы и перезапускать программу. Эту задачу может выполнить сценарий, ежедневно запускаемый посредством cron:
#!/bin/bash
/etc/init.d/amavisd stop
rm -Rf /var/amavis/amavis-200*
/etc/init.d/amavisd start

