Como usar a ferramenta de teste de desempenho Lmbench e analisar os resultados da execução

1. Introdução ao Lmbench

LmbenchÉ uma ferramenta de teste de memória simples e portátil. Suas principais funções incluem avaliação de largura de banda (ler arquivos de cache, copiar memória, ler/escrever memória, pipeline, TCP), avaliação de atraso (comutação de contexto, rede, estabelecimento do sistema de arquivos) e exclusão, processo criação, processamento de sinal, chamadas de sistema de nível superior, tempo de reação de leitura de memória) e outras funções.

2. Baixe e instale

Endereço do site oficial: http://www.bitmover.com/lmbench/
Link para download: lmbench-3.0

imaginemiracle:Downloads$ unzip lmbench-3.0-a9.zip

Deve-se notar que todos os arquivos lmbenchatualmente não podem ser executados, e uma série de erros comomake os que ocorrerão após a execução direta da compilação .Permission denied

Aqui você primeiro precisa alterar as permissões de todos os arquivos:

imaginemiracle:Downloads$ sudo chmod 777 -R lmbench-3.0-a9/

Entre lmbenchno diretório , sua estrutura de diretório é a seguinte.

imaginemiracle:Downloads$ cd lmbench-3.0-a9/
imaginemiracle:lmbench-3.0-a9$ ls
ACKNOWLEDGEMENTS  CHANGES    COPYING    doc              Makefile  results  src
bin               ChangeSet  COPYING-2  hbench-REBUTTAL  README    scripts

3. Use o teste Lmbench

Execute make results, após a execução, serão solicitadas as seguintes opções:

  • CÓPIAS MÚLTIPLAS: Executa testes paralelos ao mesmo tempo, correspondendo a scal loaditens ;
  • Seleção de colocação de trabalho: método de controle de agendamento de trabalho, selecionado por padrão 1, indicando que a colocação de trabalho é permitida;
  • Opções para controlar a colocação de trabalho: selecionada por padrão 1;
  • Memória: Defina para ser maior que 4vezes cache size, quanto maior o valor, mais preciso o resultado e maior o tempo de execução;
  • SUBSET: O subconjunto a ser executado, incluindo ALL / HARWARE / OS / DEVELOPMENT, padrão selecionado all;
  • FASTMEM, SLOWFS, DISCOS, REMOTO... e outras opções podem ser mantidas como padrão.

Após a conclusão da configuração, o programa de teste começa a ser executado. Você precisa prestar atenção ao longo tempo de execução e esperar pacientemente ou fazer outras coisas primeiro 10 mine depois

4. Veja os resultados

Execute make seepara visualizar os resultados da execução. Se apenas duas linhas de comandos aparecerem, indicando que os resultados da execução são enviados summary.outpara o arquivo, você poderá visualizar o arquivo diretamente. cat ./results/summary.out.
Você verá a seguinte saída:

insira a descrição da imagem aqui

4.1. Informações básicas do sistema

As informações de parâmetros básicos do sistema começam a ser exibidas no resultado de saída.
insira a descrição da imagem aqui
em:

  • tlb: Indica o número de páginas no cache look-aside da tradução;
  • bytes de linha de cache: bytes de linha de cache
  • mem par: paralelização hierárquica da memória;
  • scal load:Lmbench o número de execuções paralelas .

4.2. Desempenho do Processador

As unidades dos resultados de saída a seguir são todas us, e quanto menor o valor, melhor o desempenho.
insira a descrição da imagem aqui

  • chamada nula:getppid o tempo necessário para executar ;
  • null I/O:/dev/zero o tempo para ler um byte de t1, o tempo para escrever um byte /dev/nullem t2, e t1、t2o valor médio é o resultado deste item;
  • stat: stat o tempo necessário para um arquivo (ou seja, para obter as informações de um arquivo);
  • open clos: open o tempo total que leva para abrir um arquivo e, em seguida, closedeletar o arquivo (excluindo o tempo de leitura de diretórios e nós);
  • slct TCP: o tempo consumido pela seleção de um descritor de arquivo por meio de TCPuma conexão de rede ;100
  • sig inst: install signal o tempo gasto;
  • sign hndl: handler signal o tempo gasto;
  • fork proc: fork a completamente igual process, e o tempo total consumido processdesligando ;
  • exec proc: Simula o processo de trabalho de um shellprocesso : forko tempo que leva para um novo processo executar um novo comando.
  • sh proc: fork Um processo que também pergunta ao sistema quanto tempo leva shellpara localizar e executar um novo programa.

4.3. Operações matemáticas

As unidades dos resultados de saída a seguir são todas ns, e quanto menor o valor, melhor o desempenho.

(1) Cálculo inteiro

insira a descrição da imagem aqui
(2) Cálculo inteiro sem sinal

insira a descrição da imagem aqui
(3) Cálculo de ponto flutuante

insira a descrição da imagem aqui
(4) Cálculo de ponto flutuante de precisão dupla

insira a descrição da imagem aqui

4.4. Mudança de contexto

