Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tl_content mit vielen Einträgen sprengt Speicherlimit #163

Open
HellPat opened this issue Oct 8, 2013 · 25 comments
Open

tl_content mit vielen Einträgen sprengt Speicherlimit #163

HellPat opened this issue Oct 8, 2013 · 25 comments

Comments

@HellPat
Copy link

HellPat commented Oct 8, 2013

releated to #102

Ich kann alles synchronisieren solange ich die Tabelle tl_content ausnehmen.

@andreasisaak Habt ihr eine Idee?

@stefanheimes
Copy link
Member

Moin,

ich hab da einen verdacht. Ich werde es die Tage einmal überprüfen und ein Update für die Dev Version erstellen.

@HellPat
Copy link
Author

HellPat commented Oct 23, 2013

Dankeschön. Magst du den Verdacht trotzdem noch mitteilen? Melde dich einfach wenn du jemand zum testen brauchst.

@stefanheimes
Copy link
Member

Ah sorry.

Also die Funktionen für den DB Export zeiht sich immer maximal 500 Datensätze aus der DB. Nun kann es aber sein das 500 Datensätze schon zu viel sind. Daher werde ich das Limit, wie viele Datensätze auf einmal bearbeitet werden, konfigurierbar machen. Somit kann dann jeder selbst das Limit einstellen.

Zwar wir dann die Laufzeit vom Script länger aber das kann ich dann auch nicht mehr ändern, dann muss jeder ein bissel rum Spielen bis die Optimale Einstellung gefunden wurde.

stefanheimes added a commit that referenced this issue Oct 24, 2013
…user to change the query limit from a database update or synchronization. See #163
@HellPat
Copy link
Author

HellPat commented Oct 24, 2013

Ich teste das entweder heute Nachmittag oder morgen Vormittag.
Das mit dem herumspielen finde ich nicht schlimm.

👍

@stefanheimes
Copy link
Member

So, du kannst gerne die Dev Version einmal testen.
Die neue Einstellung ist hier zu finden:

  • Unter Synchronisation => Konfiguration, links im Menü
  • Unten auf der Seite "Experten-Einstellungen aktivieren" anklicken.
  • Im neuen Feld "Datenbank Abfragelimit" eine kleiner Zahl eingeben.

Wie gesagt, müsstest du hier bissel testen 250 oder 100. Das sollte den Speicher schonen. Allerdings wird dann die Ausführungszeit nach oben gehen.

Generell ist zu sagen, wenn mehr Speicher zu Verfügung steht sollte der Wert nach oben gestellt werden. Ist wenig Speicher verfügbar sollte der Wert nach unten korrigiert werden. Allerdings müsste dann die max_execution_time nach oben hin angepasst werde. Diese Problem ist halt Bestandteil von Script Sprachen.

Beispiel:
tl_content => 10.000 Einträge
tl_article => 1.500 Einträge
tl_page => 1.000 Einträge

Datenbank Abfragelimit: 5.000.000

  • Speicher verbrauch: 600MB
  • Zeit: 80 Sekunden

Datenbank Abfragelimit: 1

  • Speicher verbrauch: 23MB
  • Zeit: 600 Sekunden

@andreasisaak
Copy link
Contributor

Gibts da Erkenntnisse? Ich würde das Ticket gerne abschließen und eine neue Version im ER veröffentlichen.

@HellPat
Copy link
Author

HellPat commented Oct 25, 2013

Bin im Moment dran

@HellPat
Copy link
Author

HellPat commented Oct 25, 2013

Mhh bisher kein Erfolg. Ich muss wohl noch ein bisschen mit den Einstellungen rumspielen.

@HellPat
Copy link
Author

HellPat commented Oct 25, 2013

Okay... muss euch leider enttäuschen. Mein Test dauert noch ein Weilchen. Ich glaube ich habe ausversehen mit zu vielen Anfragen die Firewall nervös gemacht. Host mal anbetteln dass er den Server in die Whitelist packt...

@stefanheimes
Copy link
Member

