IP-Symcon 5.0 enthält OPcache Support. Was ist OPcache?
OPcache ist ein sogenannter Bytecode-Cache, der vorkompilierten Code im Arbeitsspeicher ablegt. So wird vermieden, dass PHP-Scripte bei jedem Aufruf komplett neu verarbeitet werden müssen (Zitat: OPcache macht PHP-Scripts doppelt so schnell)
Dies bedeutet, dass viele Skripte nach der ersten Ausführung in einem Cache gehalten werden und nicht neu übersetzt werden müssen. Zur Zeit erreichen wir bei ersten Tests eine Hit-Rate von >90% und die Prozessorauslastung sinkt bei Ausführung von vielen Skripten (z.B. über PHP Module) enorm.
Jetzt die Warnhinweise: Dieses Feature experimentell und muss in den Spezialschaltern aktiviert werden. Erste Tests sind sehr vielversprechend und bisher haben wir keine Abstürze oder Nebenwirkungen berichtet bekommen. Wer also mitmachen will: Herzlich Willkommen beim Performance-Boost
Wie installiere ich das nun? -> OPcache in den Spezialschaltern aktivieren und dann den Dienst neu starten.
Ich habe es aktiviert. Funktioniert es überhaupt? Wo kann ich was gucken? Gibts ne coole Grafik?
-> Nall-Chan hat da was cooles vorbereitet: IP-Symcon Community Forum
paresy
PS: Alles über IPS_RunScriptText* ausgeführt wird, wird zur Zeit nicht gecached. Dazu gehören auch Ereignisse, welche direkt „SkriptText“ enthalten. Includes, welche innerhalb von diesem Kontext laufen, werden wiederum gecached
PPS: Ich freue mich besonders über vorher/nachher Vergleiche
Voll hatte ich noch nicht.
Aber wenn man im Hintergrund eine Datei ändert, kann es sein dass PHP das nicht sofort mitbekommt.
So war eine Debug-Ausgabe im Modul erst nach wenigen Sekunden aktiv.
Aber das kann man verschmerzen
Neuer Rekord, nachdem ich gestern ab 20:30 nichts mehr geändert habe; eine Hitrate von 92,85%
du sagtest ja die Timer etc. sind noch nicht aktiv.
Wenn dieses dann irgendwann auch mal im Cache landen, wirkt sich das positiv auf Polling aus?
Also wenn ich ein Gerät zum Beispiel alle x Sekunden polle um Informationen zu erhalten?
Mit PHP Modulen und Timern hat das nur indirekt was zu tun. Der PHP Modul Quellcode wird ja gecached, somit sollte das von der Performance her schon was bringen. Wenn du natürlich alle 100ms pollen willst, wird es trotzdem auf die Performance gehen, da der Code ja auch ausgeführt wird. Da hilft der beste Cache nichts
habe das mal aktiviert, werde berichten ob es was an der Stabilität ändert. Wie macht man denn vorher nachher Messungen fest an der CPU Last von einem Raspberry z.B. ?
Der erste Eindruck ist gut. Auslastung sinkt bei mir von 20% auf 10%.
Aber eine Nebenwirkung habe ich gefunden:
Wenn man im Skripteditor ein Programm verändert und es - ohne zu speichern - direkt ausführt, dann werden die Änderungen nicht berücksichtigt. Wenn man es dann erneut ausführt, dann sind die Änderungen wirksam.
@Bumaas: Ich denke ich werde die 2 Sek auf 0 reduzieren um eben diesen Effekt zu eliminieren. Das dürfe sich auch nur minimal auf die Performance auswirken…
Nein, hier liegt der Fall anders. Wenn ich direkt ausführen anwähle, dann speichert ja IPS und führt dann direkt aus. Als Anwender habe ich da keine Chance …