A gravação aleatória no benchmark DISK mostra uma alta taxa de leitura no iostat

1

Estou executando um benchmark de gravação aleatória diretamente em alguns discos (HDD e SDD) e estou recebendo alguns dados de saída estranhos no monitor iostat. Além da taxa de gravação usual, há uma taxa de leitura que não consigo entender porque está lá.

Este é o programa de benchmark de gravação que fiz em C para o teste (o código principal apenas para a questão):

fd=open("/dev/sda", O_WRONLY|O_CREAT|O_TRUNC, 0666); 
for (;;) {
    offset2=DLIMIT * (double)random() / RAND_MAX;
    retval = lseek64(fd, offset2, SEEK_SET);
    handle("lseek64", retval == (off64_t) -1);
    retval = write(fd, buffer, BLOCKSIZE);
    handle("write", retval < 0);
}

Por exemplo, durante um teste de 60 segundos, o iostat mostra esses resultados médios:

54467,27 (rkB / s) | 38147,37 (wkB / s)

Eu fiz strace no programa em execução e ele mostra apenas os de write e lseek ..

Outra boa informação, se eu rodar este programa em um arquivo (sistema de arquivos montado do SDA), ele não mostrará nenhuma taxa de leitura ... apenas nesta situação "/ dev / sda".

Alguma idéia ou explicação para essa taxa de leitura fantasma?

    
por Gustavo Portela 21.03.2016 / 14:01

0 respostas