[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • yrewrite: Allowed memory size exhausted
Seite 1 von 1

yrewrite: Allowed memory size exhausted

Verfasst: 6. Jan 2017, 22:32
von zockerwurf
Hallo zusammen

Ich bin an einem Projekt dran, bei welchem ich mit sehr vielen Datensätzen in den Datenbanken arbeiten muss (ca. 120'000 Einträge pro DB). Dabei habe ich mittels yrewrite und url eine Ausgabe für jeden Beitrag auf einer Seite - abhängig von der Linkendung. (Bsp: xyz.de/detail/dies-ist-ein-beispiel)

Seit dem Import der vielen Daten kommt auf jeder Seite ein Error 500. Im Systemlog steht:

Code: Alles auswählen

Fatal error	Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes)	
redaxo/src/addons/yrewrite/lib/scheme.php
Wie ihr seht ist das memory limit bereits sehr hoch eingestellt. Gibt es noch eine andere Lösung, als dieses Limit weiter nach oben zu schrauben? Wieso braucht das yrewrite so viel Speicher?

Re: yrewrite: Allowed memory size exhausted

Verfasst: 7. Jan 2017, 11:21
von alexplus
Die Frage gab's glaube ich schon mal im Redaxo Slack-Channel.

Wenn ich mich nicht täusche, ging es dabei um die ressourcenhungrige Generierung der Pathlist, Sitemap und dergleichen. Da steigen YRewrite + URL bei 120.000 Datensätzen wohl aus. Leider finde ich dazu die Diskussion mehr.

Wenn man das umgehen will, könnte man bspw. statt dem URL-Plugin die Zielseite klassisch als GET-Parameter übergeben.

Re: yrewrite: Allowed memory size exhausted

Verfasst: 8. Jan 2017, 15:56
von zockerwurf
Vielen Dank für den Input. Leider sieht mit dem GET-Parameter der Link halt nicht ganz so schön aus. Oder gibt es trotzdem eine Möglichkeit mittels GET, aus dem Link "xyz.de/dies-ist-ein-eintrag" den letzten Teil als "Parameter" auszulesen?
Hatte schon gehofft, dass es da eine Möglichkeit gibt, das Problem allenfalls andersweitig zu umgehen.

Re: yrewrite: Allowed memory size exhausted

Verfasst: 8. Jan 2017, 16:26
von alexplus
Eine eigene Rewrite-Regel in der .htaccess sollte dazu ausreichen.

Re: yrewrite: Allowed memory size exhausted

Verfasst: 8. Jan 2017, 23:30
von Markus.Staab
Könntest du mit blackfire messen wo genau der ganze speicher hingeht?

Re: yrewrite: Allowed memory size exhausted

Verfasst: 9. Jan 2017, 09:03
von zockerwurf
Markus.Staab hat geschrieben:Könntest du mit blackfire messen wo genau der ganze speicher hingeht?
Wie mache ich das am einfachsten?

Re: yrewrite: Allowed memory size exhausted

Verfasst: 9. Jan 2017, 09:04
von zockerwurf
alexplus hat geschrieben:Eine eigene Rewrite-Regel in der .htaccess sollte dazu ausreichen.
Und diese Regel kann ich problemlos zum Rewrite-Addon verwenden? Das Addon ignoriert dann meine 120'000 Einträge? Oder würde das trotzdem eine Deaktivierung dieses Addons erfordern.

Re: yrewrite: Allowed memory size exhausted

Verfasst: 9. Jan 2017, 22:28
von Markus.Staab
Bist du auf dem redaxo tag dieses Wochenende?

Doku zu blackfire https://blackfire.io/docs/introduction

Re: yrewrite: Allowed memory size exhausted

Verfasst: 10. Jan 2017, 21:35
von zockerwurf
Markus.Staab hat geschrieben:Bist du auf dem redaxo tag dieses Wochenende?

Doku zu blackfire https://blackfire.io/docs/introduction
Habe bis anhin gar nicht gewusst, dass es sowas gibt. Leider jetzt zu kurzfristig....

Werde mich da mal einlesen

Re: yrewrite: Allowed memory size exhausted

Verfasst: 13. Jan 2017, 17:06
von zockerwurf
Hmm... Habe in der Zwischenzeit schon mal das Memory Limit hochgeschraubt (512mb), jetzt kommt einfach diese Fehlermeldung:

Code: Alles auswählen

Allowed memory size of 536870912 bytes exhausted (tried to allocate 82 bytes)	
redaxo/src/core/lib/util/file.php
Da scheint offensichtlich wirklich irgendetwas nicht gut zu sein, dass so viel Speicherplatz verbraucht wird!?

Re: yrewrite: Allowed memory size exhausted

Verfasst: 23. Jan 2017, 13:45
von alexplus
Nochmal der Hinweis: Ich würde dafür nicht das URL-Addon nehmen und in Kauf nehmen, dass eben keine Sitemap.xml mit 120.000 Datensätzen generiert wird.

Schöne URLs kannst du ggf. auch mit einer .htaccess-Lösung und rex_request() erreichen, indem dein Modul / Tempalte dann selbst in der Datenbank nach der ID zur URL sucht.

Genauere Hilfe dazu bekommst du sicherlich im Redaxo Slack-Channel http://redaxo.org/slack/