Ответы пользователя по тегу *nix-подобные системы
  • Неожиданное завершение процесса, запущенного через nohup?

    xenon
    @xenon
    Too drunk to fsck
    Немного смущает строчка про OutOfMemory. Это просто для примера написано, или на самом деле такая ошибка иногда случается? Просто на линуксе, когда случается, это плохо, и чтобы хоть как-то система жила, ядро прибивает «кого попало», случайный процесс. Так что, если во фре подобная же схема — может быть по этой же причине сам шелл-скрипт убивается? В логах, наверное, OOM должен отражаться.

    Но как вариант, если цель не разобраться, а просто решить проблему, лишь бы работало — можно попробовать без враппера. Просто по крону запускать простенький «чек-респаун» скрипт, который будет проверять, и если сервер лежит (по лок-файлу, открытому порту или даже тупо по ps'у) — запускать его снова. В этом случае уже скрипт не умрет по непонятной причине. Разве что умрет cron от ООМа, но если cron умрет — уже точно будете знать, что проблема не в кривом коде крона.
    Ответ написан
    3 комментария
  • Как разослать миллион писем за один час?

    xenon
    @xenon
    Too drunk to fsck
    Сто тыщщ миллионов лет назад для заказчика писали систему для массовой рассылки. Сейчас уже точно не помню, но, кажется, рассылали в 3000 одновременных коннектов. Про скорость врать не буду — не помню, но меньше миллиона в час. Может быть сейчас (компы гораздо мощнее стали, каналы шире) и возможно, но не уверен.

    Почти 100% уверен что exim НЕ подойдет.

    Проблем будет куча, начиная с того, что не факт, что ОС будет живо дрыгаться, когда в почтовом спуле на диске появится миллион файлов.

    Вторая проблема — Какой бы чистый мейллист не был, при таких объемах там будут дохлые емейлы, дохлые уже домены, или домены у которых неймсервера будут лежать, и тут каждая попытка обычного MTA законнектится на почтовый сервер будет затягиваться очень надолго (при этом этот коннекшн MTA ничего не делает, пытается отослать это письмо, не может, но тратит много времени, за которое можно было бы сотню писем отослать).

    Еще проблема — при такой мощной рассылке, канал будет забит (конечно, если почтовик сумеет его загрузить). То есть, будут потери пакетов, потери DNS запросов и ответов, итд. (между делом — редхатовский bind из давних дистрибутивов — вообще падал при такой нагрузке)

    В любом случае, мне кажется с обычным MTA (без очень жесткой доработки напильником) — врядли получится, тем более за час. Они все таки рассчитаны для «дорогой но надежной» доставки — то есть письмо может хоть неделю быть в очереди, если сервер получателя лежит. Если база действительно чистая и легальная — таких проблемных писем будет относительно мало, но каждое из них сильно тормозит систему. А вам нужна «дешевая и быстрая» доставка, когда проблемное письмо скорее выбросится (и черт с ним), но не будет сжирать ресурсы на попытки доставить. Ну и кроме того не забывайте про модный сейчас грейлистинг, который почти везде. Так что каждое письмо вполне может минимум 15 минут еще в очереди стоять.
    Ответ написан
    2 комментария
  • Как настроить Exim4, чтобы направлять всю почту домена в PHP скрипт?

    xenon
    @xenon
    Too drunk to fsck
    procmail для этого более заточен, мне кажется. И задача перенаправить письмо в файл или через пайп в программу обычно расписывается на первой же странице большинства гайдов-туториалов по прокмейлу. Так что пользуйте любой MTA, Exim или любой другой, его задача только принять письма и все ансабскрайбы свалить определенному пользователю, а затем прокмейл (local delivery agent) уже по своему простенькому конфигу решит, что надо в почтовые ящики класть, а что скрипту отдать, который уже отпишет отправителя.
    Ответ написан
    Комментировать