SorgenkindMech: MySQL soll mehr resourcen nutzen

Moin!

bisher haben meine grundlegenden Kenntnisse zur Konfiguration eines MySQL-Servers ausgereicht, um meine persönlichen Ziele hinreichend zu erfüllen, doch im Moment steh ich vor einer Wand ...

Ich habe testweise einen Xeon E5 1650 (6x3,2 HT), 64 GB Ram, 2xSSD Mirror + 2xSAS Mirror + Win2012R2

nun habe ich aus einem produktionsserver AMD Opteron irgendwas 2x1GHz, 4GB Ram, 2x250 GB Mirror (SATA oder SAS unbekannt, aber kein SSD) die Datenbank (mysql) migriert sowie den darauf befindlichen php-code

darin befinden sich statistische Auswertungen

alter Server, DB frisch gestartet, also Cache leer, dauert der aufruf 20-30 Sekunden
neuer Server, DB frisch gestartet, alco Cache leer, dauert der aufruf auch um die 20-30 Sekunden

der einzige unterschied ist, dass der alte Server mit beiden kernen zu 80% ausgelastet ist, und auf dem neuen Server schlägt ein kern kurzzeitig leicht aus

unabhängig davon, dass man sicherlich noch queries optimieren kann und vielleicht noch ein paar indize besser setzen kann wundert es mich, dass die Datenbank einfach nicht mehr resourcen nutzt

folgendes habe ich geprüft:
SSD-Auslastung (mysql liegt auf der SSD): liegt kurzzeitig bei 2%
RAM: 80% frei
CPU: läuft auf max 36% Taktung, und max 2% Gesamtauslastung

für mich heißt das so viel wie, dass hier eigentlich wesentlich mehr raus zu holen ist, wenn die zur verfügung stehenden resourcen besser genutzt werden würden.

klar wenn die DB ne weile läuft gehen die ladezeiten auch durch das chaching runter, aber da sich später in der DB viel ändern wird, ist Caching nicht das, worauf ich mich prmär stützen wollen würde

die frage lautet also: wie schaffe ich es, dass mysql einfach mal alle ihm zur verfügung stehenden resourcen ausschöpft?

Infos:
MySQL Server: 5.6.15-log x64
sql_mode=NO_ENGINE_SUBSTITUTION
slow_query_log_file="D:\mysql\5.6.15x64\slow.log"
slow_query_log = On
log-error="D:\mysql\5.6.15x64\error.log"
character-set-server=utf8
init-connect='SET NAMES utf8'
character-set-client = utf8
key_buffer_size = 4G
query_cache_size = 128M
query_cache_limit = 128M
join_buffer_size = 128M
query_cache_type = On
lc_messages = "de_DE"
thread_stack = 512K

Tabellen sind noch größtenteils myisam, hab aber auch schon ein paar auf innodb zum test umgestellt

hat jemand eine Idee? ;)

Danke schonmal für eure Mühen!

LG SorgenkindMech

  1. Mahlzeit,

    hat jemand eine Idee? ;)

    Ja. Deine Werte sind Schätzungen des Systems ohne auf Flaschenhälse Rücksicht zu nehmen.
    Meist sind das SATA-Controller, Speicherbus, Plattencache usw.
    Ich bin da noch nie in die Tiefe gegangen, aber bisher war meine Erfahrung so, dass die Festplatten (auch SSDs) die Daten nicht annähernd so schnell liefern könnten, wie sie der Prozessor verarbeiten kann.

    Evtl. würde ein Raid0 die Performance verbessern. Wenn dein Raid1 per Software realisiert ist, verlangsamt das die Datenübertragung zusätzlich.
    Gleiches gilt für das Schreiben von Logfiles, die ja Bandbreite schlucken.

    Ich gehe davon aus, ohne sehr viel Wissen und Sepzielequipment wirst du den "Schuldigen" nicht wirklich finden können. Und wenn du ihn hast, ist es nicht sicher, ob du ihn eliminieren kannst.

    Wenn dir die Performance also nicht ausreicht (werden die Daten so langsam geliefert, dass du eine Optimierung brauchst?), denk über einen Cluster nach, da ist die Leistung fast beliebig anpassbar.

    --
    42
    1. Mahlzeit,

      hat jemand eine Idee? ;)

      Ja. Deine Werte sind Schätzungen des Systems ohne auf Flaschenhälse Rücksicht zu nehmen.
      Meist sind das SATA-Controller, Speicherbus, Plattencache usw.
      Ich bin da noch nie in die Tiefe gegangen, aber bisher war meine Erfahrung so, dass die Festplatten (auch SSDs) die Daten nicht annähernd so schnell liefern könnten, wie sie der Prozessor verarbeiten kann.

      huhu,

      hm ich hatte auch auch zuerst auf den massenspeicher getippt, aber laut resourcenmonitor werden für einen kurzen augenblick gerade mal ~20% der maximalen leserate genutzt, daher hatte ich eher ein konfigurationsproblem vermutet

      LG SorgenkindMech

      1. Hallo

        Ja. Deine Werte sind Schätzungen des Systems ohne auf Flaschenhälse Rücksicht zu nehmen.
        Meist sind das SATA-Controller, Speicherbus, Plattencache usw.
        Ich bin da noch nie in die Tiefe gegangen, aber bisher war meine Erfahrung so, dass die Festplatten (auch SSDs) die Daten nicht annähernd so schnell liefern könnten, wie sie der Prozessor verarbeiten kann.

        hm ich hatte auch auch zuerst auf den massenspeicher getippt, aber laut resourcenmonitor werden für einen kurzen augenblick gerade mal ~20% der maximalen leserate genutzt, daher hatte ich eher ein konfigurationsproblem vermutet

        Das ist vermutlich die Leserate für das geräteinterne Auslesen der Daten aus den Chips. Kann der Bus die Daten nicht in der gleichen Geschwindigkeit abnehmen, wie sie geliefert werden, müssen sie gecacht werden.

        Oder in kurz: Es ist praktisch langsamer als rein theoretisch denkbar.

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
        Veranstaltungsdatenbank Vdb 0.3