As unidades dos resultados de saída a seguir são todas us, e quanto menor o valor, melhor o desempenho.

insira a descrição da imagem aqui
Múltiplos processos são conectados com unix pipeum anel , e cada processo lê de seu próprio canal token, executa tarefas e tokengrava no próximo processo.

context swithingO tempo inclui: o tempo para alternar processos, mais o tempo para restaurar todo o estado do processo (incluindo o cacheestado ).

  • 2p/0k: Cada processo sizeé 0(não executa nenhuma tarefa) e o tempo consumido pela troca de contexto 2quando ;
  • 2p/16k: Cada processo sizeé 16K(executando tarefas) e o tempo consumido pela troca de contexto 2quando ;

Itens de teste subseqüentes e assim por diante.

4.5. Atraso na comunicação local

As unidades dos resultados de saída a seguir são todas us, e quanto menor o valor, melhor o desempenho.

insira a descrição da imagem aqui

  • 2p/0k: Cada processo sizeé 0(não executa nenhuma tarefa) e o tempo consumido pela troca de contexto 2quando ;
  • Pipe: O chamado hot potatoteste , usando pipea comunicação entre dois processos sem tarefas específicas, tokenum indo e voltando entre os dois processos, passando um tempo médio gasto de ida e volta;
  • AF UNIX: o mesmo que Pipeo item de teste , mas a comunicação entre processos usa socketcomunicação;
  • UDP: Igual Pipeao item de teste , mas a comunicação entre processos usa UDP/IPcomunicação;
  • RPC/UDP: Igual Pipeao item de teste , mas a comunicação entre processos usa sun RPCa comunicação e, por padrão, o protocoloRPC é usado para transmissão;UDP
  • TCP: Igual Pipeao item de teste , mas a comunicação entre processos usa TCP/IPcomunicação;
  • RPC/TCP: Igual Pipeao item de teste , mas a comunicação entre processos utiliza sun RPCa comunicação, RPCespecificando TCPo protocolo de transmissão;
  • TCP conn: O tempo que leva para criar socketo descritor e estabelecer a conexão.

4.6. Atraso de arquivo e memória

As unidades dos resultados de saída a seguir são todas us, e quanto menor o valor, melhor o desempenho.

insira a descrição da imagem aqui

  • 0K File Create: 0K o tempo usado para criar o arquivo;
  • 0K File Delete: 0K o tempo utilizado para a exclusão do arquivo;
  • 10K File Create: 10K o tempo usado para criar o arquivo;
  • 10K File Delete: 10K o tempo usado para a exclusão do arquivo;
  • Mmap Latency: Coloque nos mmapna memória e, em seguida, registreunmap o tempo total de consumo de cada um e obtenha o valor máximo de cada tempo de consumo;mmapunmap
  • Falha na porta: Tempo de atraso da página de proteção;
  • Page Faule: tempo de atraso da falha de página;
  • 100fd selct:100 Configure o tempo para os descritores de arquivo select.

4.7. Largura de banda de comunicação local

As unidades dos resultados de saída a seguir são todas MB/s, e quanto maior o valor, melhor o desempenho.

insira a descrição da imagem aqui

  • Pipe: Quando dois processos são estabelecidos pipe, pipecada um chunké o tempo que leva 64Kpara mover 50MBos dados ;
  • AF UNIX: Estabelece unix stream socketuma conexão , cada um chunké o tempo que leva para transmitir64K os dados através deste ;socket10MB
  • TCP: O mesmo que Pipeo item de teste , mas TCP/IP socketa comunicação é usada entre os processos e a quantidade de dados transmitidos é 3MB;
  • Arquivo relido: o tempo gasto para ler o arquivo e montá-lo;
  • Mmap reread: o tempo que leva para colocar o arquivo mmapna memória, ler o arquivo da memória e resumir juntos;
  • Bcopy(libc): do bw_mem $i bcopy , a velocidade de cópia do número especificado de bytes de uma área de memória especificada para outra área de memória especificada;
  • Bcopy(hand): do bw_mem %i fcp , o tempo que leva para copiar os dados de um local do disco para outro;
  • Mem read: bw_mem $i frd , acumule os valores inteiros na matriz e teste a largura de banda processorde ;
  • Mem write: do bw_mem $i fwr , defina cada membro da matriz de inteiros para 1testar a largura de banda de gravação de dados na memória.

4.8. Latência de operação de memória

As unidades dos resultados de saída a seguir são todas ns, e quanto menor o valor, melhor o desempenho.

insira a descrição da imagem aqui
O teste local é realizado lat_mem_rdacumulando o valor de 4cada ; o teste é processora largura de banda de leitura de dados para .

  • L1: Cache 1
  • L2: Cache 2
  • Main Mem: memória contínua
  • Rand Mem: latência de acesso aleatório à memória
  • Suposições:
    Se L1e L2forem semelhantes, será exibido “No L1 cache?”
    Se L2e Main Memforem semelhantes , será exibido“No L2 cache?”

Acho que você gosta

Origin blog.csdn.net/qq_36393978/article/details/125989992
Recomendado
Clasificación