OPcache & APCu-Cache

Fragen zu PHP.
Fragen zu we:Tags bitte im Forum webEdition Templates erstellen (we:Tags) posten.
adrian
Senior Member
Beiträge: 129
Registriert: Di 30. Sep 2003, 20:05

OPcache & APCu-Cache

Beitragvon adrian » Di 20. Aug 2019, 17:12

Hallo zusammen,

in der Hoffnung ein etwas umfangreicheres webEdition Projekt zu beschleunigen, haben ich auf dem Server den OPcache und den APCu-Cache aktiviert, PHP läuft in Version 7.2. Da webEdition PHP basiert ist, dachte ich das hier automatisch ein caching der PHP Prozesse stattfindet und damit z.B. Listview-Abfragen schneller laufen. Das scheint jedoch nicht der Fall zu sein.

Daher generell erstmal die Frage, verstehe ich hier grundlegend etwas falsch? Oder sollten die Anfragen in webEdition durch diese beiden cachings eigentlich schneller laufen? Muss sonst hierfür etwas speziell angepasst werden?

Vielen Dank schon mal für Anregungen und Infos.

Beste Grüße
Adrian

mokraemer
Senior Member
Beiträge: 2854
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: OPcache & APCu-Cache

Beitragvon mokraemer » Di 20. Aug 2019, 19:52

du hast da ein grundlegendes Verständnis Problem.
Der PHP-OpCache ist idr. aktiv, kann aber zusätzlich parametriert werden. Dies sorgt dafür das PHP-Dateien schneller geparst und ausgeführt werden - idr. ist das nicht das Problem.
Der APC-Cache hat mal was ähnliches gemacht, was nicht mehr weiterentwickelt wird, jetzt stellt er, wie memcache(d) eine zentrale Instanz in die "per Hand" Daten geschrieben und daraus gelesen werden können. Da dies im Speicher geschieht idr. sehr schnell, aber mit allen Vor- und Nachteilen eines Caches.
Du schreibst ja bereits das es bei dir um listviews geht. Die Geschwindigkeit von LV's hängt fast immer von der DB, von der Komplexität der LV (auch der Art), den Daten (Netzwerk zw. DB/HTTP-Server) und der Datenmenge ab.
Ganz allgemein ist die Ursache für langsame LV's fast immer ein fehlender Index, weshalb die DB dann einen kompletten Table-Scan machen muß und das dauert eben. Falls ihr die DB selbst betreibt kommen auch ungünstige DB Parameter dazu.

Eine Lösung installieren und alles ist schneller gibt es nicht und kann es nicht geben, sonst würde man das ja gleich so machen :)
webEdition-Kern-Entwickler

adrian
Senior Member
Beiträge: 129
Registriert: Di 30. Sep 2003, 20:05

Re: OPcache & APCu-Cache

Beitragvon adrian » Mi 21. Aug 2019, 08:11

Hi Marc, vielen Dank für die ausführliche Erklärung. Jetzt kann ich das besser einordnen.
Das heißt, ich müsste mir die eingesetzten LVs ansehen und wonach diese gefiltert und sortiert werden. Dann könnte ich für die tblObject_s zusätzliche Indizes setzen, je nach Bedarf meiner LV abfragen. Häufig sind das ja z.B. ein Datumsfeld oder eine Headline, auch für die Sortierung der Ergebnisse. Soweit richtig?

Müssen diese Indizes nach webEdition Updates neu gesetzt werden oder bleiben die idR. erhalten?

Bei Dokumenten und der tblContent geht das nicht und macht auch keinen Sinn oder?

mokraemer
Senior Member
Beiträge: 2854
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: OPcache & APCu-Cache

Beitragvon mokraemer » Mi 21. Aug 2019, 18:31

