TTL
TTL (ang. Time To Live — czas życia) to parametr określający, przez jak długo dana informacja może być przechowywana i uznawana za aktualną, zanim trzeba ją odświeżyć z oryginalnego źródła. Wartość podaje się zwykle w sekundach. Pojęcie pojawia się w wielu kontekstach, ale najczęściej odnosi się do rekordów DNS oraz wpisów w pamięci podręcznej.
Jak działa TTL?
W przypadku DNS każdy rekord — A, MX, CNAME i inne — ma przypisany TTL. Gdy resolwer (serwer pośredniczący u dostawcy internetu) odpyta serwer nazw o rekord, zapamiętuje odpowiedź na tyle sekund, ile wynosi TTL. Przez ten czas kolejne zapytania obsługuje z pamięci podręcznej, nie fatygując serwera źródłowego. Dopiero po wygaśnięciu TTL pobiera rekord na nowo. Ten mechanizm odciąża infrastrukturę i przyspiesza odpowiedzi, ale opóźnia rozprzestrzenianie się zmian — stąd zjawisko propagacji DNS.
Ta sama logika działa w innych warstwach. Nagłówki Cache-Control definiują TTL zasobów w przeglądarce i na CDN, systemy pamięci podręcznej jak Redis czy Memcached ustawiają TTL dla przechowywanych kluczy, a pakiety w sieciach IP mają pole TTL zapobiegające ich krążeniu w nieskończoność. Wspólna idea jest zawsze ta sama: dane mają ograniczony okres ważności.
Zastosowanie w praktyce
Najbardziej praktyczne zastosowanie TTL to zarządzanie zmianami DNS. Przed migracją strony na nowy serwer lub zmianą adresu IP administratorzy z wyprzedzeniem obniżają TTL rekordów do 300 sekund. Dzięki temu po przełączeniu resolwery szybko pobiorą nowe wartości i przestoje są minimalne. Po zakończeniu migracji przywraca się wyższy TTL, na przykład 3600 sekund, aby ograniczyć liczbę zapytań.
Dobór TTL to kompromis między szybkością wprowadzania zmian a wydajnością. Niski TTL oznacza natychmiastowe efekty edycji, ale więcej ruchu do serwerów nazw i większe obciążenie. Wysoki TTL odciąża infrastrukturę i przyspiesza odpowiedzi, lecz sprawia, że zmiany rozchodzą się wolniej. W buforowaniu treści strony dłuższy TTL poprawia wydajność, o ile treść nie zmienia się często.
Powiązane pojęcia
Najczęstsze pytania
Jaki TTL ustawić dla rekordów DNS?
Standardowo 3600 sekund (1 godzina) to bezpieczny kompromis. Przed planowaną zmianą serwera lub adresu IP warto obniżyć TTL do 300 sekund z kilkugodzinnym wyprzedzeniem, aby przełączenie było szybkie, a po zakończeniu migracji przywrócić wyższą wartość.
Dlaczego zmiana DNS nie działa mimo edycji rekordu?
Najczęściej winna jest pamięć podręczna resolwerów, które przechowują starą wartość przez okres TTL ustawiony przed zmianą. Trzeba odczekać do wygaśnięcia tego czasu — dopóki on trwa, część użytkowników nadal widzi poprzedni adres.
