Hallo,
erstmal Hallo Nett, das es dieses Forum gibt und das es auch Leute hier hat, die Wissen haben.
Programmiere seit ewigen Zeiten(gut 40Jahren) procedural etliche Programmiersprachen, d.h. komme bis jetzt noch prima damit aus(Will da auch nix mehr dran ändern). Administriere Mysql-DB im kleinen Rahmen seit ca.10 Jahren. Soviel zu Vorkenntnissen; Ergo kein totaler Frischling
Habe Probleme bei einem kleinen Proggi in PHP, Version 7.3.11, OS=Debian 4.9.168-1+deb9u5 (2019-08-11) x86_64, HW=amd64 mit MariaDB 10.1.41, für mich entdeckt und hoffe auf ein paar Tipps.
Da ich grundsätzlich nicht die Funktionalitäten der benutzten Produkte in Frage stellen möchte, halte ich mich mit sinnfreien Behauptungen zurück
Projekt Belastungstest:
Ich erzeuge über eine 4-fache For-Schleife 4-stellige Passwörter aus 62 unterschiedlichen Zeichen(A..Z, a--z, 0..9) und schreibe diese nebst md5 und crypt hash auf die Platte. Ergo sollten ca. 62*63*63*63 Passwörter erzeugt werden können.
Wenn das funzt, gebe ich noch eine For-Schleife dazu für 5-stellige Passwörterm falls es nöig ist an die 500GB-Grenze zu kommen.
Problem 1) Spätestend ist immer bei 214000 bis 217000 Inserts(d.h. neuen Datensätzen) ist schluß. Was könnte die Ursache sein? 8 Kerne, Memory 16GB auf Maschine, davon benutzt ca. max 650MB bei zu Verfügung stehend min 730MB Ram für PHP.
Problem 2) Bei bereits vorhandenen Daten: Angenommen das Passwort(Unique indiziert) existiert schon, so wird jedoch öfters, trotz binären Vergleiches, ein SQL-Statement erzeugt, welches gerne das gefundene Passwort nochmal inserten möchte(Passiert beim Durchlauf des Scriptes, dann springt das Programm zu früh aus For-Schleife(Welche ist nicht nachvollziehbar)) und die , auch guten Values aus dem Insert, werden nicht eingefügt. Es darf angenommen werden, das im Code kein Fehler vorliegt(Habe mich schon mehrere Tage mit unterschiedlichen Programmversionen diesbzgl. beschäftigt). Beim Durchlauf mit je einem Insert-Datensatz klappt es bis zur 217000der Grenze fehlerfrei. Bei Inserts mit mehreren Values, getestet von 2 bis 1000 Sätzen je Insert. Es werden nicht gefundene Passwörter in der DB benutzt(Zumindest erfolgt eine korrekte Abfrage). Bei Fehlern ergibt die Nachforschung, das einige bereits vorhandene Passwörter im Insert mit drinnen sind. Mittels HeidiSql gecheckt. Unter welchen Umständen kann sowas passieren?
Wenn es jemanden interessiert stelle ich gerne den Code zur Verfügung. Muss den dann erstmal schön machen bevor ich den zeigen kann.
Das Problen ist irgendwie merkwürdig und ich würde es erstmal nicht glauben, wenn es mir selbst nicht passiert wäre.
Har schonmal jemand von solchen oder ähnlichen Problemen gehört oder Erfahrungen damit?
Bevor nun jemand auf die Idee kommt, warum ich so ein Zeugs in eine DB klopfe ist ganz einfach. Ich möchte anhand eigener Daten selbst herausfinden, wie sehr mein Server belastet wird mit massig Anfragen auf grosse Datenbanken. Dazu werde ich mir noch einiges einfallen lassen, um herauszufinden, was er so verträgt und was noch im Rahmen ist, um noch akzeptabel meine Webseiten abrufen zu können Interessiert mich derzeit dafür.
Gruß Joe
erstmal Hallo Nett, das es dieses Forum gibt und das es auch Leute hier hat, die Wissen haben.
Programmiere seit ewigen Zeiten(gut 40Jahren) procedural etliche Programmiersprachen, d.h. komme bis jetzt noch prima damit aus(Will da auch nix mehr dran ändern). Administriere Mysql-DB im kleinen Rahmen seit ca.10 Jahren. Soviel zu Vorkenntnissen; Ergo kein totaler Frischling
Habe Probleme bei einem kleinen Proggi in PHP, Version 7.3.11, OS=Debian 4.9.168-1+deb9u5 (2019-08-11) x86_64, HW=amd64 mit MariaDB 10.1.41, für mich entdeckt und hoffe auf ein paar Tipps.
Da ich grundsätzlich nicht die Funktionalitäten der benutzten Produkte in Frage stellen möchte, halte ich mich mit sinnfreien Behauptungen zurück
Projekt Belastungstest:
Ich erzeuge über eine 4-fache For-Schleife 4-stellige Passwörter aus 62 unterschiedlichen Zeichen(A..Z, a--z, 0..9) und schreibe diese nebst md5 und crypt hash auf die Platte. Ergo sollten ca. 62*63*63*63 Passwörter erzeugt werden können.
Wenn das funzt, gebe ich noch eine For-Schleife dazu für 5-stellige Passwörterm falls es nöig ist an die 500GB-Grenze zu kommen.
Problem 1) Spätestend ist immer bei 214000 bis 217000 Inserts(d.h. neuen Datensätzen) ist schluß. Was könnte die Ursache sein? 8 Kerne, Memory 16GB auf Maschine, davon benutzt ca. max 650MB bei zu Verfügung stehend min 730MB Ram für PHP.
Problem 2) Bei bereits vorhandenen Daten: Angenommen das Passwort(Unique indiziert) existiert schon, so wird jedoch öfters, trotz binären Vergleiches, ein SQL-Statement erzeugt, welches gerne das gefundene Passwort nochmal inserten möchte(Passiert beim Durchlauf des Scriptes, dann springt das Programm zu früh aus For-Schleife(Welche ist nicht nachvollziehbar)) und die , auch guten Values aus dem Insert, werden nicht eingefügt. Es darf angenommen werden, das im Code kein Fehler vorliegt(Habe mich schon mehrere Tage mit unterschiedlichen Programmversionen diesbzgl. beschäftigt). Beim Durchlauf mit je einem Insert-Datensatz klappt es bis zur 217000der Grenze fehlerfrei. Bei Inserts mit mehreren Values, getestet von 2 bis 1000 Sätzen je Insert. Es werden nicht gefundene Passwörter in der DB benutzt(Zumindest erfolgt eine korrekte Abfrage). Bei Fehlern ergibt die Nachforschung, das einige bereits vorhandene Passwörter im Insert mit drinnen sind. Mittels HeidiSql gecheckt. Unter welchen Umständen kann sowas passieren?
Wenn es jemanden interessiert stelle ich gerne den Code zur Verfügung. Muss den dann erstmal schön machen bevor ich den zeigen kann.
Das Problen ist irgendwie merkwürdig und ich würde es erstmal nicht glauben, wenn es mir selbst nicht passiert wäre.
Har schonmal jemand von solchen oder ähnlichen Problemen gehört oder Erfahrungen damit?
Bevor nun jemand auf die Idee kommt, warum ich so ein Zeugs in eine DB klopfe ist ganz einfach. Ich möchte anhand eigener Daten selbst herausfinden, wie sehr mein Server belastet wird mit massig Anfragen auf grosse Datenbanken. Dazu werde ich mir noch einiges einfallen lassen, um herauszufinden, was er so verträgt und was noch im Rahmen ist, um noch akzeptabel meine Webseiten abrufen zu können Interessiert mich derzeit dafür.
Gruß Joe
Kommentar