web-dev-qa-db-fra.com

Ubuntu performance ppc64el

J'ai installé Ubuntu Linux 14.04.5 sur un nouveau mod IBM Power8. 8286-41a. Mon objectif est d'utiliser cette partition de l'application SugarCRM CE 6.5. Je ne parviens pas à installer Ubuntu 16 en raison de problèmes de compatibilité avec PHP 5.6. Actuellement, j'utilise sugarcrm sur une machine virtuelle vmware avec Ubuntu 14.4.1. Je m'attendais à une amélioration des performances sur la plate-forme ppc64el. En fait, les procédures sont considérablement plus lentes que celles de la machine AMD64. Version identique de la lampe sur les deux systèmes (Apache 2.4.7, mysql 5.6.33, php 5.5.9). Voir l’image ci-jointe pour obtenir des informations sur les deux machines. Aucune suggestion? config ppc64el vs AMD64

2
bob3321

tl; dr: Il se trouve que vous utilisez des versions de tout ce qui existe avant de nombreuses optimisations ppc64el et POWER8; il y aura donc des limites quant aux performances que vous pouvez obtenir sans mettre à niveau un (ou plusieurs) composants.

Au moment de la sortie d’Ubuntu 14.04, nous avons examiné toute la pile LAMP en examinant de près les performances sous POWER. Nous avons constaté qu'il manquait des endroits et nous avons donc travaillé à les réparer. Malheureusement, Ubuntu 14.04 ayant été livré légèrement avant les premiers systèmes POWER8, nous n’avions pas le temps de travailler sur les optimisations et de les intégrer en amont avant la livraison d’Ubuntu 14.04.

Ce n'est qu'en mai/juin 2014 que j'ai eu un premier patchset (relativement) stable pour MySQL 5.6 fonctionnant sous POWER8. C'était quelques mois après la publication de Ubuntu 14.04. Ces correctifs initiaux n'étaient pas trop axés sur les performances (même si Ubuntu les a bien insérés dans la distribution, car ppc64el est une plate-forme prise en charge pour eux).

Pour des raisons de performances, nous étions assez fortement bloqués sur quelques problèmes, dont beaucoup étaient corrigés dans MySQL 5.7. En juin 2014, j’avais un très bon concept MySQL 5.7 effectuant 1 million de requêtes par seconde sur POWER8. Un grand nombre de problèmes liés à MySQL sont liés au conflit de mutex. C’est donc curieusement avec un ancien MySQL améliore les performances en liant MySQL à moins de cœurs de processeur.

Nous avions aussi d'autres goulots d'étranglement à résoudre, notamment les performances de CRC32 (qui, si vous le configurez, InnoDB utilise comme somme de contrôle sur disque), un CRC32 optimisé pour POWER8 qui est 41 fois plus rapide que la version non optimisée. Ce travail a été intégré à MariaDB 10.1.

Beaucoup de travail a été fait pour que MariaDB moderne fonctionne vraiment bien sur POWER8. Si le passage à MariaDB est une option, cela vous aidera à améliorer les performances de la base de données. En outre, les différentes variables _instance pour MySQL peuvent nécessiter une augmentation - votre système POWER8 a probablement un beaucoup plus de cœurs et de threads de processeur qu'un système x86, et les valeurs par défaut ne seront pas respectées. être si génial.

En ce qui concerne PHP, j'étais beaucoup moins impliqué dans ce travail d'optimisation. Fondamentalement, les nouveaux PHP sont plus rapides, souvent d'un montant décent. Cela tenait à tout, de la suppression de certaines anciennes "optimisations" de powerpc (un assemblage personnalisé n’est pas toujours plus rapide que ce qu’un compilateur peut produire) à la contribution de code à php à (je pense) une amélioration de GCC.

Je pense que mon collègue Daniel Axtens va répondre avec quelques détails PHP.

