Ressourcenverbrauch durch Plugins

  • Hauptquelle für verlangsamung sind:


    - Langsame, nicht gecachte Datenbankabfragen
    - Unnötig häufige Datenbankabfragen
    - Datenbankabfragen, die nicht auf Schlüssel zielen


    - Datei-Operationen auf vielen Dateien
    - Datei-Operationen auf großen Dateien


    - Synchrone I/O Aufrufe (Dateien, Netzwerk, Internet), z.B. Abfragen einer externen API die langsam reagiert


    - Operationen mit hohem RAM-Verbrauch (Bilder resizen, erzeugen, bearbeiten u.s.w)


    Eher selten sind algorithmische Probleme bei Plugins Grund für Verlangsamungen. Natürlich kannst du auch bestimmte Dinge in einem Plugin ausrechnen - meist sind die Probleme allerdings mathematisch so einfach, dass du kaum polnomielle, geschweige denn exponentielle oder nicht-elementare Laufzeit hinbekommst.


    Es gibt also ein paar "red flags", die man schon bei der Beschreibung des Plugins sehen kann, um Anschließend zu prüfen, ob es diese Aufgaben auch anständig erledigt (s.o.).


    Konkret kann man z.B. das Slow-Query log überwachen sowie grundsätzlich auch mit geeigneten Tools die I/O Aktivitäten des Servers checken. Zuguterletzt bleibt natürlich immer noch eine Analyse des Quellcodes des Plugins.


    Eine Faustregel gibt es allerdings nicht. Wenn du nach einem einfachen Weg suchst, um auf den ersten Blick zu sagen, ob ein Plugin effizient ist, oder nicht, dann muss ich dich enttäuschen, denn den gibt es nicht. Dinge wie Paketgröße, Anzahl an Dateien o.ä. sind absolut nichtssagend.


    Dies betrifft nun zunächst die Performance des Servers. Plugins, die sich auch im Frontend einklinken können ggf. noch schlecht optimiert sein in bezug auf den Browser. Liefern sie z.B. unnötigerweise eigene CSS Dateien mit, die separat geladen werden müssen, anstatt LESS mitzuliefern, welches nicht nur besser wartbar ist und sich besser in den Stil einpassen lässt, sondern auch in eine einzige Datei gepackt wird, so ist natürlich auch das ein Malus, wenn auch ein wesentlich kleinerer als z.B. Slow-Queries, welche deinen Server ganz schön ins schwitzen bringen können. Andere Dinge sind z.B. nicht fürs Web optimierte Grafiken (wobei hier schon dadurch, dass WCF 2.0 von Haus aus Font Awesome mitliefert zumindest schonmal die Notwendigkeit für eigene Icons reduziert wird).

  • Ich bin ein Mensch, der immer viele Plugins / Erweiterungen etc. einsetzt. Im WBB 2.3.6 hatte ich ca. 255 Hacks drin, im WBB 3.1.8 hatte ich an die 300 drin und jetzt im WBB 4 habe ich ca. 155 drin. Ich finde die ganzen Erweiterungen einfach toll und installieren sie dann eben. Man merkt schon, dass sie das Forum verlangsamen. Muss man dann gucken wo man hostet. Ein schneller Server fängt das oft ab. Die Erfahrung habe ich zumindest gemacht. :)

  • Ein Forum mit Erweiterungen vollzukleistern ist meiner Erfahrung nach nicht gut. Erstens natürlich die Geschwindigkeit und zweitens entfernt sich dadurch auch das zentrale Thema des Forums. Daher wird bei mir demnächst auch umgebaut, allerdings komplette Umstellung der Software und viel weniger Schnickschnack ;) Im Testforum, schon komplett importiert läufts spürbar schneller. Obs an der Software oder den Plugins liegt? Kann ich noch nicht beurteilen.

  • Vielen Dank Netzwerg, für deine ausführliche Erläuterung. Da ist mir nun durchaus das Ein oder Andere klar geworden, worüber ich mir bisher eigentlich keine Gedanken gemacht habe :)


    Ich möcht nochmal auf die Möglichkeit eingehen, ein Plugin daraufhin zu überprüfen wie effizient es arbeitet (kann man das so sagen?) - Jenso hat das mit den Benchmarks eingeschoben. Ist das sinnvoll, diese im Live-Betrieb mal einzuschalten (z.B. nachts, wenn wenig Leute bei mir online sind) und einfach mal im Frontend alles durchklicken um die Ergebnisse unten zu sehen?


    Wenn ja, was sagen mir die Zahlen bzw. mit welchen Werten kann ich das vergleichen? Beispiel: Ich bekomme bei einem Plugin SQL queries: 10 angezeigt - wie kann ich nun entscheiden ob das zu viel ist oder ok ist ohne Erfahrung oder Know-How darüber zu haben?


    Mich würde das nämlich schon interessieren, diese Materie etwas genauer kennen zu lernen.

  • Ich möcht nochmal auf die Möglichkeit eingehen, ein Plugin daraufhin zu überprüfen wie effizient es arbeitet (kann man das so sagen?) - Jenso hat das mit den Benchmarks eingeschoben. Ist das sinnvoll, diese im Live-Betrieb mal einzuschalten (z.B. nachts, wenn wenig Leute bei mir online sind) und einfach mal im Frontend alles durchklicken um die Ergebnisse unten zu sehen?


    Du kannst den Benchmark-Modus auch mitten am Tag im Live-Betrieb einschalten. So einen großen Einfluss hat das nicht.


    Eine Faustregel gibt es nicht. 10 Queries können wesentlich effektiver sein als 1 Slow Query. Am besten ist es, die Werte zu beobachten und zu vergleichen. Viel wichtiger als die Anzahl der Queries ist die zeit, die diese brauchen (nun gut, bei 100 Queries mehr als üblich würde ich auch stutzig werden, auch das ist i.d.R. ineffizient).


    Außerdem gilt hier auch wieder der grundsatz: mach keine unnötige Pre-Optimierung. Wenn dein Forum schnell reagiert und gut läuft, dann gibt es auch keinen Grund zur Sorge. Wenn es nicht gut läuft, dann kannst du anfangen den Grund zu suchen, der wird beim Suchen dann meist auch schnell klar.


    Wenns schnell läuft, dann kannst du schließlich auch nichts finden, was es verlangsamt.

  • Hm, okay. Dachte nur, es sei mit Vorsicht zu genießen, weil das in der Beschreibung dabei steht, dass man es nicht im Live-Betrieb aktiviert haben sollte.


    Verstehe. Also mein Forum läuft bei mir sehr flüssig von daher hast du Recht, brauch ich mir darüber erst Gedanken machen, wenn es mal spürbar langsamer werden sollte ^^


    Danke Dir für deine Hilfe :)

  • Das ist totaler Quatsch, dass man mit vielen Plugins vom Forenthema abweicht. Hatte trotz 300 Plugins ein Forum mit 800 Beiträgen am Tag, wovon 500 mindestens thematisch waren und der Rest Fragen und Endlosthreads, Offtopic oder Spiele, von daher ist das völliger Quatsch! :)

  • Das war vielleicht bei Dir so. Insofern wäre es auch möglich, dass du zu (fiktive Zahlen) den 5 Foren unter 100 gehörst, wo es trotzdem läuft, daher ist deine Behauptung, dass es "völliger Quatsch" sei, ebenso "völliger Quatsch" :P