Oto jak wygląda wykres pamięci na VPS z systemem CentOS z 512 MB pamięci RAM i nginx / php-fpm / mysqld serwującą (głównie statyczną) zawartość dla kilku tysięcy odwiedzających dziennie.
(to są dni na osi x)
Jak widać, w obszarze pamięci podręcznej i bufora jest dość nerwowo. Pamięć podręczna jest czyszczona w nieregularnych odstępach czasu (co wyklucza odpowiedzialne zadanie CRON). Zwykle, ale nie zawsze, oczyszcza się w punkcie, w którym nie może wzrosnąć. Czasami usuwa się prawie całkowicie, innym razem tylko w połowie.
Próbuję zrozumieć logikę tych czystek. Spodziewałbym się, że dane plików będą buforowane znacznie dłużej i nie widzę, aby inne programy używające więcej pamięci niż zwykle, gdy pamięć podręczna jest wyczyszczona.
Czy to jest normalne zachowanie, czy coś mi brakuje?
AKTUALIZACJA: Wydaje się, że aktualizacja pamięci ustabilizowała wykres. Wciąż widzę małe spadki, ale nigdzie nie było tak znaczące jak przed aktualizacją.
Odpowiedzi:
Może być wiele rzeczy. Być może jeden z uruchomionych programów od czasu do czasu używa dużej ilości pamięci RAM. Jeśli to naprawdę tygodnie na osi x, powinieneś próbować w znacznie wyższej rozdzielczości (np. Raz na minutę lub nawet sekundę), aby uzyskać więcej informacji o tym, co się dzieje, co powoduje, że pamięć podręczna jest upuszczana.
ps
itop
wyjście (w tym średnie obciążenie) w tym czasie byłoby przydatne.źródło
Jednym z możliwych powodów może być rosnący plik, na przykład dziennik, usuwany, kompresowany lub wysyłany w inne miejsce, gdy osiągnie określony rozmiar.
W obu przypadkach jego rozmiar w pamięci podręcznej, być może całość, jeśli nie ma presji pamięci w systemie operacyjnym, zostanie zwolniony z pamięci podręcznej, gdy tylko oryginalny plik zostanie usunięty.
źródło