Dann kannst ja noch frage ob er die Laufzeit vom PHP hoch setzte kann. Dann hast da vielleicht mehr Luft.

@stefanheimes
Copy link
Member

@psren Neue Erkenntnisse ?

@HellPat
Copy link
Author

HellPat commented Oct 28, 2013

Ich bekomme ein "gateway error 504". Hab nun beim Host ne längere Laufzeit angefordert.

@andreasisaak
Copy link
Contributor

Ich verstehe das du dringend eine Lösung brauchst, ich würde nur gerne trotzdem wissen wie wir das Problem langfristig lösen können.

@HellPat
Copy link
Author

HellPat commented Oct 28, 2013

Mhh. Wie kann ich euch helfen?

@HellPat
Copy link
Author

HellPat commented Oct 28, 2013

Also mit 22 bei Abfragelimit bekomme ich einen 504
Mit 23 als Abfragelimit bekomme ich

Fatal error: Allowed memory size of 209715200 bytes exhausted (tried to allocate 421560482 bytes) in /cms-staging/system/modules/syncCto/SyncCtoDatabase.php on line 545

Das kommt mir aber allgemein irgendwie wenig vor. Nur hier ist die Grenze zwischen den zwei verschiedenen Fehlermeldungen.

@andreasisaak
Copy link
Contributor

Na ja wenig ist das nicht. Sind ja immerhin 200 MB an Speicher.

@andreasisaak
Copy link
Contributor

Können wir denn irgendwie Zugriff zum System bekommen?

@HellPat
Copy link
Author

HellPat commented Oct 28, 2013

Das wenig war eher auf die 22/23 Abfragelimit bezogen.
Klar. Was braucht ihr alles?

@stefanheimes
Copy link
Member

Moin,

ich werde gleich ein neuen Commit hochschieben. Es gab noch ein Problem mit dem XML Writer.

Dieser gibt seinen Speicherverbrauch nicht aus mit memory_get_usages. Dadurch konnte ich den Speicher nicht richtig berechnen und hatte am Schluss dann eine 400MB große XML Datei, die ich auf einmal versucht habe zu speichern.

Ich hab es nun ein bissel umgeschrieben und leere den Speicher öfters ohne dabei den Speicher auf den Verbrauch zu prüfen. Dadurch wird die Laufzeit zwar etwas länger, allerdings kann ich nun 1500 Abfragen auf einmal verarbeiten mir ~140MB Speicherauslastung. Bei 3000 Abfragen komm ich dann auf ~200MB.
Ich hab es dabei mit einer DB geprüft die 40500 Einträge in der tl_content hat. Das Problem hierbei ist aber nun das ich eine Laufzeit von ca. ~170 Sekunden habe.

Wenn du testet benutzt ruhig 1000 - 1500 Abfragen am Anfang. Der Speicher sollte das nun besser verkraften.
Bei 23 Abfragen rennt dir das System Stunden, wenn es nicht in eine Exception rennt.

@HellPat
Copy link
Author

HellPat commented Oct 29, 2013

Schau ich gleich an.

@HellPat
Copy link
Author

HellPat commented Oct 29, 2013

Okay. Eine gute und eine schlechte Nachricht.

Gut: Der Fehler wie er bisher war ist weg.
Schlecht:

Schritt 2 sagt jetzt das hier:

Abgleich der Datenbank.

Could not find start or endtag from response.

tl_files/syncCto_backups ist nicht vorhanden, obwohl debug-Modus aktiviert ist.
Was kann das nun bedeuten? Falls es für euch geschickter ist: Login habe ich an Andreas geschickt.

@andreasisaak
Copy link
Contributor

Schauen wir uns morgen mal auf deinem System an.

@HellPat
Copy link
Author

HellPat commented Nov 5, 2013

Und habt ihr hier irgendwelche neuen Erkenntnisse?

@andreasisaak
Copy link
Contributor

Bisher hatten wir noch keine Zeit da reinzuschauen.

@HellPat
Copy link
Author

HellPat commented Nov 5, 2013

Kein Problem. Falls ihr noch was benötigt sagt Bescheid :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants