Оптимизация ClamAV на серверах DirectAdmin
Если ваши серверы DirectAdmin испытывают высокую нагрузку из-за процесса clamd
, вы можете заметить, что он постоянно находится на верхних позициях в выводе команды top
. Хотя ClamAV изначально не поддерживает ограничения использования памяти и ЦП через свои конфигурационные файлы, мы можем управлять использованием ресурсов, изменяя скрипт запуска clamd
.
Понимание проблемы
ClamAV - это важный антивирусный инструмент, но его ресурсоемкость иногда может приводить к проблемам с производительностью на загруженных серверах. Внедряя ограничения ресурсов, мы можем обеспечить продолжение защиты ClamAV без перегрузки системы.
Решение: Изменение скрипта запуска ClamAV
Для CloudLinux 8.7 и подобных систем выполните следующие шаги для оптимизации ClamAV:
1. Отредактируйте скрипт запуска ClamAV
Откройте скрипт запуска ClamAV с помощью текстового редактора:
sudo nano /etc/systemd/system/clamd.service
2. Добавьте ограничения ресурсов
Добавьте следующие строки для установки ограничений ресурсов. Отрегулируйте значения в соответствии с возможностями и требованиями вашего сервера:
IOSchedulingPriority=7
CPUSchedulingPolicy=5
MemoryLimit=1024M
CPUQuota=30%
Nice=19
Вот что делает каждая настройка:
- IOSchedulingPriority: Устанавливает приоритет ввода/вывода (0-7, чем ниже, тем выше приоритет)
- CPUSchedulingPolicy: Устанавливает политику планирования ЦП (0-6, 5 - простаивающий)
- MemoryLimit: Устанавливает максимальное использование памяти
- CPUQuota: Ограничивает процент использования ЦП
- Nice: Устанавливает приоритет процесса (от -20 до 19, чем выше, тем ниже приоритет)
3. Пример обновленного скрипта запуска
Ваш измененный скрипт запуска должен выглядеть примерно так:
[Unit]
Description=Generic clamav scanner daemon
After=syslog.target nss-lookup.target network.target
[Service]
Type=simple
ExecStartPre=-/bin/mkdir -p /var/run/clamd
ExecStartPre=-/bin/chown -R clamav:clamav /var/run/clamd
ExecStart=/usr/local/sbin/clamd --foreground=yes
Restart=on-failure
PrivateTmp=true
IOSchedulingPriority=7
CPUSchedulingPolicy=5
MemoryLimit=1024M
CPUQuota=30%
Nice=19
[Install]
WantedBy=multi-user.target
4. Применение изменений
После изменения скрипта перезагрузите демон systemd, чтобы применить изменения:
sudo systemctl daemon-reload
sudo systemctl restart clamd
Мониторинг и тонкая настройка
После внедрения этих изменений следите за производительностью вашего сервера. Возможно, вам потребуется настроить значения, чтобы найти правильный баланс между эффективностью ClamAV и производительностью сервера. Используйте такие инструменты, как top
, htop
или панель мониторинга вашего сервера, чтобы наблюдать за влиянием изменений.
Дополнительные соображения
- Регулярно обновляйте ClamAV, чтобы убедиться, что у вас есть последние оптимизации и определения безопасности.
- Рассмотрите возможность планирования сканирований ClamAV в часы наименьшей нагрузки, чтобы минимизировать влияние на производительность сервера.
- Если проблемы сохраняются, проконсультируйтесь с вашим хостинг-провайдером или рассмотрите возможность увеличения ресурсов сервера.
Внедрив эти оптимизации, вы должны увидеть улучшение общей производительности сервера при сохранении преимуществ безопасности ClamAV на ваших серверах DirectAdmin.