APC deaktivieren oder entfernen

APC deaktivieren oder entfernen

Ich bin zu frustriert über das PHP APC-Caching-System und wollte es vollständig von meinem Server entfernen/deaktivieren. Ich verwende PHP mit Nginx, das auf Debian Squeeze installiert ist. Gibt es eine Möglichkeit, dies zu tun?

Antwort1

Anstatt APC zu entfernen, was zu einerfestdie Leistung beeinträchtigen und sich damit effektiv selbst ins Bein schießen.

Versuchen Sie Folgendes: in /etc/php5/conf.d/apc.ini:

extension=apc.so
apc.shm_size=128M
apc.shm_segments=1
apc.max_file_size=5M
apc.num_files_hint=10000
apc.slam_defense = 0
apc.write_lock=1

Sie können apc.shm_sizeden Wert auf einen Wert größer als 128 erhöhen, beispielsweise 512, wenn Sie über ausreichend freien RAM verfügen.

Ich habe dies auf einem Server getan, den ich betreibe, und sehe nieFür den Pool kann kein Speicher zugewiesen werden.Fehler.

Antwort2

Entweder entfernen /opt/php5/etc/conf.d/apc.inioder alle Zeilen darin mit einem kommentieren ;. Vergessen Sie nicht, Ihren Webserver anschließend neu zu starten.

Überprüfen Sie außerdem „/etc//php5/apache2/php.ini“ auf „extension=apc.so“, um es auszukommentieren.

Wenn du die Quellen noch hast, könntest du versuchen, make uninstalldanach eins zu machen. Ich weiß nicht, ob das Makefile dieses Ziel enthält.

Antwort3

Wenn Sie außer dem, was Squeeze bietet, nichts anderes installiert haben, apt-get remove php-apcsollte es auch ganz einfach gehen.

Antwort4

Die Lösung besteht darin, den APC zugewiesenen Speicher zu erhöhen.

Die Verwendung eines TTL von 0 bedeutet, dass APC den gesamten Cache leert, wenn der Speicher voll ist. Der Fehler tritt nicht mehr auf, aber APC wird dadurch weit weniger effizient. Es ist eine Entscheidung ohne Risiko und ohne Ärger, nach dem Motto „Ich will meine Arbeit nicht machen“. APC ist nicht für diese Verwendung gedacht. Sie sollten einen TTL wählen, der hoch genug ist, damit die am häufigsten aufgerufenen Seiten nicht ablaufen. Am besten ist es, genügend Speicher bereitzustellen, 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

Sie können den zugewiesenen Speicher vergrößern, indem Sie apc.shm_size erhöhen.

Wenn APC für die Verwendung von Shared Segment Memory kompiliert ist, sind Sie durch Ihr 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 zuzuordnen, 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 einen TTL von 0.

Verwenden Sie apc.php, um Ihre Konfiguration zu überprüfen. Sie sehen, was tatsächlich zugewiesen ist und wie es verwendet wird. Die Diagramme müssen auch nach Stunden stabil bleiben. Wenn sie sich bei jeder Aktualisierung vollständig ändern, bedeutet dies, dass Ihr Setup falsch ist (APC löscht alles). Weisen Sie 20 % mehr zu, als APC tatsächlich als Sicherheitsmarge verwendet, und überprüfen Sie dies regelmäßig.

Der standardmäßige Speicherbedarf von nur 32 MB ist lächerlich niedrig. PHP wurde entwickelt, als 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 sind. Das ist keine Verschwendung, es ist effizienter, den Operationscode im RAM zu behalten, als das entsprechende reine PHP im Dateicache zu haben. Heutzutage können wir dedizierte Server mit 24 GB Speicher für nur 150 $ finden, also zögern Sie nicht, APC mehrere GB zuzulassen. Ich habe 2 GB von 24 GB auf einem Server verwendet, auf dem 5 Magento-Shops und ~40 WordPress-Websites gehostet werden, APC verwendet 1,2 GB. Rechnen Sie mit 64 MB für die Magento-Installation, 20 MB für ein WordPress mit einigen Plugins.

verwandte Informationen