Comparando os planejadores de E / S

0

Eu pretendo comparar três diferentes programadores de E / S: "noop", "cfq" e "deadline" e planejo compará-los para leituras e gravações aleatórias. Até agora, os únicos casos significativos que identifiquei são os seguintes,

  • ler: com armazenamento em cache e com sincronização
  • lido: sem cache e com sincronização
  • leia: sem cache e sem sincronizar
  • leia: com armazenamento em cache e sem sincronização.

(todos acima, sequencialmente e não sequencialmente)

e

  • escrever: com armazenamento em cache
  • escrever: sem armazenar em cache

(suponho seqüencial e não seqüencial são pertinentes aqui também)

Eu planejo realizar testes de gravação que sejam de um ou vários segmentos.

Q1:

Existem outros casos significativos para testar que eu perdi?

Q2:

Ao escrever, devo esperar que haja alguma diferença significativa entre escrever dados aleatórios ou apenas alguns caracteres repetidamente?

Q3:

Quais são alguns tamanhos de blocos interessantes para estudar? Quantos números de blocos devo escrever / ler? Haveria um ponto para variar o número de blocos lidos / escritos durante o benchmarking ou é melhor usar um tamanho consistente para cada caso? Ou seja benchmarking usando

  • blocksize = 512
  • blocksize = 1024 ...

ou é mais interessante ver o que acontece quando a primeira leitura é um número e a próxima leitura é algum outro número de blocos? Devo tentar tamanhos de bloco que não são divisíveis por 2?

É claro que a resposta a muitas destas perguntas, exceto Q1, pode ser determinada simplesmente executando mais testes. Estou apenas tentando evitar benchmarks desnecessários para poder me concentrar mais qualitativamente nos dados que são relevantes. Existem simplesmente tantas combinações de testes que podem ser executadas.

    
por Filip Allberg 09.10.2017 / 13:27

0 respostas