Durch das Hinzufügen von CPUs wird die Leistung von MySQL 5.5 (Debian) beeinträchtigt


8

Ich bin dabei, einen Datenbankserver (MySQL) im OpenVZ-Container einzurichten, und habe mich gefragt, wie viele CPUs ich ihm zuweisen soll. Ich entschied mich für ein Benchmarking. Ich habe zwei OS / MySQL-Distributionen verglichen und getestet, wie sie mit 1, 2, 3 und 4 CPUs funktionieren.

Die erste Softwarekonfiguration war:

  • CentOS Release 6.5 (Final)
  • mysql Ver 14.14 Distrib 5.1.71 für redhat-linux-gnu (x86_64) mit readline 5.1

Der Zweite:

  • Debian GNU / Linux 7 \ n \ l
  • mysql Ver 14.14 Distrib 5.5.31 für debian-linux-gnu (x86_64) mit readline 6.2

Beide liefen auf demselben Kernel - 2.6.32-openvz-042stab083.2-amd64 # 1 SMP Fr 8. November 17:59:25 MSK 2013 x86_64 GNU / Linux.

Die gesamte Software wurde aus Paketen installiert und ohne benutzerdefinierte Konfigurationsanpassungen sofort verwendet.

Hardware: 6 GB RAM, 1-4 CPUs 3,5 GHz.

Für das Benchmarking habe ich sysbench mit dem folgenden Szenario verwendet:

sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

In beiden Fällen war die Engine der Tabelle InnoDB.

Die Ausgabe, die ich betrachtete, war die Anzahl der Transaktionen pro Sekunde. Die Ergebnisse waren ziemlich stabil - der Fehler betrug weniger als 1%.

Die Ergebnisse waren gut und wurden für CentOS / MySQL5.1 erwartet, aber für Debian / MySQL5.5 sehr seltsam: Geben Sie hier die Bildbeschreibung ein

Wie Sie vielleicht sehen, nutzt MySQL5.5 unter Debian mehrere CPUs nicht richtig aus. Während die Leistung mit 2 CPUs höher ist als mit 1, ist sie deutlich niedriger als unter CentOS / MySQL5.1. Außerdem geht es runter, wenn wir mehr CPUs über 2 hinzufügen, was wirklich komisch ist.

Kann mir bitte jemand erklären, was dort los ist? Warum um alles in der Welt würde MySQL schlechter abschneiden, wenn wir CPUs hinzufügen?


Hier könnten Ressourcenkonflikte auftreten. Haben Sie viele andere virtuelle Server / Container, die auf diesem Host ausgeführt werden? Ist es möglich, dass die physischen Prozessoren während Ihres Benchmarks der Debian-Installation unter Last standen?
Schwarzlicht

Die Ergebnisse waren / sind durchaus reproduzierbar. Es war mein eigener Bare-Metal-Server zu Hause und ich habe ihn während des Tests mit nichts anderem geladen.
Greendrake

Ich meine, es gab natürlich ein paar andere virtuelle Maschinen auf dem Server, aber sie waren im Leerlauf.
Greendrake

Ich hätte Kernel gesagt, aber es ist das gleiche ... Könnten Sie versuchen, auf beiden Systemen dieselbe Version zu verwenden?
MiniBill

eine andere, Debian verwendet eglibc en.wikipedia.org/wiki/Embedded_GLIBC , vielleicht ist dies nicht das Problem
c4f4t0r

Antworten:



1

Nun, es ist eine wirklich wichtige Frage, ohne vorher etwas über die Architektur zu wissen, die Sie ausführen. Aber im Allgemeinen gibt es einen exponentiellen Einfluss auf den Busdurchsatz, wenn Sie die CPU-Kapazität hinzufügen, insbesondere die Architektur, die mehrere Multi-Core-Prozessoren unterstützt. Halten Sie einfach inne und überlegen Sie einen Moment Die Auswirkungen auf den Interrupt-Zyklus über die jeweils eingesetzte Busbandbreitenbeschränkung hinweg ... in jedem Fall von Leistung ... Wenn Sie verstehen, dass Ihre Architektur entweder Flaschenhals-E / A oder Bits pro Zyklus enthält, denken Sie erneut daran, dass mehrere CPUs mehrere Threads benötigen .. also unabhängig von der Geschwindigkeit Ihres FSB ... Wenn Ihre Hardware nur 64 Bit beträgt, muss die physische elektrische Konnektivität diese Einschränkung auf so viele Kerne im selben Taktzyklus verteilen ...Halten Sie jetzt inne und denken Sie an die positiven Auswirkungen eines Upgrades von einer 64-Bit- auf eine 256-Bit-Systemplatine. Bei voller Neigung erhalten Sie möglicherweise einen x3-mal besseren Durchsatz, da x1 für das Einfädeln / Aufrechterhalten des Betriebsaufwands aufgewendet wird. Während des normalen Betriebs kann dies jedoch auftreten Eine unangenehme Realität in Bezug auf den Overhead, wenn Sie nur einen einzigen Prozessor / Operator benötigen. Ich denke, es ist ein Balanceakt oder genauer gesagt das richtige Pferd für den richtigen Kurs. Steveo Reedo nextfriend@live.co.ukIch denke, es ist ein Balanceakt oder genauer gesagt das richtige Pferd für den richtigen Kurs. Steveo Reedo nextfriend@live.co.ukIch denke, es ist ein Balanceakt oder genauer gesagt das richtige Pferd für den richtigen Kurs. Steveo Reedo nextfriend@live.co.uk


0

Wenn Sie CPUs hinzufügen, führt das Ding mehr Operationen parallel aus. Wenn Sie die Anzahl der RAMs nicht erhöht haben, kann es zu einem Austausch kommen, insbesondere wenn Sie eine dickere (und neuere, meistens dickere) Version der zu testenden Software verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.