Existe uma ferramenta de código aberto para medir o desempenho da CPU?

21

Eu usei várias vezes abpara medir o desempenho da Web, hdparmpara medir o desempenho do disco rígido e netperfpara medir o desempenho da rede.

Mas não encontrei nenhuma ferramenta para medir o desempenho da CPU.

Você conhece uma ferramenta que permite medir o desempenho da CPU? Estou procurando especificamente medir Gflops.

Coren
fonte
2
consulte " serverfault.com/questions/88357/estimate-flops-in-linux " para medir o gflops e você pode usar o comando mpstat ou sar para desempenho da CPU
harish.venkat
1
sar e mpstat indica atividade da CPU, não desempenho da CPU. A pergunta Serverfault indica o uso do LINPACK, que não é de código aberto.
Coren
related: askubuntu.com/questions/634513/…
Ciro Santilli escreveu:

Respostas:

10

Você deve dar uma olhada na página da Wikipedia sobre benchmarking , que fornece algumas ferramentas de benchmark, incluindo as de CPU que funcionarão no Linux. O LinPack é gratuito, mas é difícil compilar. Mas você certamente pode olhar para o NBench e alguns outros na lista.

Karlson
fonte
O NBench é bom, mas tem um código de 15 anos. Nós precisamos de algo novo. O link está obsoleto.
Konrad Gajewski
3
$ date; i=0; while (( i < 1000000 )); do (( i ++ )); done; date
Tue Jul 15 11:26:37 EDT 2014
Tue Jul 15 11:26:43 EDT 2014
$
JohnMudd
fonte
1
Isso seria 43 - 37 = 6 GigaFlops? Não vejo como um incremento inteiro em um shell se relaciona com o desempenho do ponto flutuante.
Anthon
O objetivo geral era "medir o desempenho da CPU". Mais tarde menciona Gflops, mas acho que é realmente uma tangente equivocada. Se o Gflops era o verdadeiro objetivo, perguntar sobre o desempenho da CPU era um erro.
31414 JohnMudd
Maneira mais rápida de chegar ao número que você está realmente depois, ou seja, segundos que se passaram : DATE=$(date +%s); i=0; while (( i < 1000000 )); do (( i ++ )); done; echo $(( $(date +%s)-DATE ))
xenithorb
1
Bom ponto, eu deveria ter atualizado isso antes. Aqui está a minha abordagem atual: tempo (i = 0; while ((i <1000000)); não ((i ++)); feito)
JohnMudd
1
Não são 6 gigaflops, são ~ 0,17 megabashincrements. E, meu macbook possui tudo:( i=0 ; while (( i < 1000000 )); do; (( i ++ )); done; ) 1.33s user 0.00s system 99% cpu 1.337 total
Steven Lu
1

O stress-ng é uma ferramenta simples que pode estressar e comparar os cpus.

Por exemplo, testou 1 CPU

stress-ng -c 1 --cpu-ops 5000

stress-ng: info: [20288] padronizando para uma execução de 86400 segundos por estressor

stress-ng: info: [20288] despachando porcos: 1 cpu

stress-ng: info: [20288] execução bem-sucedida concluída em 13.93s

michaelbn
fonte
Eu acho que aconselhar um programa de teste de estresse para fazer benchmark é enganoso: há uma grande diferença entre o benchmarking e o estresse de uma CPU.
Paradox