Impacto de utilização da CPU devido ao parâmetro de kernel de granularidade RHEL6 vs RHEL7

2

Após os parâmetros do kernel mostrarem comportamentos muito diferentes de R6 a R7 e não conseguimos descobrir o motivo. Qualquer ajuda apreciada.

kernel.sched_min_granularity_ns
kernel.sched_wakeup_granularity_ns

Antecedentes:

  • Aplicativo já em execução no RHEL6
  • Requisito de baixa latência.
  • Aplicativo equipado com recurso de robustez, ou seja, quando a latência começa a aumentar mais do que os níveis de limite aceitáveis (predefinidos) ou o uso da CPU é superior a 85%, ele interrompe o processamento de novas solicitações para evitar sobrecargas.
  • Agora estamos tentando implantar no ambiente virtual RHEL7 e não podemos utilizar a CPU na medida do possível no RHEL6. Nós dificilmente alcançamos 55-60% e observamos os picos de latência além do limite aceitável.

Notas:

  • A versão do aplicativo é idêntica nos dois casos (R6 / R7).
  • O banco de dados e sua configuração também são idênticos
  • A configuração de memória e CPU também é idêntica

No R7, estávamos usando o perfil ajustado que alterou os seguintes parâmetros do kernel afetando o comportamento:

kernel.sched_min_granularity_ns = 10000000
kernel.sched_wakeup_granularity_ns = 15000000

Se alterarmos esses valores para R6 padrão ( kernel.sched_min_granularity_ns = 4000000 kernel.sched_wakeup_granularity_ns = 4000000 ), então usamos CPU para os níveis R6. No entanto, quando colocamos os mesmos valores em R6, não vemos nenhum impacto adverso e a CPU ainda aumenta para 85-90% como antes.

Portanto, estamos procurando o motivo pelo qual o mesmo parâmetro se comporta de maneira muito diferente em comparação com o RHEL6 & RHEL7?

    
por Chota Bheem 10.08.2018 / 15:00

0 respostas