Brad Fitzpatrick first Python program
В далеком Августе 2007 года Brad Fitzpatrick написал свою первую программу на Пайтоне.
Когда-то прочитал я эту «новость», порадовался и забыл. А сегодня вспомнил – mailman стал тормозить, жрать CPU и память. А именно процесс: IncomingRunner
Гад!
В процессе поисков проблемы обнаружил, что дира: mailman/data сурово замусорилась и пришло время навести порядок. Тут и прогодилась «первая программа» от Brad'а.
Программа незатейлива:
1. Читает список существующих «списков рассылок»;
2. В каждом из них читает файлик request.pck, содержащий список файлов-писем, ждущих реакции модератора;
3. Удаляет все, у которых тема: “Post by non-member to a members-only list” и соответственно чистит сам request.pck.
Правда я немного дописАл её: сделал, что бы она чистила не все списки, а только тот, что я укажу ей в качестве параметра. И сделал ключик “--all”, при котором чистятся все письма, не зависимо от темы. Ведь не только по причине “Post by non-member to a members-only list” туда письма складываются. Так я победил срач, но не проблему! :)
А проблема была в другом: в одном из файлов-дайджестов mailman/lists/<listname>/digest.mbox
Вот описание аналогичной проблемы отсюда:
The lists/LIST_NAME/digest.mbox file is where posts are collected for an eventual digest. When it reaches digest_size_threshold size or when cron/senddigests runs if digest_send_periodic is yes, it is used to create the digest and then removed. I.e., under usual circumstances, it is removed by Mailman every day.
The issue is that there are known cases when a somehow malformed or badly encoded post has been posted and saved to digest.mbox, and this has stopped processing for that list.
У меня этот digest.mbox вырос до 170Mb и добавление новых дайджестов занимало огромное время и силы процесса IncomingRunner. Отрезав его до рекомендованных 30Kb все заработало отлично и накопившиеся в in-очереди сообщения тут же рассосались.
Так что двойная удача: и срач почистил и проблема с тормозами решилась. Всегда бы так! :)









Оставить комментарий