| Termin | Definicja |
|---|---|
| latencja serwerów mailingowych | Latencja serwerów mailingowych to opóźnienie między zleceniem wysyłki a faktycznym przekazaniem wiadomości do odbiorcy. Jak rozumieć latencję serwerów mailingowychLatencja serwerów mailingowych oznacza czas, który upływa od chwili zainicjowania wysyłki wiadomości do momentu przekazania jej do kolejnego elementu ścieżki dostarczania albo do serwera pocztowego odbiorcy. Nie jest to wyłącznie czas pracy programu wysyłającego. Na całkowite opóźnienie składają się między innymi oczekiwanie w kolejce, rozpoznanie domeny odbiorcy, zestawienie połączenia TCP, negocjacja TLS, przekazanie treści przez SMTP oraz ewentualne ponawianie próby po odpowiedzi tymczasowej. W praktyce trzeba odróżnić kilka punktów pomiarowych. Aplikacja może uznać wiadomość za wysłaną już po zapisaniu jej w lokalnej kolejce MTA, czyli agenta transferu poczty. Serwer nadawcy może raportować sukces dopiero po otrzymaniu odpowiedzi SMTP z kodem 250 od serwera odbiorcy. Skrzynka użytkownika może natomiast otrzymać wiadomość później, ponieważ serwer odbiorczy może zastosować własne filtrowanie, skanowanie antyspamowe, kwarantannę lub opóźnienie dostarczenia do skrzynki. Etapy, które zwiększają opóźnienie SMTPPierwszym elementem ścieżki jest lokalne przetwarzanie wiadomości. System może sprawdzać poprawność adresów, generować treść MIME, podpisywać wiadomość metodą DKIM, nakładać ograniczenia nadawcy i umieszczać komunikat w kolejce. Jeżeli kolejka jest przeciążona, wiadomość nie rozpocznie jeszcze transmisji do sieci. Długi czas oczekiwania w kolejce zwykle wskazuje na ograniczenie przepustowości, zbyt małą liczbę procesów obsługujących wysyłkę, problemy z dyskiem albo dużą liczbę błędów tymczasowych. Następnie serwer nadawcy ustala, dokąd przekazać wiadomość. Dla domeny odbiorcy wykonywane jest zapytanie DNS o rekord MX. Opóźnienie może wynikać z niedostępności resolvera, przekroczenia czasu oczekiwania, błędnej konfiguracji DNS lub konieczności ponowienia zapytania. Po uzyskaniu adresu serwer zwykle nawiązuje połączenie TCP z portem 25 serwera odbiorczego. Do czasu transmisji dochodzą opóźnienie sieciowe, procedura SYN, ewentualne filtrowanie połączeń oraz czas oczekiwania na baner SMTP. Po zestawieniu połączenia serwery wykonują dialog SMTP. Nadawca przedstawia się poleceniem EHLO, a następnie może uruchomić szyfrowanie STARTTLS, uwierzytelnić się, przekazać nadawcę przez MAIL FROM, odbiorcę przez RCPT TO i treść przez DATA. Każdy etap może oczekiwać na odpowiedź drugiej strony. Dodatkowe opóźnienie pojawia się podczas negocjacji TLS, weryfikacji certyfikatu oraz skanowania wiadomości przez systemy bezpieczeństwa po stronie odbiorcy. Dlaczego pojedynczy czas nie opisuje całej dostawyLatencję należy analizować jako zestaw odcinków, a nie jedną liczbę przypisaną do całej poczty. Przydatne są co najmniej czasy: utworzenia komunikatu, zapisania go w kolejce, rozpoczęcia próby SMTP, uzyskania odpowiedzi serwera zdalnego oraz finalnego przekazania do skrzynki. W systemach obsługujących większy wolumen warto rejestrować identyfikator wiadomości, domenę docelową, wynik próby, kod odpowiedzi SMTP i czas trwania każdego etapu. Pozwala to odróżnić problem lokalnego serwera od opóźnienia po stronie konkretnej domeny. Odpowiedzi SMTP z grupy 4xx oznaczają błędy tymczasowe. Serwer nadawcy powinien wtedy przechować wiadomość i ponowić próbę zgodnie z własną polityką kolejkowania. Takie mechanizmy mogą zwiększyć czas dostarczenia z kilku sekund do wielu minut lub dłużej, szczególnie gdy serwer odbiorczy stosuje greylisting albo czasowo ogranicza liczbę połączeń. Odpowiedzi z grupy 5xx są błędami trwałymi i zwykle kończą daną próbę bez oczekiwania na automatyczne dostarczenie, choć dokładne zachowanie zależy od konfiguracji MTA. Nie należy utożsamiać wysokiej latencji z utratą wiadomości. Opóźnienie może wynikać z prawidłowego mechanizmu retry, ograniczeń przepustowości lub kontroli reputacyjnej. Z drugiej strony krótki czas przyjęcia wiadomości przez serwer nadawcy nie dowodzi, że odbiorca zobaczy ją od razu. Do oceny potrzebne są logi obu stron albo znaczniki czasu zapisane przez kolejne systemy pośredniczące. Sam zegar programu wysyłającego pokazuje tylko fragment całego przepływu. Diagnostyka opóźnień w środowisku komputerowymDiagnostykę rozpoczyna się od porównania czasu utworzenia wiadomości z czasem rozpoczęcia pierwszej próby przekazania. Jeżeli różnica jest duża, przyczyną jest kolejka lub lokalne zasoby serwera. Jeżeli połączenie rozpoczyna się szybko, ale długo trwa uzyskanie odpowiedzi, należy sprawdzić rozwiązywanie DNS, trasę sieciową, dostępność portu 25 oraz odpowiedzi serwera odbiorczego. Przydatne są dane z logów MTA, pomiary czasu zapytań DNS, testy połączenia TCP i analiza etapów negocjacji TLS. Testy powinny być wykonywane zgodnie z uprawnieniami i polityką danego środowiska. Warto także sprawdzić obciążenie procesora, pamięci operacyjnej, systemu plików i interfejsu sieciowego. Zapełniona partycja może spowolnić zapis kolejki, a przeciążony system skanowania może wydłużać przygotowanie lub przekazanie wiadomości. Należy porównać opóźnienia dla różnych domen odbiorczych, godzin oraz rozmiarów wiadomości. Jeżeli problem dotyczy jednej domeny, bardziej prawdopodobna jest przyczyna po stronie zdalnego serwera lub trasy do niego. Jeżeli występuje globalnie, trzeba przeanalizować lokalny MTA, resolver DNS, sieć i zasoby sprzętowe. W przypadku urządzenia lub hosta wykorzystywanego do obsługi wysyłki sprawdza się stan dysków, pamięci, karty sieciowej, systemu operacyjnego oraz usług odpowiedzialnych za kolejkę. Błędy sprzętowe mogą powodować niestabilność, przerwane połączenia i ponawianie transmisji, co z zewnątrz wygląda jak sama latencja. Rzetelny pomiar powinien obejmować przedział czasu, identyfikator wiadomości i pełną sekwencję odpowiedzi, ponieważ dopiero takie zestawienie pokazuje, na którym etapie powstaje opóźnienie. |