>>Стабильность в том, что запущенный через тспсервер того же автора (правда с
>>патчами) переживает такие проблемы как нехватка памяти, дискового пространства, достижение лимита
>>максимального количества клиентов, т.е. после освобождения ресурсов возобновляет обслуживание, а это
>>- главное.
>Никогда не замечал такой проблемы у postfix. Замечу что в нем имеется
>аналогичный алгоритм.
>А где вызов setrlimit() для ограничения используемой памяти? В qmail используется программа softlimit для получения подобного эффекта.
>>Не факт. В среднем образ процесса qmail-smtpd, обрабатывающего одну рассылку (кстати один
>>процесс может обслужить поочередно несколько писем), имеет размер порядка 900КБ (в
>>основном зависит от ОС, может быть немногим больше или меньше), т.е
>>для обслуживания 900 одновременных рассылок нужно 900МБ - неплохой показатель. У
>>обычных ИСП среднего размера (50000 почтовых ящиков) выше 2000 не поднимается,
>>да и то в пиках и если есть новостные engines. Правда,
>>это моё наблюдение. Если нужно больше, используют несколько машин (независимо от
>>типа МТА).
>Я говорил об накладных расходах на запуск процесса, а не на память.
>А их много. Количество используемой памяти зависит от методик обработки. И
>в целом будет кореллировать с объемом трафика обрабатываемым почтовым сервером.
>
>>У qmail эти процессы запускают не одновременно, а один из другого
>накладные расходы от этого не уменьшаются.
Если речь идет о расходах на fork() или vfork(), то за это отвечает ОС.
Распараллеливание задач - известная проблема, и из одного процесса она не решается грамотно. В postfix точно так же запускается группа процессов smtpd. И эти расходы не сравнятся с расходами на блокирование критических участков в абсолютном большинстве систем. Основной потребитель ресурсов при работе с файлами - это операции IO.
>
>>1. У postfix примерно такая же структура mail delivery как у qmail
>>в плане распределения задач между демонами и дочерние процессы точно также
>>запускаются и завершаются.
>Не верно. Демоны выгружаются только при условии не возможности использовать повторно. В
>случае с qmail это происходит всегда.
>
>>2. В большинстве современных ОС существуют технологии, сокращающие расходы на создание\завершение процессов.
>Это какие ? В использование потоков я бы еще поверил, но они
>не используются qmail.
Речь о том, как ОС решают вопрос снижения ресурсоемкости при образовании процессов. В Solaris это posix_spawn(), реализованный через vfork() - execve() - _exit(). Т. е. простая замена в qmail на posix_spawn позволяет заметно уменьшить затраты. Насчет Linux такие разговоры велись и имели в виду указывание флагов POSIX_SPAWN_USEVFORK и POSIX_SPAWN_NO_ATFORK для определения подобного поведения posix_spawn.
Но опять же расходы относительно не велики, тем более, что qmail использует статические собственные библиотеки. Для сравнительного анализа потерь под разными ОС можно использовать вполне портабельный libmicro.
>
>>3. Для подъема производительности нужна система распределенных вычислений (кластер).
>>У меня в данное время интенсивно тестируется qmail HA-agent для Sun Cluster
>>3.0 (один из наиболее удачных кластерных решений, правда действует только под
>>Solaris).
>А другое что-то пробовали?
Не довелось.
>Или вам проще собрать кластер?
Кластер ставится по инструкции, благо он с некоторых пор стал бесплатным. Агент пишется согласно материалам с docs.sun.com.
>
>>Zero administration - это полное отсутствие необходимости каких-либо действий со стороны обслуживающего
>>персонала для поддержания работоспособности ПО (автоматизм обслуживания).
>Любой грамотно настроенный MTA попадает в эту категорию.
Может это зависит больше от кода?
>
>>Система конфигурации состоит из ряда файлов, имя которых означают опцию, а содержимое
>>- значение опции. Практически отсутствует необходимость в разборе формата конфигурационного файла.
>Теперь нечитаемость конфиурационного файла преподносится как удобство?
Вполне читаем.
>
>>Более того, все изменения в них вступают в силу после их
>>сохранения, без необходимости уведомления демонов об изменениях.
>Вот за этим и нужен простой формат. Хотя проще было бы держать
>конфигурацию в памяти. Но к сожалению это было не достаточно параноидально.
>В случае postfix достаточно запустить postfix reload. Все же стоит тратить
>ресурсы менее расточительно? Тем более что так уж часто меняется конфигурация.
А если изменения делаются периодически, например, обновляется антиспамовая база? Вот тут и проблема, что большинство MTA использует отдельное ПО для решения таких задач как антиспам\антивирус\рассылки. Qmail позволяет все объединить в одном и, кстати, для антиспамовых\антивирусных проверок не требуется запуск отдельного процесса.
>>Насчет нарушения FHS - так это в инсталляции по умолчанию. Легко обойти.
>>Во всяком случае, так очень многие и сделали.
>Только вот почему по умолчанию этого не сделано? Плюс там нужен большой
>напильник. Без напильника и патчей qmail вещь убогая. Кроме этого никто
>не гарантирует, что не вносят уязвимости. А функционал и удобство аналогичное
>postfix из qmail можно получить только наложив много патчей.
>
Можно вспомнить, что и postfix вначале многое не умел. А почему этого нет по умолчанию, это вопросы лицезирования. Автор сказал, что его текущая версия устраивает, потому он и закончил. Остальное дописывает сообщество.
>>Что Вы понимаете под большими программами?
>Любая программа которая перед ее написанием требует проектирования и ее код больше
>7 страниц.
>
Впервые слышу, чтобы размеры проекта измерялись не по функциональности, а по объему исходного кода.
>>Под словом "удобный стиль" понимается хорошая читабельность кода независимо от размеров проекта
>Тут необыло слова удобный стиль. Тут было слово "авторский стиль". Авторский стиль
>и стиль принятый в проекте это две разные вещи. К примеру
>посмотрите требования к стилю при написании патчей к ядру.
>
К какому ядру и какой системы?
>>независимость от большинства системных библиотек (реализованы собственные библиотечные интерфейсы)
>интересно только в параноидальных случаях, это кстати ухудшает мобильность.
>
Независимость от системных библиотек всегда улучшает "мобильность". Чем меньше зависимостей от системы, тем меньше приходится адаптировать код для одинакового поведения в разных ОС.
>PS Да и последнее скажите мне в каком из *nix используется qmail
>в качестве почтовика по умолчанию ? Я вот что-то такого не
>знаю. Обычно используют или sendmail или postfix или exim.
Опять же вопросы лицензирования не дают распространять бинарную версию.