MySQL crash

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL crash

    Hi!
    Ich betreibe einen Windows Root Server.
    Auf diesem IIS und Plesk installiert.
    Auf dem Webserver läuft ein php Chat.
    Was mir neuerdings auffällt, ist das schon bei max 35 chattern der Chat schon
    zusammenbricht. Nun hab ich mit diversen Einstellungen in der konfigurationsdatei rumgespielt, mehr query cache zugewiesen,
    max connections erhöht und trotzdem bricht er zwischendurch immer wieder
    zusammen. Mit fortlaufender fülle der messages Tabelle, bricht er irgendwann komplett zusammen und muss neugestartet werden.
    Die CPU Last geht auch auf dauerhafte 100%. Erst nach dem löschen der Tabellen für die Messages läuft der SQL Server wieder halbwegs stabil,
    bzw solange bis ich wieder lösche.
    Gibts da erstmal soweit Ideen zu was das sein kann?
    Kann hier auch mal genauer auf die Konfiguration eingehen.
    Das Problem an der Sache ist nur, das ich mit Root Servern erstmal so ziemlich neu bin.
    Dabei stellt sich gleich die nächste Frage:
    Wieviel Besucher kann denn solche ein Server eigentlich gleichzeitig tragen?

  • #2
    Ich vermute dass nicht die Datenbank schuld ist, sondern das Script.

    Kommentar


    • #3
      okay, was gibts da für möglichkeiten zu überprüfen?
      ich habe mal die indizes der tabelle überprüft und habe dort eine kardinalität von zur zeit 92 auf dem primärschlüssel bei 92 einträgen in der tabelle.

      Kommentar


      • #4
        zeig mal deine Tabellen-Struktur

        php-Entwicklung | ebiz-consult.de
        PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
        die PHP Marktplatz-Software | ebiz-trader.de

        Kommentar


        • #5
          Zitat von Marcus-24-D Beitrag anzeigen
          Die CPU Last geht auch auf dauerhafte 100%.
          Welche Prozesse erzeugen die Last?
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Was sagen die Logfiles?
            hostbar - Full Service Internet Agentur

            Kommentar


            • #7
              ein
              PHP-Code:
              EXPLAIN [EXTENDEDSELECT select_options 
              sollte alle Fragen klären

              php-Entwicklung | ebiz-consult.de
              PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
              die PHP Marktplatz-Software | ebiz-trader.de

              Kommentar


              • #8
                mysql-nt exe erzeugt die hohe last.

                in der fehler log von mysql steht folgendes drin.
                hab nur mal einen kleinen teil des auszugs. sonst wirds meter lang.
                aber das wiederholt sich eigentlich auch nur noch..

                Code:
                120121 19:45:33 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:45:44 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:45:45 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:45:50 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:45:53 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:45:57 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:46:02 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:46:03 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:46:11 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:46:14 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:46:15 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:46:19 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:47:21  InnoDB: Database was not shut down normally!
                InnoDB: Starting crash recovery.
                InnoDB: Reading tablespace information from the .ibd files...
                InnoDB: Restoring possible half-written data pages from the doublewrite
                InnoDB: buffer...
                120121 19:47:21  InnoDB: Starting log scan based on checkpoint at
                InnoDB: log sequence number 0 7358681.
                InnoDB: Doing recovery: scanned up to log sequence number 0 7358681
                120121 19:47:22  InnoDB: Started; log sequence number 0 7358681
                120121 19:47:22 [Note] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: ready for connections.
                Version: '5.0.45-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)
                120121 19:47:46 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:47:51 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:47:57 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:47:59 [ERROR] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Out of memory (Needed 8388580 bytes)
                120121 19:49:10  InnoDB: Database was not shut down normally!
                InnoDB: Starting crash recovery.
                InnoDB: Reading tablespace information from the .ibd files...
                InnoDB: Restoring possible half-written data pages from the doublewrite
                InnoDB: buffer...
                120121 19:49:10  InnoDB: Starting log scan based on checkpoint at
                InnoDB: log sequence number 0 7358681.
                InnoDB: Doing recovery: scanned up to log sequence number 0 7358681
                120121 19:49:10  InnoDB: Started; log sequence number 0 7358681
                120121 19:49:10 [Note] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: ready for connections.
                Version: '5.0.45-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)
                120121 19:50:41 [Note] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Normal shutdown
                
                120121 19:50:43  InnoDB: Starting shutdown...
                120121 19:50:45  InnoDB: Shutdown completed; log sequence number 0 7358681
                120121 19:50:45 [Note] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: Shutdown complete
                
                120121 19:52:35  InnoDB: Started; log sequence number 0 7358681
                120121 19:52:39 [Note] c:\Program Files (x86)\Parallels\Plesk\Databases\MySQL\bin\mysqld-nt.exe: ready for connections.
                Version: '5.0.45-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)
                ich hab außerdem festgestellt, das nicht die message tabelle das problem ist, sondern die user tabelle. wenn ich die leere, läufts wieder solange gut bis in etwa 300 zeilen erreicht sind. dann setzt er manchmal aus bzw wird in
                den sql status angezeigt das er pausiert. und das immer länger und irgendwann bricht er dann zusammen.

                Zur Tabellenstruktur, die sieht folgendermaßen aus:

                User Tabelle:
                Code:
                Feld, 	Typ ,	Kollation ,	Attribute, 	Null ,	Standard, 	Extra
                username, varchar 64,utf8_general_ci,NICHTS,Nein,
                userid,varchar 64,utf8_general_ci,NICHTS,Nein,
                password,varchar 64utf8_general_ci,NICHTS,Nein,
                email,utf8_general_ci,NICHTS,Nein,
                avatar,utf8_general_ci,NICHTS,Nein,
                user_session,varchar 64utf8_general_ci,NICHTS,Nein,
                user_status,utf8_general_ci,NICHTS,Nein,
                userIP,varchar 24,utf8_general_ci,NICHTS,Nein,
                admin,varchar 24,utf8_general_ci,NICHTS,Nein,
                status,varchar 24,utf8_general_ci,NICHTS,Nein,
                room,varchar 24,utf8_general_ci,NICHTS,Nein,
                ban,varchar 24,utf8_general_ci,NICHTS,Nein,
                online_time,varchar 24,utf8_general_ci,NICHTS,Nein,
                fontcolor,varchar 24,utf8_general_ci,NICHTS,Nein,#000000
                ich hoffe ich hab so erstmal alles wichtige an infos zusammen?! wenn noch was fehlt einfach sagen... dankeschön erstmal.

                die sache mit EXPLAIN [EXTENDED] SELECT select_options
                schau ich mir gleich mal an

                Kommentar


                • #9
                  Wahrscheinlich erzeugt deine Abfrage eine ziemliche große tmp-Tabelle!

                  php-Entwicklung | ebiz-consult.de
                  PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
                  die PHP Marktplatz-Software | ebiz-trader.de

                  Kommentar


                  • #10
                    mh, ja, das habe ich in der konfiguration auch schon reduziert bzw minimiert.

                    Kommentar

                    Lädt...
                    X