Na serwerze Postgres kończy się miejsce na dysku

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Krótki opis problemu

Na serwerze Postgres z danymi Analytics skończyło się miejsce.

W poniższym przykładzie widać, że dysk /u01 zajmuje 90% (176 GB/207 GB) miejsca na dysku.

$df -g

Filesystem Size User Avail Use% Mounted on
/dev/mapper/sysvg-syslv09 207G 176G 176G 21G 90% /u01

Komunikaty o błędach

Komunikat o błędzie może pojawić się dopiero wtedy, gdy na serwerze Postgres zostanie całkowicie zapełnione miejsce na dysku.

Możliwe przyczyny

W tabeli poniżej znajdziesz możliwe przyczyny tego problemu:

Przyczyna Dla:
Za mało miejsca na dysku Użytkownicy chmury Private Cloud
Brak skracania danych Analytics Użytkownicy chmury Private Cloud

Za mało miejsca na dysku

Diagnostyka

Jedną z typowych przyczyn błędów dotyczących miejsca na dysku na serwerach Postgres jest brak wystarczającej ilości miejsca na dysku, aby przechowywać duże ilości danych analitycznych. Poniższe czynności pomogą Ci określić, czy masz wystarczającą ilość miejsca na dysku, i podjąć odpowiednie działania, aby rozwiązać problem.

  1. Określ tempo ruchu przychodzącego z interfejsu API do Edge, korzystając z panelu wydajności serwera proxy Analytics.

    Przykładowa wydajność serwera proxy ze średnią wartością TPS

  2. Rozważ taki scenariusz:
    1. Ruch przychodzący do interfejsu API dla Twojej organizacji wynosi 22 TPS (transakcje na sekundę).
      1. Oznacza to, że ruch przez interfejs API wynosi 1 900 800 transakcji dziennie (22 * 60 * 60 * 24).
      2. Pamiętaj, że każda transakcja/wiadomość w Analytics ma rozmiar 1,5 tys.bajtów.
      3. Oznacza to, że każdego dnia generuje 2,7 GB danych Analytics (1 900 800 * 1,5 tys.).
    2. Na serwerach Postgres musisz przechowywać dane Analytics przez 30 dni w celach informacyjnych.
      1. Łączna ilość danych wygenerowanych przez 30 dni = 81 GB (2,7 GB * 30)
    3. Dlatego, aby przechowywać dane Analytics przez 30 dni z szybkością 22 TPS, musisz mieć 150 GB miejsca na dysku.
      1. 81 GB (dane Analytics) + 50 GB (inne dane, np. logi itp.) + 20 GB (dodatkowe miejsce na bufor) = 150 GB.
  3. Jeśli w systemie jest mniej miejsca, tj. mniej niż 150 GB miejsca (zgodnie z przykładem powyżej), oznacza to, że nie ma wystarczającej ilości miejsca na dysku do przechowywania danych Analytics.

Rozdzielczość

Dodaj odpowiednią ilość miejsca na dysku na maszynie serwera Postgres.

Brak przycinania danych Analytics

Diagnostyka

Wraz ze wzrostem ruchu interfejsu API do Edge wzrośnie też ilość danych analitycznych przechowywanych w bazie danych Postgres. Ilość danych analitycznych, które można przechowywać w bazie danych Postgres, jest ograniczona przez ilość miejsca dostępnego na dysku w systemie.

Dlatego nie możesz kontynuować przechowywania dodatkowych danych Analytics w bazie danych Postgres bez wykonania 1 z tych czynności:

  1. Zwiększ ilość miejsca na dysku.

    Nie jest to skalowalna opcja, ponieważ nie możemy zwiększać ilości miejsca na dysku ze względu na ograniczenia i koszty.

  2. Przycinanie danych po dłuższym czasie przechowywania.

    Jest to preferowane rozwiązanie, ponieważ masz pewność, że dane, które nie są już wymagane, są usuwane w regularnych odstępach czasu.

Jeśli nie skracasz danych w regularnych odstępach czasu ręcznie lub za pomocą zadania cron, ilość danych analitycznych stale się zwiększa, co może doprowadzić do wyczerpania miejsca na dysku w systemie.

Rozdzielczość

Aby usunąć dane, które przekroczyły wymagany okres przechowywania:

  1. Określ interwał przechowywania, czyli czas, przez jaki chcesz przechowywać dane Analytics w bazie danych Postgres.
  2. Uruchom to polecenie, aby przyciąć dane dla określonej organizacji i środowiska:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql pg-data-purge
      org env number_of_days_to_retain [Delete-from-parent-fact - N/Y] [Skip-confirmation-prompt - N/Y]
    

Skrypt zawiera te opcje:

  • Delete-from-parent-fact Domyślnie : nie. Z nadrzędnej tabeli faktów zostaną też usunięte dane starsze niż dni przechowywania.
  • Skip-confirmation-prompt. Domyślnie: nie. Jeśli nie, skrypt poprosi o potwierdzenie, zanim usunie dane z informacji nadrzędnej. Ustaw wartość „Tak”, jeśli skrypt trwałego usuwania jest zautomatyzowany.

Więcej informacji znajdziesz w artykule Przycinanie danych Analytics.

Jeśli problem będzie nadal występował, skontaktuj się z zespołem pomocy Apigee Edge.