De retour à votre configuration spécifique, avez-vous affecté 1 cœur de processeur (avec 8 threads) ou seulement 1 cœur de processeur (avec 1 thread) au VM du POWER8? De la manière dont la virtualisation fonctionne sur POWER, vous pouvez également donner à l’invité les fils, car tout le noyau s’installe en même temps sur l’invité, et SMT4 améliore généralement les performances de SMT1 (vérifiez votre VM configuration et vous pouvez changer dynamiquement le mode de thread à l'aide de l'utilitaire ppc64_cpu dans l'invité, mais pas avec plus de threads que l'invité n'a été attribué).

J'ai blogué sur le travail POWER8 de MySQL/MariaDB à l'adresse suivante: https://www.flamingspork.com/blog (voir les balises mysql/power8 ... askubuntu ne me laissera pas poster non plus. beaucoup de liens)

2
Stewart Smith

Il est assez difficile de répondre à votre question, car il serait très utile de savoir quelles parties sont plus lentes, comment vous mesurez la vitesse, etc.

Mais voici quelques indications:

Tout d'abord, vous devez passer à 16.04 .

  • Vous avez dit que vous le faites à cause de PHP problèmes. Je suppose que vous voulez dire par là que SugarCRM repose sur PHP5 et 16.04 uniquement avec PHP7. C'est une honte: php7 est beaucoup plus rapide que php5 (environ 2 fois, la plupart du temps) à la fois sur Intel et sur Power. Mais ce n'est pas la fin du monde. Vous pouvez passer à 16.04 et utiliser HHVM, qui est compatible avec PHP5 et est généralement beaucoup plus rapide. Il y a eu beaucoup de travail formidable à faire en sorte que cela fonctionne bien avec Power (certains de ceux auxquels j'ai participé). Je pense que la majeure partie du travail est maintenant en amont, mais il y a un rapport de développement qui devrait être encore plus à jour. Vous devrez le compiler à partir des sources, mais les instructions sont bonnes.

  • Vous devez vraiment, vraiment, obtenir une version améliorée de MySQL/MariaDB, à la fois du point de vue de la stabilité et des performances. Ce qui est livré avec 14.04 est une mauvaise idée .

  • Comme Stewart l'a mentionné, il y a beaucoup de correctifs entre 14.04 et 16.04. Ces puces sont différentes des puces Intel: le réglage de leurs applications est différent et repose sur le travail que nous effectuons depuis quelques années. Ces correctifs vont du correctif de noyau à la mise à l'échelle des capacités en passant par les améliorations du compilateur pour générer un meilleur code.

Deuxièmement, je ne suis pas sûr de la charge de travail que vous testez sur SugarCRM. IBM a un (maintenant un peu daté) livre blanc sur l’exécution de SugarCRM sur Power, qui montre qu’il maintient un débit bien supérieur à celui d’un système Intel. Vous devez être clair sur le benchmark qui vous intéresse.

Troisièmement, vous devez vérifier les paramètres de votre système . Voici quelques-uns des plus communs:

  • Apache n'est pas configuré pour utiliser les mutex pthread au lieu des mutex de fichiers (corrigé dans les versions plus récentes d'Ubuntu)

  • PHP et Apache sont configurés pour utiliser un pool de threads trop petit pour un système Power.

  • On dirait que vous comparez 1 cœur sur P8 à 4 cœurs sur x86. P8 a à la fois des cœurs et des threads matériels (comme HyperThreading mais au lieu de 2 threads matériels par cœur, nous en avons jusqu'à 8), cela peut donc être un peu déroutant. Vous devriez:

    • vous donne la puissance VM 4 cœurs. Si possible, assurez-vous qu'ils sont alloués de manière statique dans votre hyperviseur (comme dans, les cœurs sont dédiés à l'invité).
    • Définissez ces 4 cœurs en mode SMT-4, pas en mode SMT-8; cela tend à donner un coup de pouce considérable aux langages de script.

Enfin, si vous avez accès à un service d'assistance ou à des vendeurs IBM à partir du moment où vous avez acheté la machine, contactez-les. ils pourront peut-être faire appel à des experts.

2
dja

Dans la mesure où vous effectuez des mesures de performances, créez la partition à partir de la console HMC à l'aide de processeurs dédiés, avec 4 cœurs à votre guise (en utilisant un serveur dédié, vous séparerez le workload IBM i de ce workload de test). Comme mentionné précédemment, le nombre de threads est différent de Power de x86, vous devez donc vous assurer que vous avez la bonne quantité de cœurs, pas de threads (même si vous définissez SMT-4 comme recommandé, vous aurez toujours deux fois plus de threads par noyau. sur le pouvoir).

1
cmaciel