Habt ihr Zugriff auf die DB? Also betreut ihr die DB selbst?
Das ist nämlich der beste Ansaztpunkt - dann aktiviert man dort das Slow-Query-Log, der nennt einem die fraglichen Queries und wenn aktiviert sieht man auch welche Indices er nutzt (ich hatte schon mal überlegt so ein Log in WE selbst zu bauen, da viele vermutlich keinen Zugriff auf die Slow Logs haben - mach doch mal einen FR - sollte eigentlich keine große Sache sein).
Häufig helfen zusätzliche Kriterien die LV zu beschleunigen, weil da evtl. ein Index drauf ist. Von Haus aus liefern wir schon einige Indices mit - was dann idr. auf meine Überwachung der zutrifft, welche ich als allgemein sinnvoll erachte. Aber sicherlich gibt es Abfragen wo Indices fehlen an die ich nicht gedacht habe. Wenn ihr da was findet, schaue ich mir das gerne an und dann kann man das evtl. auch übernehmen (in tblFile sind vermutlich zu wenige Spalten indiziert).
Bei der tblContent sollte eigentlich der Feldname das ganze schon gut zusammendampfen, sodaß man dann keinen Index mehr auf den Daten brauchen sollte.
Bei den Objekten sind fast nur Spalten aus der tblObjectFiles indiziert, und sonst nur die relevanten Spalten für Object-Verweise - hier ist es auch unmöglich was anderes zu machen.

Eigene Indices werden idr. beim Update erhalten, wenn sie keinen Namen haben den wir schon mal benutzt haben und dann beim Update geändert/gelöscht werden ;) Wir haben hier (bisher) leider kein WE-Präfix davor.
webEdition-Kern-Entwickler

adrian
Senior Member
Beiträge: 129
Registriert: Di 30. Sep 2003, 20:05

Re: OPcache & APCu-Cache

Beitragvon adrian » Mi 21. Aug 2019, 18:44

Wir betreuen die DB nicht selbst, aber ich kann über den Provider sicherlich eine Slow-Query-Log zu bekommen. Das ist ein eigener Server.
FR dazu hab ich mal mit angelegt.

Als weitern FR könnten ich mir dan noch vorstellen, dass man für Objekte evtl. in der Klasse beim jeweiligen Feld ein Index mit setzen zu können? Dann wäre das auch über das Backend steuerbar. Was meinst du?

mokraemer
Senior Member
Beiträge: 2854
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: OPcache & APCu-Cache

Beitragvon mokraemer » Mi 21. Aug 2019, 18:49

Indices sind komplex. Es macht ja nur Sinn wenn man mehrere Spalten angeben kann. Einfach pro Spalte ein Index ist eher hinderlich. Und es gibt auch Spalten auf denen man keinen Index so einfach setzen kann - bspw. Text/varchar - da spielt dann auch die zu indizierende Länge eine Rolle, sonst dauert die Suche im Index länger als die Tabelle zu durchsuchen. Man kann sich damit wunderbar ins Knie schießen - ich hab bei mir eine Tabelle, da ist der Index 3x so groß wie die Daten - das ist aber eine echte Ausnahme - und hier macht es sogar Sinn.
webEdition-Kern-Entwickler

mokraemer
Senior Member
Beiträge: 2854
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: OPcache & APCu-Cache

Beitragvon mokraemer » Mi 21. Aug 2019, 19:42

Slow log ist drin. Hoffe das quillt dann nicht über. Ist unter Fehlerbehandlung zu finden.
=> log+analyse kostet natürlich etwas mehr Zeit, wenn es zuschlägt. Wenn er nix findet, kostet es nix.
webEdition-Kern-Entwickler

adrian
Senior Member
Beiträge: 129
Registriert: Di 30. Sep 2003, 20:05

Re: OPcache & APCu-Cache

Beitragvon adrian » Do 22. Aug 2019, 07:47

Vielen Dank für die Infos und die schnelle Integration. Ich schau es mir an und melde mich noch mal, falls Fragen auftreten. :D


Zurück zu „PHP“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast