Внутренняя статистика работы

Dr.Web MailD позволяет вести следующие виды внутренней статистики работы:

1. Статистика срабатывания SMTP-ограничений.

2. Статистика пулов потоков и соединений.

warning

Рекомендуется периодически проводить сбор внутренней статистикй работы Dr.Web MailD для оценки нагрузки на него и его пропускной способности. Полученную информацию рекомендуется использовать для оптимизации работы и использования системных ресурсов.

Статистика срабатывания SMTP-ограничений

Статистика срабатывания SMTP-ограничений (ограничений для SMTP-сессии, указанных в настройках компонента Receiver в секции [Receiver] основного конфигурационного файла Dr.Web MailD), сохраняется в файл restrictions.txt. Статистика сохраняется только в случае если явно разрешен ее сбор. Включением сбора статистики управляет параметр RestrictionStat, находящийся в этой же секции конфигурационного файла. Статистические записи всегда добавляются в конец файла.

Каждая запись начинается со следующих строк:

==================================
start:  Tue Oct 9 14:44:15 2008
curr:   Tue Oct 9 14:44:29 2008
period: 0d 0h 0m 14s

в которых указывается время предыдущего сбора статистики, время сброса в файл текущей статистической записи, а также временной период, прошедший между этими моментами.

Далее, после пустой строки, перечисляются все ограничения, настроенные для SMTP-сессии, по одному на строку.  Примерный вид строки со статистикой ограничения показан ниже:

reject_unknown_domain: total: 19   trusted: 0    reject: 0    tempfail: 0

Для каждого ограничения указывается:

название ограничения;

общее количенство писем, для которых выполнялась проверка этого ограничения (total:);

количество писем, которым был присвоен статус trusted в результате срабатывания этого ограничения (trusted:);

количество писем, которые были отклонены в результате срабатывания этого ограничения (reject:);

количество писем, по которым клиенту вернулся SMTP-ответ Tempfail (tempfail:).

Обратите внимание, что статистика не суммируется. Каждая статистическая запись фиксирует количество сработавших ограничений в период между текущим и предыдущим моментами сохранения статистики. Статистика срабатывания ограничений фиксируется только в случае если Dr.Web MailD работает в режиме SMTP/LMTP-прокси.

Статистика пулов потоков и соединений

Статистика по работе пула потоков (соединений) собирается, если ее явно включить в настройках этого пула (например, параметры InPoolOptions и OutPoolOptions в секции [Maild] конфигурационного файла Dr.Web MailD), установив дополнительную настройку stat = yes.

Пример:

InPoolOptions = auto, stat = yes

Обратите внимание, что для компонентов Sender и Receiver статистика собирается всегда, поскольку для настроек их пулов дополнительные параметры (такие как timeout, stat и т.п.) не задаются, а если заданы, то не имеют никакого эффекта.

Накопленная статистика сбрасывается в файл журнала как сообщение уровня Debug при получении сигнала SIGUSR1, а также при завершении работы Dr.Web MailD. Обратите внимание, что если у вас уровень подробности ведения журнала установлен в менее подробный уровень, чем Debug, статистика в него попадать не будет. Статистическая запись имеет следующий вид (пример):

size = 50, active = 0, pending = 0, min = 50, max = 500, threshold = 50

Здесь указывается:

size – текущий размер пула потоков (количество потоков в пуле);

active – количество потоков, активных в пуле на момент сохранения записи;

pending – количество задач, ожидающих освобождения потока в пуле на момент сохранения записи;

min – минимальное возможное число потоков в пуле;

max – максимальное возможное число потоков в пуле;

threshold – порог, превышение которого приводит к увеличению количества потоков в пуле.

Статистика не имеет накапливающего характера, при получении сигнала в журнале всегда фиксируется текущее состояние пула.

Кроме того, для некоторых пулов также формируются отдельные файлы со статистикой, статистические записи в которые также сбрасываются по получению сигнала SIGUSR1 и при завершении работы Dr.Web MailD.

Имена файлов статистики соответствуют следующему шаблону:

name_[callback_](cli|srv)[.unique-id].txt - для статистики по соединениям;

name_[callback_](thr[N])[.unique-id].txt - для статистики по потокам.

где:

name - имя компонента (является именем соответствующего модуля без части "drweb-").

callback - указывается для callback-интерфейса компонента Receiver.

cli - для соединений клиентской части.

srv - для соединений серверной части.

unique-id - указывается для модулей, запущенных с уникальным идентификатором.

thr - указывается для пула потоков.

Если такой файл уже существует, то статистика будет добавлена в конец файла.

Каждая запись начинается со следующих строк:

==================================
start:  Tue Oct 9 14:44:15 2008
curr:   Tue Oct 9 14:44:29 2008
period: 0d 0h 0m 14s

в которых указывается время предыдущего сбора статистики, время сброса в файл текущей статистической записи, а также временной период, прошедший между этими моментами.

Для srv затем указывается число закрытых и созданных соединений, а также максимальное число элементов в различных очередях:

closed: 0 (0 num/sec)
total created = 0 (0 num/sec)
max rea = 0 est = 0 don = 0 act = 0

Для cli также указывается число созданных соединений по запросу, число закрытых соединений по истечении времени ожидания, среднее и текущее число соединений:

created on request = 0 (0 num/sec)
closed by timeout = 0 (0 num/sec)
avg number = 0
current = 2

Для thr вывод имеет вид:

min = 2 max = 2147483647 type = 0 freetime = 120
busy max = 0 avg = 0
requests for new threads = 0 (0 num/sec)
creating fails = 0
max processing time = 0 ms; avg = 0 ms
curr = 2 busy = 0

Здесь указывается:

в первой строке – минимальное/максимальное число потоков в пуле, тип пула, время в секундах, в течение которого дополнительный поток будет в бездействии перед тем, как завершится;

во второй строке – максимальное и среднее число занятых одновременно потоков;

в третьей строке – число запросов на создание дополнительных потоков и частота таких запросов;

в четвертой строке – число неудавшихся попыток создания потоков (скорее всего из-за нехватки ресурсов);

в пятой строке – максимальное и среднее время обработки одного запроса в миллисекундах;

в шестой и последней строке – текущее число потоков в пуле и какое их количество сейчас занято обработкой.