Użycie TTL równej 0 oznacza, że APC opróżni całą pamięć podręczną, gdy zabraknie jej pamięci. Błąd już się nie pojawia, ale sprawia, że APC jest znacznie mniej wydajne. To bez ryzyka, bez kłopotów, decyzja „Nie chcę wykonywać swojej pracy”. APC nie jest przeznaczone do tego celu. Powinieneś wybrać wystarczająco wysoki TTL, aby najczęściej odwiedzane strony nie straciły ważności. Najlepiej jest zapewnić wystarczającą ilość pamięci, aby firma APC nie musiała opróżniać pamięci podręcznej.
Po prostu przeczytaj instrukcję, aby zrozumieć, w jaki sposób używany jest ttl: http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
Rozwiązaniem jest zwiększenie pamięci przydzielonej APC. Zrób to, zwiększając apc.shm_size.
Jeśli APC jest skompilowane do korzystania z pamięci segmentów współdzielonych, system operacyjny będzie ograniczony. Wpisz to polecenie, aby zobaczyć limit systemu dla każdego segmentu:
sysctl -a | grep -E "shmall|shmmax"
Aby zaalokować więcej pamięci, musisz zwiększyć liczbę segmentów za pomocą parametru apc.shm_segments.
Jeśli APC używa pamięci mmap, nie masz ograniczeń. Ilość pamięci jest nadal definiowana przez tę samą opcję apc.shm_size.
Jeśli na serwerze nie ma wystarczającej ilości pamięci, użyj opcji filtrów, aby zapobiec buforowaniu rzadziej używanych plików php.
Ale nigdy nie używaj TTL równego 0.
Jak powiedział c33s, użyj apc.php, aby sprawdzić konfigurację. Skopiuj plik z pakietu apc do folderu internetowego i wskaż go przeglądarce. Zobaczysz, co jest naprawdę przydzielone i jak jest używane. Wykresy muszą pozostać stabilne po godzinach, jeśli całkowicie zmieniają się przy każdym odświeżaniu, oznacza to, że konfiguracja jest nieprawidłowa (APC przepłukuje wszystko). Przydziel o 20% więcej pamięci RAM niż to, czego naprawdę używa APC jako margines bezpieczeństwa i sprawdzaj to regularnie.
Domyślne zezwolenie tylko na 32 MB jest absurdalnie niskie. PHP zostało zaprojektowane, gdy serwery miały 64 MB, a większość skryptów korzystała z jednego pliku php na stronę. Obecnie rozwiązania takie jak Magento wymagają ponad 10 tys. Plików (~ 60 MB w APC). Powinieneś zostawić wystarczającą ilość pamięci, aby większość plików php była zawsze buforowana. To nie jest marnotrawstwo, bardziej wydajne jest trzymanie opcode w pamięci RAM niż posiadanie odpowiedniego surowego php w pamięci podręcznej pliku. Obecnie możemy znaleźć serwery dedykowane z 24 Gb pamięci za jedyne 80 USD / miesiąc, więc nie wahaj się pozwolić kilka GB na APC. Umieściłem 2 GB z 24 GB na serwerze obsługującym sklepy 5Magento i ~ 40 stron internetowych wordpress, APC używa 1,2 GB. Policz 64 MB na instalację Magento, 40 MB na Wordpress z kilkoma wtyczkami.
Ponadto, jeśli masz strony internetowe do tworzenia programów na tym samym serwerze. Wyklucz je z pamięci podręcznej.