Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
#76 18. April 2013 17:45
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
gerade geschaut, die parent_id ist stets grösser=1 (oder -1 im root) keine Null, keine -2 etc. dabei
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#77 19. April 2013 11:10
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Dann ist die Wahrscheinlichkeit hoch das Bestandteile vom Menumanager innerhalb des Menütemplates erneut aufgerufen werden.
Das führt entweder zu einem solchen Fehler in der Art :
Maximum function nesting level of '100' reached, aborting! in /mnt/sdb1/jan/www/cmsms/lib/classes/class.moduleoperations.inc.php on line 1076
(32 GB RAM Server - memory_limit = unbegrenzt, Seitenvolumen = Demodaten)
oder bereits vorher zu einem Abpfiff wegen Speicherüberlaufs.
Beitrag geändert von czarnowski (19. April 2013 11:50)
Offline
#78 19. April 2013 12:43
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Mal laut gedacht, ließe sich das Problem nicht mit Powermenu beheben?
Den fehlenden Support für Pretty URLs könnte man doch mit den entsprechenden Einstellungen, dem Auslesen der Spalte URL (listcontent.php) und ein bißchen .htaccess ersetzen.
Oder sehe ich da als Programmier-Laie zu einfach?
Offline
#79 19. April 2013 14:32
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Also ich habe mir mal zu Testzwecken ein Script geschrieben welches mehrere tausend Seiten in CMSms anlegt. Dazu wird ausschließlich die API von CMSms verwendet. (Unter normalen Bedingungen schafft CMSms lokal übrigens nur ca. 200-300 Seiten bevor der RAM oder das Zeitlimit aufgebraucht ist. Musste das Script mehrmals starten bzw. meine Servereinstellungen anpassen ... bei 1024MB und 300Sekunden hat es schließlich in einem Rutsch geklappt)
Resultat: Im Frontend konnte das Standard Template (NCleanBlue) problemlos angezeigt werden. Das ist deshalb gut zu wissen, weil es das CSS Menu verwendet bei dem ja alle Seiten ausgelesen werden müssen, um das CSS Menu überhaupt erstellen zu können.
Ich bin nur bis zu 40 Hierarchie-Ebenen gekommen. Bei allem was in der Tiefe über 40 liegt wird die Seite einfach der letzten Seite der 39. Hierarchie untergeordnet. Keine Ahnung, ob das von CMSms aus oder von der DB aus limitiert wurde. Soll auch egal sein.
Als Seiteninhalt habe ich 4-5 mal den Demotext der Startseite eingefügt.
Jedenfalls konnte ich mir im Backend den Seitenbaum nicht vollständig ausgeklappt anschauen. Im Frontend via MenuManager oder als Sitemap schon.
Das Bearbeiten von Seiten ging erstaunlicherweise auch. (auch wenn ein Parent-Dropdown mit ca. 2000 Einträgen schlichtweg die Hölle ist)
Getestet habe ich lokal unter PHP 5.4 und CMSms 1.11.5 mit 64MB Ram und 30Sekunden Script-Ausführungszeit.
Das ganze läuft verdächtig langsam. Aber es läuft.
Also wird es bei @mike-r wohl an der DB und/oder der Anzahl der Seitenbesucher liegen, oder?
Ich glaube jedenfalls nicht, dass es allein am PHP Script bzw. der Menge der Seiten oder Servereinstellungen liegt.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#80 19. April 2013 15:06
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Nun wird es in der Praxis so sein das nicht viele 1 GB RAM auf dem Server als memory_limit haben und man hat schon gar nicht 300 Sekunden Zeit.
Wer mal den RAM Verbrauch bei den Demodaten über das Defaultscruot des MM checkt stellt fest das alle CSS Menüs (also die Klappvarianten) um die 1,5 MB verballern, die simplen Menüs um die 265 KB.
Dir Ursache ist klar - die verwendete Technik der Aufbereitung.
Auf der anderen Seite wird immer gerne übersehen das Speed or not Speed eine direkte Frage des RAM Verbrauches ist - völlig egal was man zur Verfügung hat.
Je mehr RAM verbraucht wird desto langsamer wird das ganze.
Dabei sollte man aber mit AB oder ähnlichen Methoden testen und nicht einmal eine Seite aufrufen.
Um einen Menüeintrag erzeugen zu können werden pro Seite deutlich weniger als 100 Bytes pro Seite benötigt.
Offline
#81 19. April 2013 20:03
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Nun wird es in der Praxis so sein das nicht viele 1 GB RAM auf dem Server als memory_limit haben und man hat schon gar nicht 300 Sekunden Zeit.
Und? Ich wollte doch nur mal paar tausend Seiten erstellen.
Einen solchen Fall findet man ohnehin nie in der Praxis.
Das Betrachten der Seiten hat ja unter halbwegs normalen Bedingungen (64MB Ram und 30 Sekunden Zeitlimit) funktioniert. Zwar etwas lahm, aber es ging. In der Praxis wird man ja auch niemals ein Menü mit mehreren tausend Seiten anzeigen wollen - war halt nur ein Test, wie weit man mit CMSms gehen kann. Ich kann mir daher einfach nicht vorstellen, dass es einfach nur an der Menge der Seiten liegt.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#82 19. April 2013 20:18
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Ich kann mir daher einfach nicht vorstellen, dass es einfach nur an der Menge der Seiten liegt.
Nunja, ich habe das Problem vorerst entschärft, indem ich einen Hauptpunkt aus dem Menü entfernt habe. Dass ich dabei ausgerechnet den Punkt mit inkosistenten Daten sonstwo erwischt habe, bezweifle ich, ich vermute ich bin nur gerade so unterhalb des Limits gerutscht
Mal schauen, muss das mal noch ausgiebig testen, ob es so jetzt wirklich läuft.
P.s. Die (komplette) Sitemap im Frontend konnte ich bisher (ab 64MB) übrigens auch aufrufen cssmenu hingegen ging nicht. Müsste ich zur Verifizierung nochmal mit dem jetzt fehlenden Zweig testen.
Beitrag geändert von mike-r (19. April 2013 20:19)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#83 20. April 2013 12:06
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
mit mehreren tausend
Das ist richtig dennoch muss man wissen das alle verfügbaren Seiten von den benötigten Informationen her geladen und intern verarbeitet werden.
Das kann zu einem grundsätzlichen Problem werden was Leistung betrifft.
In harten Fällen ist da ein Universalmodul oder auch Plugin weniger gut bis überhaupt nicht geeignet - da muss man schauen ob eine individuelle Anpassung möglich wäre die etwas bringt.
Jeder Aufruf von menu bedingt eine neue Modulinstanz was wiederum bedeutet - es läuft soweit intern alles nochmals durch.
Dann kann es tragisch werden.
Der MM ist der größte eingebaute Speicherfresser und gleichzeitig auch die größte Performancebremse.
Tatsächlich sieht die Performance mancher Titel bei einer großen Anzahl von aktiven Seiten völlig anderes aus als hier an anderer Stelle gezeigt - bei manchen Titeln ändert sich sehr wenig bei einigen ist der Rang komplett im Eimer und man hat auf einmal die Schlusslaterne in der Hand.
So auch bei Cmsms - wird in einem solchen Test z.B. von Typo3 einfach abgehängt.
Das Problem - viele Anwender mit 10..30 Seiten bemerken das nicht, da reicht es normal aus.
Damit aber ist das Thema aber auch schnell aus dem Fokus der Entwickler und es passiert nichts, wie man rückwirkend über viele Jahre feststellen kann.
Die Anwender mit 10..30 Seiten sind aber keineswegs die typischen Anwender eines CMS stellen aber bei cmsms möglicherweise die Masse dar.
Vielleicht ändert sich das ja mit der kommenden Serie 2.
Offline
#84 22. August 2013 19:23
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: Fatal error: Allowed memory size of 33554432 bytes exhausted
Wie dem einen oder anderen im powermenu-thread aufgefallen sein mag, bin ich immer noch (oder mal wieder) an dem Problem dran.
Überlesen hab ich demletzt(TM) wohl, dass powermenu keine pretty-urls mag ... das passt mir nun garnich.
Ich hätte mal gern noch einen weiteren Ansatz:
ich hatte überlegt mir mit site_mapper irgendwie ein Menü zu stricken, schau ich so nach den Optionen und sehe, dass der eigentlich identisch zu menu ist. Mit einem Unterschied: in der Tagliste steht "zwischenspeicherbar".
Effekt:
aktives {menu}: leere Seite im Backend
aktives {sitemapper}: langsam (8seks) aber lädt.
Mal schauen ob und wie lang das hält ich bin wenig optimistisch.
Ich hätte mal gern noch ne Idee:
Ich würde gern den Menumanager im Backend beim bearbeiten von Seiten deaktivieren. Ich meine ich hätte schon mal danach gefragt: kann man den Menumanager (bzw. den Aufruf von {menu} im Seitentemplate) nicht irgendwie im Backend deaktivieren? Wozu braucht man den egtl. dort?
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline