RAMFS parece mais lento que o esperado - qual é o gargalo?

0

O RAMFS não usa swap (o TMPFS faz). Então eu montei o FS

cd /mnt/; mkdir SOMETHING; mount -t ramfs -o size=1500m ramfs /mnt/SOMETHING; cd /mnt/SOMETHING

Eu gero um testfile:

dd if=/dev/zero of=testfile_500MB bs=524288000 count=1

Eu cp o arquivo de teste (da memória para a memória)

time cp testfile_500MB testfile_500MB_cptestfile

real    0m0.599s
user    0m0.008s
sys     0m0.592s

Eu tenho um módulo DDR2-1066 no meu PC. Qual é o gargalo? De acordo com este artigo da wikipedia:

link

precisaria fazer mais de 10 GByte / seg! Não é mais 10 GByte / seg

500 MByte em 0,599 seg = 835 MByte / seg. É lento.

A CPU é o gargalo? Ou o que? : O (E7300 @ 2.66GHz)

UPDATE: está medindo um "cp" com "tempo" uma coisa boa?

    
por LanceBaynes 01.08.2011 / 18:45

3 respostas

2

Seu teste provavelmente não é longo o suficiente para calcular a sobrecarga da execução de cp , então não sei se é um bom teste. Você pode querer tentar algo como bonnie++ .

Ainda assim, o número que você criou não parece razoável para mim. Se o memtest86 + deve ser acreditado, a maioria dos sistemas com RAM de canal duplo fará 2-3 GB / s para a memória principal. Um único canal (como você tem com apenas um stick de RAM) será menor (mas não necessariamente metade). Subtraia alguma sobrecarga compreensível e um pouco menos de 1GB / s de som plausível.

    
por 01.08.2011 / 20:24
0

Usando cp , os dados passarão por vários buffers (lado do usuário e lado do kernel), portanto a largura de banda de memória necessária pode ser multiplicada por um grande fator. Talvez os componentes internos do ramf também adicionem alguma sobrecarga. Portanto, cp definitivamente não é uma boa ferramenta para testar a largura de banda da memória.

Deve haver algumas ferramentas específicas espalhadas por para isso.

    
por 01.08.2011 / 20:46
0

Na verdade, é ainda mais lento do que você pensa. Se você criar um arquivo dessa forma, ele deve ser esparso e, por padrão, os sistemas de arquivos são montados com E / O assíncrono .

Certamente o cp é bem conhecido por ser bastante lento na cópia de arquivos grandes (existem várias maneiras de resolver isso - o mais comum é usar o cpio através de um pipe).

O que você está tentando medir a velocidade? Se você quiser medir sua E / S de memória, use memtest . Se você quiser uma medida realista do desempenho dos ramfs, use fio

    
por 03.08.2011 / 17:40