Strona 1 z 2

[+] Postfix, spowolnienie serwera przy wysyłaniu e-maila do dużej ilości odbiorców

: 02 października 2010, 20:47
autor: mat89
Witam.
Posiadam pocztę w postfiksie, w MySQL ostatnio zauważyłem, że mój serwer dusi się na około 7-8 minut przy wysyłaniu tzw. paczki czyli e-maila do np. 20-30 adresatów. Podczas wysyłania polecenia top widać, że to przez procmaila i spamassaina. I teraz pytanie, czy można jakoś to ograniczyć lub nie pozwolić aby postfix przyjmował naraz do tylu użytkowników e-maila.

: 02 października 2010, 22:09
autor: Pacek
Polecam zajrzeć tutaj: http://www.postfix.org/TUNING_README.html#rcpts
Co prawda sam tego nie sprawdzałem ale wg tego można ustawić maksymalną ilość odbiorców wiadomości. Jeżeli będzie więcej to wiadomość będzie wysyłana w paczkach.

: 03 października 2010, 02:15
autor: mat89
Dziękuję, fajny poradnik ale nie wiem, która opcja będzie dla rozwiązania mojego problemu najlepsza:

Kod: Zaznacz cały

 You can override the process limit for specific Postfix daemons by editing the [url=http://www.postfix.org/master.5.html]master.cf[/URL] file.  For example, if you do not wish to receive 100 SMTP messages at the same time, but do not want to change the process limits for local mail deliveries, you could specify: 
   /etc/postfix/[url=http://www.postfix.org/master.5.html]master.cf[/URL]:     # ====================================================================     # service type  private unpriv  chroot  wakeup  maxproc command + args     #               (yes)   (yes)   (yes)   (never) (100)     # ====================================================================     . . .     smtp      inet  n       -       -       -       10      smtpd 
To jest ciekawe, chyba o to mi chodzi. Według opisu, można ograniczyć otrzymywanie wiadomości, czyli jak np. ustawię 10, to tylko 10 w danej chwili przyjdzie. Tylko ciekawy jestem co on zrobi z resztą?

Dodałem wpis w main.cf

Kod: Zaznacz cały

default_process_limit = 10
Chyba pomogło, wysłałem paczkę maili i serwer spokojnie sobie poradził.

: 03 października 2010, 16:48
autor: timor
Kompletnie źle to rozumiesz :)

Można limitować do ilu maksymalnie osób może być wysłana wiadomość - robi się to parametrem:
default_destination_recipient_limit - domyślnie ma on wartość 50 - możesz go zmienić na 5 i wtedy nie da się wysłać maila do 20 osób bo serwer na to nie pozwoli (użytkownik dostanie zwrotkę).
To nie jest rozwiązanie, którego szukasz :)

Zostaw też opcję default_process_limit w spokoju bo sobie z wartością 10 okaże się, że z serwera jest w stanie korzystać jednocześnie tylko kilka osób. Połączenia od reszty będą odrzucane.

To co tak na prawdę trapi twojego postfixa to zbyt duża liczba dopuszczonych procesów spamassassina - ustaw sobie max na 2 i będzie ok.
Dlaczego tak będzie lepiej - bo postfix szybko przyjmie maile od 20 osób po 20 sztuk, do 20 adresatów i zapisze sobie na dysku w kolejce - przy tym sam postfix bardzo mało obciąża system więc spowolnień nie będzie. Jak już sobie zakolejkuje to będzie stopniowo po 2 szt. wrzucał do spamassassina i wysyłał. 2 procesy spamassassina nie spowolnią serwera, a użytkownicy będą mogli słać paczki bez problemów.

: 03 października 2010, 19:33
autor: mat89
A to faktycznie tak nie może być? To ja wiem, że za dużo jest procesów spamassasina tylko jakie to polecenie mam dopisać, żeby były tylko te dwa procesy spamsassina?

: 03 października 2010, 19:53
autor: timor
To zależy jak masz podpiętego spamassassina... czy jako demona, czy przez spamc i procmaila, czy przez amavisa....

: 03 października 2010, 21:29
autor: mat89
Mam przez procmaila, on jest transportem.

: 03 października 2010, 22:39
autor: Pacek
Timor nie wprowadzaj ludzi w błąd. Zgodnie z opisem, który jest ba tej witrynie, to parametr default_destination_recipient_limit powoduje podzielenie wiadomości na paczki i wysłanie paczek równolegle. Nie powoduje przerwania wysyłania wiadomości.

: 04 października 2010, 00:09
autor: timor
Dobrze prawisz.
Na szybko sprawdziłem i pomyliłem tę opcję z: smtpd_client_recipient_rate_limit - kiedyś zrobiłem sobie małe "kuku" ustawiając ją na bodajże 10 i nie dało się wysłać maila do więcej niż 10 osób - serwer zwracał błąd.

Ale nadal podtrzymam, że warto zostawić opcję default_destination_recipient_limit przy domyślnej wartości.

: 04 października 2010, 07:14
autor: mat89
To już nie wiem sam jaka opcja będzie dobra. Na razie wyłączyłem ten wpis,
może uruchomię w ciągu dnia i zobaczymy co się będzie działo.