Como posso medir a aceleração em meu aplicativo quando o desempenho varia em minha máquina?

3

Eu trabalho em um programa monolítico rodando em Linux que consome muita memória. Estamos tendo problemas para ajustar a velocidade desse programa na maioria das nossas máquinas de memória grande porque o desempenho é inconsistente, variando em até 15% de uma corrida para a próxima. Uma máquina, por exemplo, tem 2 TB de memória e 80 processadores Xeon E7-4870 (2.4Ghz) nela. Como podemos determinar a origem dessa variabilidade e / ou melhorar a precisão de nossas medições para que possamos determinar quais acelerações funcionam e quanto? Está executando o SUSE11.

Veja o que tentamos até agora: 1) TurboBoost desabilitado no BIOS. 2) Executando o programa muitas vezes e calculando a média dos resultados. Isso funciona, mas levará semanas para eliminar o ruído.

    
por dromodel 20.12.2013 / 00:09

1 resposta

1

É um pouco difícil de responder sem mais detalhes específicos: tipo de aplicativo (E / S vs cálculo intensivo vs aplicativo em rede), processos adicionais em execução e assim por diante.

Mas eu colocaria algumas sugestões genéricas:

-) Use o oprofile para tentar entender onde o sistema (e a aplicação específica) está na maior parte do tempo. Esta ferramenta é muito poderosa, mesmo que demore um pouco para extrapolar sua saída para complicar os aplicativos.

-) Use ferramentas como iostat, iotop, pidstat, vmstat para tentar analisar se há afunilamentos na seção de E / S ou consumo de memória / paginação e assim por diante.

    
por 20.12.2013 / 06:46