L'ajout de CPU réduit les performances de MySQL 5.5 (Debian)

8

Je suis sur le point de configurer un serveur de base de données (MySQL) dans le conteneur OpenVZ et je me demandais combien de CPU je devrais lui affecter. J'ai décidé de le comparer. J'ai comparé deux distributions OS / MySQL et testé leurs performances avec 1, 2, 3 et 4 CPU.

La première configuration logicielle était:

  • CentOS version 6.5 (finale)
  • mysql Ver 14.14 Distrib 5.1.71, pour redhat-linux-gnu (x86_64) en utilisant readline 5.1

La deuxième:

  • Debian GNU / Linux 7 \ n \ l
  • mysql Ver 14.14 Distrib 5.5.31, pour debian-linux-gnu (x86_64) utilisant readline 6.2

Les deux fonctionnaient sur le même noyau - 2.6.32-openvz-042stab083.2-amd64 # 1 SMP ven 8 novembre 17:59:25 MSK 2013 x86_64 GNU / Linux.

Tous les logiciels ont été installés à partir de packages et utilisés prêts à l'emploi sans aucun ajustement de configuration personnalisé.

Matériel: 6 Go de RAM, 1-4 processeurs 3,5 GHz.

Pour l'analyse comparative, j'ai utilisé sysbench avec le scénario suivant:

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

Dans les deux cas, le moteur de la table était InnoDB.

La sortie que je regardais était le nombre de transactions par seconde. Les résultats étaient assez stables - l'erreur était inférieure à 1%.

Les résultats étaient agréables et attendus pour CentOS / MySQL5.1, mais très étranges pour Debian / MySQL5.5: entrez la description de l'image ici

Comme vous pouvez le voir, MySQL5.5 sur Debian ne parvient pas à tirer correctement parti de plusieurs processeurs. Bien que les performances avec 2 processeurs soient supérieures à celles de 1, elles sont clairement inférieures à celles de CentOS / MySQL5.1. De plus, cela diminue lorsque nous ajoutons plus de CPU en plus de 2, ce qui est vraiment bizarre.

Quelqu'un peut-il expliquer ce qui se passe là-bas? Pourquoi diable MySQL fonctionnerait-il moins bien avec l'ajout de CPU?

Greendrake
la source
Un conflit de ressources pourrait être en jeu ici - avez-vous de nombreux autres serveurs / conteneurs virtuels en cours d'exécution sur cet hôte? Est-il possible que les processeurs physiques étaient sous charge lors de votre benchmark de l'installation de Debian?
blacklight
Les résultats étaient / sont tout à fait reproductibles. C'était mon propre serveur bare metal à la maison et je ne l'ai pas chargé avec autre chose pendant le test.
Greendrake
Je veux dire, il y avait bien sûr quelques autres machines virtuelles sur le serveur, mais elles tournaient au ralenti.
Greendrake
J'aurais dit noyau, mais c'est pareil ... Pourriez-vous essayer d'utiliser la même version sur les deux systèmes?
miniBill
un autre, debian utilise eglibc en.wikipedia.org/wiki/Embedded_GLIBC , ce n'est peut-être pas le problème
c4f4t0r

Réponses:

1

Eh bien, c'est une question vraiment directrice sans d'abord savoir quelque chose sur l'architecture que vous exécutez .. mais généralement il y a un impact exponentiel sur le débit du bus lors de l'ajout de la capacité CPU, en particulier une architecture qui prend en charge plusieurs processeurs multi-cœurs, arrêtez-vous et réfléchissez un instant les implications sur le cycle d'interruption, quelle que soit la limitation de la bande passante du bus déployée ... dans tous les cas de performances ... en sachant que votre architecture sera soit des E / S à col en bouteille ou des bits par cycle, gardez à l'esprit que plusieurs processeurs nécessitent plusieurs threads .. donc peu importe la vitesse de votre FSB ... si votre matériel n'est que de 64 bits, la connectivité électrique physique devra partager cette limitation sur autant de cœurs dans le même cycle d'horloge ...Maintenant, arrêtez-vous et pensez aux implications positives de la mise à niveau d'une carte système 64 bits vers une carte système 256 bits, vous pouvez obtenir un débit x3 fois meilleur à pleine inclinaison étant donné que x1 sera consacré au filetage / au maintien de la charge de fonctionnement .. Cependant, pendant les opérations normales, vous pouvez rencontrer une réalité inconfortable sur les frais généraux lorsque vous n'avez besoin que d'un seul processeur / opérateur .. Je suppose que c'est un acte d'équilibrage ou plus précisément le bon cheval pour le bon cours .. Steveo Reedo [email protected] suppose que c'est un jeu d'équilibre ou plus précisément le bon cheval pour le bon cours. Steveo Reedo [email protected] suppose que c'est un jeu d'équilibre ou plus précisément le bon cheval pour le bon cours. Steveo Reedo [email protected]

user37008
la source
0

Lorsque vous ajoutez des CPU, la chose fera plus d'opérations en parallèle. Si vous n'avez pas augmenté le nombre de RAM, un échange peut alors se produire, surtout si vous utilisez une version plus grosse (et plus récente signifie plus grosse) du logiciel que vous testez.

Thorsten Staerk
la source