Desempenho do Ubuntu ppc64el

2

Eu instalei o Ubuntu Linux 14.04.5 em um novo mod IBM Power8. 8286-41a. Meu objetivo é usar essa partição no aplicativo SugarCRM CE 6.5. Eu não consegui instalar o ubuntu 16 porque problemas de compatibilidade com o PHP 5.6. Atualmente eu uso o sugarcrm em uma máquina virtual vmware com o Ubuntu 14.4.1. Eu estava esperando um aumento de desempenho na plataforma ppc64el. Em vez disso eu encontrei, na verdade, os procedimentos são consideravelmente mais lentos do que a máquina amd64 Mesma versão de lâmpada em ambos os sistemas (apache 2.4.7, mysql 5.6.33, php 5.5.9) Veja a imagem anexada para obter informações sobre as duas máquinas. Alguma sugestão? ppc64el vs amd64 config

    
por bob3321 15.02.2017 / 17:53

3 respostas

2

tl: dr: Por acaso você está usando versões de tudo o que existe antes de muitas otimizações do ppc64el e do POWER8, então vai haver limites no desempenho que você pode alcançar sem atualizar um (ou mais) componentes.

Na época em que o Ubuntu 14.04 foi lançado, passamos por toda a pilha LAMP observando de perto o desempenho no POWER. Descobrimos que havia lugares que estavam faltando, então fomos trabalhar para consertá-los. Infelizmente, desde que o Ubuntu 14.04 foi lançado um pouco antes dos primeiros sistemas POWER8, não havia tempo suficiente para trabalhar nas otimizações e colocá-las no upstream antes do Ubuntu 14.04 ser lançado.

Foi somente em maio / junho de 2014 que eu tinha um patchset inicial (relativamente) estável para o MySQL 5.6 trabalhando no POWER8. Este foi um par de meses após o lançamento do Ubuntu 14.04. Esses patches iniciais não eram muito focados no desempenho (embora o Ubuntu os atraísse para a distribuição, já que o ppc64el é uma plataforma suportada por eles).

Para a performance, nós fomos bastante afetados em algumas coisas, muitas das quais foram corrigidas no MySQL 5.7. Eu tinha uma porta 5.7 do MySQL que provava o conceito de fazer 1 milhão de consultas / segundo no POWER8 em junho de 2014. Muitos dos problemas do MySQL estão relacionados à contenção de mutex, então pode (estranhamente) com o MySQL mais antigo melhorar desempenho amarrando o MySQL a menos núcleos de CPU.

Tivemos outros gargalos a serem resolvidos, notavelmente o desempenho do CRC32 (que, se você configurá-lo, usa o InnoDB como soma de verificação do disco), dos quais surgiu um CRC32 otimizado para o POWER8 que é 41 vezes mais rápido que a versão não otimizada. Este trabalho foi integrado ao MariaDB 10.1.

Muito trabalho foi feito para fazer com que o moderno MariaDB rodasse muito bem no POWER8. Por isso, se a mudança para MariaDB for uma opção, isso ajudará no desempenho final do banco de dados. Além disso, as várias variáveis _instance para o MySQL podem precisar ser aumentadas - seu sistema POWER8 provavelmente tem um lote mais núcleos e threads de CPU do que um sistema x86, e os valores padrão não serão tão bons. / p>

Quanto ao PHP, eu estava muito menos envolvido nesse trabalho de otimização. Basicamente, o PHP mais novo é mais rápido, muitas vezes por um valor decente. Isso se deveu a tudo, desde a remoção de algumas antigas "otimizações" do powerpc (a montagem personalizada nem sempre é mais rápida do que um compilador pode produzir) para contribuir com código para php, para (eu acho) melhorar o GCC.

Acho que meu colega Daniel Axtens vai responder com alguns detalhes do PHP.

De volta à sua configuração específica, você atribuiu 1 núcleo de CPU (com 8 threads) ou apenas 1 núcleo de CPU (com 1 thread) à VM no POWER8? A forma como a virtualização funciona com o POWER, você também pode dar ao convidado os tópicos, já que todo o núcleo entra no convidado ao mesmo tempo, e o SMT4 geralmente é um grande impulso para o desempenho do SMT1 (verifique sua configuração de VM e você pode dinamicamente altere o modo de encadeamento usando o utilitário ppc64_cpu no guest, mas não para mais encadeamentos do que o guest foi designado).

