Анализ производительности и варианты оптимизации CuckooMX
CuckooMX увеличивает время приёма каждого сообщения: до завершения работы cuckoomx.pl (разбор MIME, обращения к API Cuckoo, повторная передача письма в Postfix) сессия SMTP остаётся связанной с контент-фильтром. Ниже приведены ориентиры для планирования ёмкости; конкретные цифры зависят от оборудования, размера писем и версии Cuckoo Sandbox.
Задержка SMTP и размер писем
-
Крупные вложения и вложенные
multipart/*увеличивают время разбора и запись на диск во временный каталог. -
Распаковка ZIP внутри скрипта может резко увеличить объём данных на диске и время обработки одного письма.
Рекомендации: держите outputdir на быстром локальном диске; ограничивайте максимальный размер письма в Postfix (message_size_limit), если политика это допускает; отключайте обработку ZIP в конфиге, если она не нужна.
Очередь API Cuckoo
Каждое вложение порождает одну или несколько задач в песочнице. В модифицированном скрипте нет проверки MD5 по базе Cuckoo, как в upstream: повторная доставка того же файла снова ставит задачу в API. При пиковой почтовой нагрузке узким местом становится не Postfix, а очередь и число гостевых ВМ в Cuckoo.
Имеет смысл:
-
заранее согласовать число параллельных анализов с количеством
guest/machinesв Cuckoo; -
мониторить длину очереди задач и загрузку гипервизора;
-
при необходимости поднять приоритет критичных отправителей уже на стороне Cuckoo (если API это поддерживает), а не только на Postfix.
Диск и inode
Временные каталоги на письмо и карантин растут с трафиком. Настройте ротацию или периодическую очистку каталогов, которые больше не нужны после успешной доставки (поведение зависит от версии скрипта — проверьте, удаляет ли он рабочий каталог после deliverMail).
Syslog и ввод-вывод
Частый подробный лог в mail.log увеличивает нагрузку на диск. Для высоких объёмов почты снизьте уровень детализации в конфигурации CuckooMX (если предусмотрено) или фильтруйте сообщения на стороне rsyslog/journald.
Следующая страница: Справочник CuckooMX.