Die Verwendung einer TTL von 0 bedeutet, dass APC den gesamten Cache leert, wenn der Speicher knapp wird. Der Fehler tritt nicht mehr auf, macht APC jedoch weitaus weniger effizient. Es ist kein Risiko, kein Problem, die Entscheidung "Ich will meinen Job nicht machen". APC soll nicht so verwendet werden. Sie sollten eine TTL wählen, die hoch genug ist, damit die Seiten, auf die am häufigsten zugegriffen wird, nicht ablaufen. Am besten geben Sie genügend Speicherplatz, damit APC den Cache nicht leeren muss.
Lesen Sie einfach das Handbuch, um zu verstehen, wie ttl verwendet wird: http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
Die Lösung besteht darin, den APC zugewiesenen Speicher zu erhöhen. Erhöhen Sie dazu apc.shm_size.
Wenn APC für die Verwendung von Shared Segment Memory kompiliert wird, sind Sie von Ihrem Betriebssystem eingeschränkt. Geben Sie diesen Befehl ein, um Ihr Systemlimit für jedes Segment anzuzeigen:
sysctl -a | grep -E "shmall|shmmax"
Um mehr Speicher zuzuweisen, müssen Sie die Anzahl der Segmente mit dem Parameter apc.shm_segments erhöhen.
Wenn APC mmap-Speicher verwendet, gibt es keine Begrenzung. Die Speichermenge wird weiterhin durch dieselbe Option apc.shm_size definiert.
Wenn auf dem Server nicht genügend Speicher vorhanden ist, verwenden Sie die Filteroption, um zu verhindern, dass weniger häufig aufgerufene PHP-Dateien zwischengespeichert werden.
Verwenden Sie jedoch niemals eine TTL von 0.
Verwenden Sie, wie c33s sagte, apc.php, um Ihre Konfiguration zu überprüfen. Kopieren Sie die Datei aus dem apc-Paket in einen Webordner und zeigen Sie mit dem Browser darauf. Sie werden sehen, was wirklich zugewiesen ist und wie es verwendet wird. Die Diagramme müssen nach Stunden stabil bleiben. Wenn sie sich bei jeder Aktualisierung vollständig ändern, bedeutet dies, dass Ihr Setup falsch ist (APC spült alles). Weisen Sie 20% mehr RAM zu, als APC tatsächlich als Sicherheitsmarge verwendet, und überprüfen Sie dies regelmäßig.
Die Standardeinstellung, nur 32 MB zuzulassen, ist lächerlich niedrig. PHP wurde entwickelt, wenn die Server 64 MB groß waren und die meisten Skripte eine PHP-Datei pro Seite verwendeten. Heutzutage erfordern Lösungen wie Magento mehr als 10.000 Dateien (~ 60 MB in APC). Sie sollten genügend Speicher zulassen, damit die meisten PHP-Dateien immer zwischengespeichert werden. Es ist keine Verschwendung, es ist effizienter, Opcode im RAM zu behalten, als das entsprechende Roh-PHP im Datei-Cache zu haben. Heutzutage finden wir dedizierte Server mit 24 GB Speicher für nur 80 US-Dollar pro Monat. Zögern Sie also nicht, mehrere GB für APC zuzulassen. Ich habe 2 von 24 GB auf einen Server mit 5Magento-Stores und ~ 40 WordPress-Websites gestellt. APC verwendet 1,2 GB. Zählen Sie 64 MB für die Magento-Installation, 40 MB für ein Wordpress mit einigen Plugins.
Auch wenn Sie Entwicklungswebsites auf demselben Server haben. Schließen Sie sie aus dem Cache aus.