Eu escrevi em um blog sobre o POWER8 MySQL / MariaDB em: link (veja as tags mysql / power8 ... askubuntu não me deixa postar muitos links)

    
por Stewart Smith 16.02.2017 / 02:31
2

Sua pergunta é bem difícil de responder conforme a pergunta - seria realmente útil saber quais partes são mais lentas, como você está medindo a velocidade, etc.

Mas aqui estão algumas dicas:

Em primeiro lugar, você precisa mudar para 16,04 .

  • Você disse que faz isso por causa de problemas no PHP. Eu suponho que você quer dizer que o SugarCRM depende do PHP5 e o 16.04 só vem com o PHP7. Isso é uma pena: o php7 é muito mais rápido que o php5 (em torno de 2x, na maioria das vezes) tanto na Intel quanto no Power. Mas esse não é o fim do mundo. Você pode mover para 16.04 e usar o HHVM, que é compatível com PHP5 e geralmente é muito mais rápido. Tem havido muito trabalho para conseguir isso funcionar bem no Power (alguns dos quais eu estive envolvido). Acho que a maior parte do trabalho agora é upstream, mas há um repositório de desenvolvimento que deve estar ainda mais atualizado. Você terá que compilá-lo a partir da fonte, mas as instruções são boas.

  • Você realmente precisa obter um MySQL / MariaDB atualizado, tanto do ponto de vista da estabilidade quanto do desempenho. Tudo o que é enviado com 14.04 é uma má idéia .

  • Como Stewart mencionou, há um lote de correções entre 14 e 24 de abril. Esses chips são diferentes dos chips da Intel: os aplicativos de ajuste para eles são diferentes e dependem do trabalho que fazemos há alguns anos. Essas correções vão desde as correções de kernel até o dimensionamento de energia para aprimoramentos do compilador para gerar um código melhor.

Em segundo lugar, não sei qual carga de trabalho você está testando no SugarCRM. A IBM tem um (agora um pouco datado) white paper na execução do SugarCRM on Power que mostra que ele sustenta uma taxa de transferência muito maior do que um sistema Intel. Você precisa ser claro sobre o benchmark em que está interessado.

Em terceiro lugar, você precisa verificar as configurações do seu sistema . Aqui estão alguns comuns:

  • O Apache não está configurado para usar mutexes pthread em vez de mutexes de arquivos (corrigidos em versões mais recentes do Ubuntu)

  • PHP e Apache configurados para usar um conjunto de encadeamentos que é muito pequeno para um sistema Power.

  • Parece que você está comparando 1 núcleo no P8 com 4 núcleos no x86. O P8 tem núcleos e encadeamentos de hardware (como o HyperThreading, mas em vez de dois encadeamentos de hardware por núcleo, temos até 8), portanto, isso pode ficar um pouco confuso. Você deveria:

    • fornecem núcleos do Power VM 4. Se possível, verifique se eles estão alocados estaticamente em seu hipervisor (como em, os núcleos são dedicados ao convidado).
    • Defina esses 4 núcleos para o modo SMT-4, não para o modo SMT-8; isso tende a dar um impulso considerável às linguagens de script.

Por fim, se você tiver acesso a qualquer suporte ou vendedor da IBM desde quando comprou a máquina, entre em contato com eles; eles podem conseguir alguns especialistas.

    
por dja 16.02.2017 / 03:30
1

Como você está fazendo medições de desempenho, crie a partição a partir do HMC usando processadores dedicados, com 4 núcleos como o desejado (usando dedicado, você estará separando a carga de trabalho do IBM i desta carga de trabalho de teste). Como mencionado anteriormente, a contagem de threads é diferente de Power do que de x86, então você precisa ter a quantidade certa de núcleos, não threads (mesmo configurando o SMT-4 como recomendado, você ainda terá o dobro de threads por núcleo no poder).

    
por cmaciel 21.02.2017 / 16:43