Ustawianie wygaśnięcia pamięci podręcznej L1 w procesorze

Apigee Edge udostępnia buforowanie, aby zapewnić trwałość danych między żądaniami. Po odebraniu dane interfejsu API są przez krótki czas przechowywane w pamięci podręcznej, a następnie usuwane. Maksymalny czas, przez jaki dane są przechowywane przed usunięciem, nazywany jest wygaśnięciem lub czasem życia danych (TTL) pamięci podręcznej. Każda pamięć podręczna ma domyślną wartość TTL, ale w niektórych przypadkach może być konieczna zmiana wartości TTL, aby zwiększyć wydajność interfejsu API.

Typy pamięci podręcznej

Dane interfejsu API są przechowywane w 2 typach pamięci podręcznej:

  • Poziom 1 (L1): pamięć podręczna z szybszym dostępem, ale z mniejszą ilością miejsca.
  • Poziom 2 (L2): trwała pamięć podręczna w magazynie danych Cassandra, która ma wolniejszy dostęp, ale więcej miejsca na dane.

Gdy wpis danych w pamięci podręcznej L1 osiągnie wartość TTL na poziomie L1, zostanie on usunięty. Kopia wpisu jest jednak przechowywana w pamięci podręcznej L2 (która ma dłuższy czas TTL niż w pamięci podręcznej L1), gdzie pozostaje dostępna dla innych podmiotów przetwarzających wiadomości. Więcej informacji o pamięci podręcznej znajdziesz w sekcji Poziomy pamięci podręcznej i trwałych pamięci podręcznej.

Maksymalna wartość TTL L1

W Edge dla Private Cloud możesz ustawić maksymalną wartość TTL pamięci podręcznej L1 dla każdego podmiotu przetwarzającego wiadomości za pomocą właściwości TTL maks. L1 (conf_cache_max.l1.ttl.in.seconds). Wpis w pamięci podręcznej L1 wygaśnie po osiągnięciu maksymalnej wartości TTL L1 i zostanie usunięty.

Uwagi:

  • Domyślnie maksymalna wartość TTL L1 jest wyłączona (z wartością -1). W takim przypadku wartość TTL wpisu w pamięci podręcznej L1 jest określana przez ustawienia utraty ważności zasady PuulationCache (dla pamięci podręcznej L1 i L2).
  • Maksymalna wartość TTL L1 działa tylko wtedy, gdy jej wartość jest mniejsza niż łączny czas wygaśnięcia pamięci podręcznej.

Ustawianie maksymalnej wartości TTL L1

Maksymalną wartość TTL L1 w procesorze wiadomości możesz ustawić w ten sposób:

  1. Otwórz w edytorze plik konfiguracji /opt/apigee/customer/application/message-processor.properties. Jeśli plik nie istnieje, utwórz go.
  2. Ustaw właściwość Maksymalna wartość TTL L1 na żądaną wartość:
    conf_cache_max.l1.ttl.in.seconds = 180

    Zalecamy użycie wartości 180 s.

  3. Upewnij się, że plik właściwości należy do użytkownika „apigee”:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Ponownie uruchom procesor wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Wskazówki dotyczące ustawiania maksymalnej wartości TTL L1

Podczas ustawiania maksymalnej wartości TTL L1 pamiętaj o tych wytycznych:

  • Niepowodzenia RPC: jeśli zauważysz braki w zdalnym wywoływaniu procedury (RPC) między procesorami wiadomości (MP) – szczególnie w wielu centrach danych – możliwe, że pamięć podręczna L1 zawiera nieaktualne wpisy, które pozostaną nieaktualne, dopóki nie zostaną usunięte z pamięci podręcznej L1. Ustawienie niższej wartości maksymalnej wartości TTL L1 wymusza wcześniejsze usunięcie nieaktualnych wpisów i zastąpienie ich nowymi wartościami z pamięci podręcznej L2.
    Rozwiązanie: zmniejsz wartość conf_cache_max.l1.ttl.in.seconds.
  • Nadmierne obciążenie Casandra: jeśli ustawisz wartość maks. czasu TTL L1, wpisy pamięci podręcznej L1 będą wygasać częściej, co spowoduje więcej niezrealizowanych braków w pamięci podręcznej L1 i większej liczby trafień w pamięci podręcznej L2. Ponieważ pamięć podręczna L2 będzie miała częstsze trafienia, Cassandra będzie mieć większe obciążenie.
    Rozwiązanie: zwiększ wartość conf_cache_max.l1.ttl.in.seconds

Ogólnie dostrajaj wartość TTL maksymalnej L1 do wartości, która równoważy częstotliwość braku RPC między MP z potencjalnym obciążeniem na Cassandra.

Aby przetwarzanie przebiegało płynnie, zalecamy ustawienie wartości conf_cache_max.l1.ttl.in.seconds na co najmniej 180 s (3 minuty).