Postal - программа для тестирования производительности SMTP и POP серверов


Mark Silinio <silinio(at)mail.ru>
последнее обновление 17/07/05



Здесь даётся перевод http://www.coker.com.au/postal,- краткое описание программы для тестирования производительности SMTP и POP серверов.
Я начал писать эту программу когда мне нужно было узнать какой почтовый сервер даёт лучшую производительнось для более чем 1.000.000 пользователей. Я решил выпустить эту программу под GPL лицензией поскольку нет каких-либо причин скрывать исходный код, и мир должен знать какие почтовые сервера производительнее а какие нет!
Программа берёт список имён пользователей и случайным образом ставит их в поля FROM и TO почтовых сообщений, по той причине что если каждый почтовый адрес занимает по 30 байт, то тогда 1.000.000 адресов будут занимать 30Mb RAM. 3.000.000 сообщений будут занимать 90Mb RAM что будет больше чем есть у моей тестовой машины (это может привести к "замусориванию"(trashing) и сделает тестирование ошибочным), и это может занять года пока загрузятся все данные с жёсткого диска. Использование 100.000 адресов и применение трансформации в 30Mb адресов позволяет использовать ресурсы куда более эффективно.
При отсылке письма тема сообщения и содержимое(body) представляют собой произвольные данные. Поле X-Postal в заголовке используется для того чтобы procmail мог легко фильтровать такие сообщения.

Я также добавил две новые программы в комплект, postal-list, и rabid. Postal-list перечисляет все возможные преобразования для учётной записи (используется для создания списка учётных записей для создания тестового сервера). Rabid это безумный Biff, используется для тестирования производительности POP серверов.
Postal теперь добавляет контрольную сумму MD5 для всех сообщений которые он отсылает (контрольная сумма над темой и телом сообщения включая "\r\n" которыми заканчивается каждая строка в SMTP протоколе). Rabid проверяет контрольную сумму MD5 и выдаёт сообщение об ошибке если суммы не совпалают.

Я добавил поддержку лимитов в Rabid и Postal. Это значит что вы можете указать чтобы эти программы отсылали/получали отпределённое количество сообщений в минуту. Это должно облегчить определение расхода ресурсов на конкретный трафик. Также, если вы хотите запустить на сервере программу анализа производительности чтобы определить узкие места вашего почтового сервера, вы можете запустить Postal и Rabid только на половину максимальной скорости (чтобы использование CPU и жёсткого диска аналитической программой не влияло на почтовый сервер).

Я решил не выпускать релиз 1.0 до тех пор пока нет SMTP sink (для тестирования почтовый релеев). Простая SMTP sink есть 10 строчная программа на Perl для чтения данных и направления их в /dev/null. Однако я планирую добавить лимитирование (чтобы тестировать как почтовые сервера ведут себя при отсылке на медленные сервера) и полное ведение журнала (включая проверку MD5 сумм от Postal)

Copyright © 2000 Russell Coker, перевод Mark Silinio


<- Назад
Valid HTML 4.01! Valid CSS!