![]() |
PHP MySql sehr langsam nach Server wechsel
Hallo ich bräuchte Hilfe,
ich möchte von einem alten Win2003 Server (Baujahr 2004 "IBM xSeries226") auf einen neuen Ubuntu 18.04 server (Baujahr 2012 "IBM x3500 M4") wechseln. Der neue Server ist auch schon installiert (alles selbst installiert) -Ubuntu 18.04 LTS -Apache2 -PHP 5.6 -Mysql 5.7.25-0ubuntu0.18.04.2 Bis hier hin erst mal alles okay und arbeitet auch alles. Jetzt kommt das Problem: Wenn ich Daten importieren oder Abfragen machen möchte ist der neue Server super langsam wenn es über PHP läuft. Ich hab jetzt schon ein paar Wochen lang gegoogelt und viele dinge ausprobiert, aber jetzt weis nicht mehr weiter. hier die beiden Server im vergleich: Import ohne PHP direkt über die Mysql Console alter Server: 5,8 Sekunden neuer Server: 2,5 Sekunden Wenn ich das gleiche über php mache: Alter Server: 58 Sekunden neuer Server: nach 5 Minuten bricht phpMyAdmin ab und hat gerade mal 9.500 Datensätze von 80.000 importiert Daher tippe ich auch auf ein Problem mit PHP info: Error log von php/mysql war immer leer (nichts dazu gekommen nach einem Testlauf) Was ich bis her versucht habe: -Server erneut installiert (auch zwischen durch immer wieder mal, nach vielem installieren und deinstallieren) -php7.2 -php5.6 -MariaDB -MysqlDB -Die php.ini Datei beider Server verglichen (war aber alles gleich) -Arbeitsspeicher für PHP und Mysql erhöht -unterschiedliche phpMyAdmin Version probiert. -das oben genannte in verschiedenen Kombinationen versucht Mir fällt nichts mehr ein. Der neue Server ist von der Hardware X mal schneller als der alte Server. (auch der System Monitor zeigte wenn max eine Auslastung von 1,5 bis 2,5 % der CPU an, der alte hat da schon eher 25% der CPU genutzt. Daher vermute ich eine Einstellungssache) Wo könnte ich anfangen zu suchen. Oder hat jemand das auch schon mal gehabt und kann mir sagen was das Problem ist. Für Ideen und Tipps währe ich echt dankbar. |
phpMyAdmin eignet sich auch nicht wirklich für große Imports. Mach sowas besser auf der Command Line.
|
Hallo danke für die Antwort :-)
das hab ich auch schon probiert .. über nein eigenes geschriebenes script zum import! Mein Script über die Shell aufgerufen: alter Server: 58 Sekunden neuer Server: nach 1 Stunde abgebrochen "von mir" und immer noch nich alles importiert wollte das (mein Script) extra weg lassen. Um zu Zeigen das ich keine doofen Programmier fehler gemacht habe und hab es ja auch über verschiedene PHP wie phpMyAdmin versionen versucht. der Alte server war immer in max 1 Minute mit der Datei fertig der neue Server .. noch nich mal na 1 Stunde. (außnahme direkt über die mysql shell) Aber greiffe halt nun mal über PHP auf die Datenbank zu. |
Wie sieht die CPU- und Speicherauslastung aus?
|
Hallo die Auslastung sieht so aus:
CPU: 0,9% - 1,8% (Ruhezustand ist 0,7%) Arbeitsspeicher: 5,1% (Ruhezustand ist 4,9%) |
Du weisst nicht wirklich was du da tust oder?
Mit top oder htop bei laufendem Import nachsehen, wo das Problem steckt und dann entsprechend die Logs hochschrauben und Details ansehen. |
nich wirklich,
hatte halt damals denn alten Server mit Win2003 und php, apache und mysql auch installiert. Und der lief halt direkt vernünftig. (Für meine Verhältnisse) hier die angaben von htop apache2: Dauer 4 Minuten CPU max 2%, MEM 0,2 % mysql: CPU im Durchschnitt 1,3% (max für ne Sek. 9,3%), MEM 1,3 % der Server hat 16 GB MEM Welche Logs sollte ich mir anschauen? kenne: /var/log/apache2/error.log oder error.log.1 (hier sind nach dem Test keine Meldungen dazu gekommen) Einstellung in der php.ini sind ; log_errors ; Default Value: Off ; Development Value: On ; Production Value: On und hatte es auch mal so laufen lassen: ; log_errors Default Value: On Development Value: On Production Value: On /var/log/mysql/error.log (hier genau so bzw letzter Eintrag heute 9 Uhr "ready for connections") Sollte ich mir da noch andere logs ansehen? |
Wie die Namen error.... schon sagen liegen in den Logfiles wohl nur Fehlermeldungen.
htop lässt sich schön nach CPU-Last sortiert ausgeben, da sieht man gleich, ob und welcher Dienst bzw Subprozess CPU frisst. http://localhost/server-status hilft den Apache zur Laufzeit zu analysieren und eventuelle Ressourcen-Fresser im Apache zu finden. für langsame queries gibt es ein eigenes logging. ein kleiner Abriss, was man machen kann hier: MySQL Log File aktivieren - Error vs. Query vs. Slow Query bzw etwas detaillierter hier https://dev.mysql.com/doc/refman/8.0...query-log.html ps. ich mag die Thomas Krenn Seiten ganz geren, da gibt es auch etwas zum Thema Mysql-Performance https://www.thomas-krenn.com/de/wiki...ormance_Tuning da wird auf ein Perlscript zum Tunen verwiesen, das kann helfen Engpässe zu finden. pps Ich vergass, ich nutze mariadb, sollte das bei dir auch so sein, hier zum slow_query_log in mariadb https://www.cyberciti.biz/faq/how-to...og-linux-unix/ Ach ja, cool, dass du wenigstens zugibst "Ahungslos" zu sein, die meisten streiten herum. Schon deshalb gehört dir geholfen... ;-) |
Hallo
dir schon mal danke für deine Mühe werde mir das alles mal übers WE und nächste Woche durchlesen und mal schauen was ich so finde. Hab auch noch ein paar eigene Ideen denen ich nachgehen werde. kann also ein paar Tage dauern bis ich mich hier wieder melde. bis hierhin schon :danke: |
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:35 Uhr. |
Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG