Posso simular um disco rígido lento?

17

Eu tenho um palpite de que um certo bug intermitente só pode se manifestar quando há uma taxa de leitura de disco lenta. A resolução de problemas é difícil porque não posso reproduzi-lo de forma confiável.

Além de simplesmente devorar o IO com um processo de alta prioridade, existe alguma maneira de eu simular um disco rígido lento?

    
por ændrük 17.11.2010 / 02:14

10 respostas

15

Use nbd , o Dispositivo de Bloco de Rede, e então limite o acesso a ele usando trickle .

sudo apt-get install nbd-client nbd-server trickle
    
por poolie 17.11.2010 / 05:12
5
# echo 1 > /proc/sys/vm/drop_caches

Isso vai atrasá-lo:)

Isso forçará você a ler do disco, em vez de vantagem da página em cache.

Se você realmente quisesse ficar sofisticado, poderia fazer algo como falso erro de leitura a cada vez que usar a estrutura de injeção de falhas do scsi.

link

    
por ppetraki 18.11.2010 / 03:45
4

Tem um hub USB 1.1? Ou um cartão SD lento? Eles vão te derrubar abaixo de 10mbps.

    
por Oli 17.11.2010 / 02:20
3

Esta não é de forma alguma uma solução completa, mas pode ajudar em conjunto com outras medidas: Existe um agendador de E / S semelhante a um agendador de processos, e pode ser ajustado.

Mais notavelmente, você pode escolher entre agendadores diferentes:

~# cat /sys/block/sda/queue/scheduler 
noop anticipatory deadline [cfq] 
~# echo "deadline" > /sys/block/sda/queue/scheduler
~# cat /sys/block/sda/queue/scheduler 
noop anticipatory [deadline] cfq 
~# 

deadline pode ajudá-lo a obter resultados mais reprodutíveis.

noop , como o próprio nome diz, é insanamente idiota, e permitirá que você destrua o desempenho de I / O com pouco esforço.

anticipatory e cfq tentam ser espertos, embora cfq seja geralmente o mais inteligente dos dois. (Se bem me lembro, anticipatory é realmente o agendador legado da direita antes do kernel começar a suportar múltiplos agendadores.)

    
por Nicholas Knight 19.11.2010 / 09:41
2

Você pode tentar executar uma cópia de um arquivo grande, como uma iso do CD de instalação do Ubuntu, e executá-lo duas vezes. Isso deve diminuir sua velocidade um pouco.

    
por RolandiXor 17.11.2010 / 03:40
2

Além de tentar desacelerar o próprio disco rígido, você pode tentar usar ferramentas de benchmarking de sistema de arquivos, como o bonnie ++ , que pode causar grande quantidade de E / S de disco.

sudo apt-get install bonnie++
    
por ajmitch 17.11.2010 / 03:00
1

Você pode usar uma máquina virtual e controlar o acesso ao disco ... aqui estão algumas dicas sobre como fazer isso no Virtualbox 5.8. Limitando a largura de banda das imagens de disco link

    
por Adi Roiban 22.10.2014 / 15:16
0

e quanto a make -j64 ? em artigos descrevendo esse novo patch de desempenho 200line, make -j64 era uma tarefa que consumia muitos recursos de computador

    
por Paweł Karpiński 19.11.2010 / 08:04
0

Por que não executar iotop e ver se o processo que você está tentando depurar está causando muitas leituras / gravações de disco?

    
por user5883 17.11.2010 / 03:42
0

Eu descobri recentemente uma configuração onde eu tenho

  • moveu o diretório para o meu Google Drive
  • montou por meio do cliente super-duper-slow google-drive-ocamlfuse
  • criou um link simbólico do caminho original para o novo

Se a latência de 16 segundos não for lenta o suficiente, basta desconectar o roteador.

Para referência, aqui está o caso de uso original, onde eu tive a ideia para isso: link

    
por Androbin 04.01.2018 / 14:56