[+] Postfix, spowolnienie serwera przy wysy

Konfiguracja serwerów, usług, itp.
mat89
Posty: 67
Rejestracja: 11 sierpnia 2009, 20:22

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

Post 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.
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post 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.
mat89
Posty: 67
Rejestracja: 11 sierpnia 2009, 20:22

Post 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ł.
Awatar użytkownika
timor
Beginner
Posty: 111
Rejestracja: 18 sierpnia 2009, 23:40

Post 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.
mat89
Posty: 67
Rejestracja: 11 sierpnia 2009, 20:22

Post 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?
Awatar użytkownika
timor
Beginner
Posty: 111
Rejestracja: 18 sierpnia 2009, 23:40

Post autor: timor »

To zależy jak masz podpiętego spamassassina... czy jako demona, czy przez spamc i procmaila, czy przez amavisa....
mat89
Posty: 67
Rejestracja: 11 sierpnia 2009, 20:22

Post autor: mat89 »

Mam przez procmaila, on jest transportem.
Pacek
Beginner
Posty: 315
Rejestracja: 18 sierpnia 2009, 15:17
Lokalizacja: Gdynia

Post 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.
Awatar użytkownika
timor
Beginner
Posty: 111
Rejestracja: 18 sierpnia 2009, 23:40

Post 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.
mat89
Posty: 67
Rejestracja: 11 sierpnia 2009, 20:22

Post 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.
ODPOWIEDZ