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 lmbench
atualmente 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 lmbench
no 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 load
itens ; - 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
4
vezescache 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 selecionadoall
; - 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 min
e depois
4. Veja os resultados
Execute make see
para visualizar os resultados da execução. Se apenas duas linhas de comandos aparecerem, indicando que os resultados da execução são enviados summary.out
para o arquivo, você poderá visualizar o arquivo diretamente. cat ./results/summary.out
.
Você verá a seguinte saída:
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.
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.
- chamada nula:
getppid
o tempo necessário para executar ; - null I/O:
/dev/zero
o tempo para ler um byte det1
, o tempo para escrever um byte/dev/null
emt2
, et1、t2
o 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,close
deletar 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
TCP
uma conexão de rede ;100
- sig inst:
install signal
o tempo gasto; - sign hndl:
handler signal
o tempo gasto; - fork proc:
fork
a completamente igualprocess
, e o tempo total consumidoprocess
desligando ; - exec proc: Simula o processo de trabalho de um
shell
processo :fork
o tempo que leva para um novo processo executar um novo comando. - sh proc:
fork
Um processo que também pergunta ao sistema quanto tempo levashell
para 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
(2) Cálculo inteiro sem sinal
(3) Cálculo de ponto flutuante
(4) Cálculo de ponto flutuante de precisão dupla
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.
Múltiplos processos são conectados com unix pipe
um anel , e cada processo lê de seu próprio canal token
, executa tarefas e token
grava no próximo processo.
context swithing
O tempo inclui: o tempo para alternar processos, mais o tempo para restaurar todo o estado do processo (incluindo o cache
estado ).
- 2p/0k: Cada processo
size
é0
(não executa nenhuma tarefa) e o tempo consumido pela troca de contexto2
quando ; - 2p/16k: Cada processo
size
é16K
(executando tarefas) e o tempo consumido pela troca de contexto2
quando ;
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.
- 2p/0k: Cada processo
size
é0
(não executa nenhuma tarefa) e o tempo consumido pela troca de contexto2
quando ; - Pipe: O chamado
hot potato
teste , usandopipe
a comunicação entre dois processos sem tarefas específicas,token
um indo e voltando entre os dois processos, passando um tempo médio gasto de ida e volta; - AF UNIX: o mesmo que
Pipe
o item de teste , mas a comunicação entre processos usasocket
comunicação; - UDP: Igual
Pipe
ao item de teste , mas a comunicação entre processos usaUDP/IP
comunicação; - RPC/UDP: Igual
Pipe
ao item de teste , mas a comunicação entre processos usasun RPC
a comunicação e, por padrão, o protocoloRPC
é usado para transmissão;UDP
- TCP: Igual
Pipe
ao item de teste , mas a comunicação entre processos usaTCP/IP
comunicação; - RPC/TCP: Igual
Pipe
ao item de teste , mas a comunicação entre processos utilizasun RPC
a comunicação,RPC
especificandoTCP
o protocolo de transmissão; - TCP conn: O tempo que leva para criar
socket
o 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.
- 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
n
osmmap
na 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;mmap
unmap
- 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 arquivoselect
.
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.
- Pipe: Quando dois processos são estabelecidos
pipe
,pipe
cada umchunk
é o tempo que leva64K
para mover50MB
os dados ; - AF UNIX: Estabelece
unix stream socket
uma conexão , cada umchunk
é o tempo que leva para transmitir64K
os dados através deste ;socket
10MB
- TCP: O mesmo que
Pipe
o item de teste , masTCP/IP socket
a 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
mmap
na 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 bandaprocessor
de ; - Mem write:
do bw_mem $i fwr
, defina cada membro da matriz de inteiros para1
testar 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.
O teste local é realizado lat_mem_rd
acumulando o valor de 4
cada ; o teste é processor
a 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:
SeL1
eL2
forem semelhantes, será exibido“No L1 cache?”
SeL2
eMain Mem
forem semelhantes , será exibido“No L2 cache?”