Facebook
Twitter
Google+
Kommentare
0

APC “Potential cache slam averted for key XXX”

Erst gestern bin ich wieder auf den folgenden “Bug” (bzw. Feature) gestossen und musste den Workaround raussuchen, deshalb schreibe ich ihn jetzt hier nieder, vielleicht stösst ja auch jemand von euch mal darauf.

Es geht um die allseits beliebte APC Extension. Seit Version 3.1.3 (von August 2009) gibt es in APC einen Schutz gegen potentielle Race-Condition-Probleme bzw. einem Deadlock bzw. einem Cache-Slam (so genau weiß ich das auch nicht ;-) ). Es geht jedenfalls darum dass viele parallele bzw. aufeinander folgende APC-Schreibbefehle (apc_add()/apc_store()…) ein Problem auslösen können, und deshalb wurde eine Sperre eingebaut sodass auf einen Key nicht innerhalb kurzer Zeit mehrfach schreibend zugegriffen werden kann. Doch je nach Last auf der Maschine bzw. dem eingesetzten Script kann das durchaus vorkommen, und dann gibt es den Fehler:

Warning: Potential cache slam averted for key XXXXXXX

Beheben kann man diesen Fehler indem man auf eine ältere Version (3.1.2 sollte es tun) downgraded, sein Script ändert und die multiplen Schreibzugriffe auf einen Key entfernt bzw. begrenzt, oder die folgenden 2 Zeilen in die php.ini bzw. apc.ini einträgt:

apc.write_lock = 1
apc.slam_defense = 0

Gefolgt von einem Apache restart, und der Fehler ist weg.

Weitere Informationen sind verfügbar, es gibt sehr viele Leute die auf dieses Problem gestossen sind, also einfach nach der Fehlermeldung suchen falls man mehr darüber wissen möchte.

Keine ähnlichen Artikel.

Über den Autor

PHP Gangsta

Der zweitgrößte deutsche, eher praxisorientierte PHP-Blog von Michael Kliewe veröffentlicht seit Mitte 2009 Artikel für Fortgeschrittene.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen