Desativando readahead com hdparm ou POSIX_FADV_RANDOM

Desativando readahead com hdparm ou POSIX_FADV_RANDOM

No documento do kernel Linux, o conselho POSIX_FADV_RANDOM parece desabilitar o readahead. Mas quando desativo o Readhead usando (sudo hdparm -A 0 /dev/sdb) recebo uma enorme degradação no desempenho; também notei que read(2) parece ser dividido a cada 512k e atua como chamadas separadas (não tenho certeza sobre o motivo, pode ser o setor máximo por solicitação).

Então, qual opção realmente desativa a leitura antecipada? POSIX_FADV_RANDOM também desativa o cache do sistema operacional ou devo adicionar um POSIX_FADV_DONTNEED.

Responder1

POSIX_FADV_RANDOMdesativa a leitura antecipada realizada pelo driver do sistema de arquivos do kernel. Aconselha a camada do sistema de arquivos a não ler mais do que foi solicitado. A leitura antecipada é feita no nível do arquivo: a camada do sistema de arquivos pode buscar dados extras do mesmo arquivo, mas não fará isso (muito) se você especificar POSIX_FADV_RANDOM.

hdparm -A 0leitura antecipada desabilitada realizada pelo próprio disco. Ele avisa ao disco que quando você lê um setor, ele não deve armazenar os próximos setores em seu cache interno.

Ambos desabilitam a leitura antecipada, mas em uma camada diferente do sistema.

POSIX_FADV_RANDOMapenas desativa a pré-busca. Defina uma região para POSIX_FADV_DONTNEEDse não quiser que ela seja armazenada em cache (ou se quiser que ela seja removida do cache).

informação relacionada