Desabilitando o readahead com hdparm ou POSIX_FADV_RANDOM

1

Do doc do kernel do Linux, o aviso POSIX_FADV_RANDOM parece desabilitar o readahead. Mas quando eu desabilitei o Readhead usando (sudo hdparm -A 0 / dev / sdb) eu tenho uma degradação enorme em performances; 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? O POSIX_FADV_RANDOM também desativa o cache do sistema operacional, ou devo adicionar um POSIX_FADV_DONTNEED.

    
por Djellel Eddine 17.07.2012 / 15:31

1 resposta

2

POSIX_FADV_RANDOM desativa a leitura antecipada executada pelo driver do sistema de arquivos do kernel. Aconselha a camada do sistema de arquivos a não ler mais do que o que foi perguntado. 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 0 desativou a leitura antecipada executada pelo próprio disco. Ele informa ao disco que, quando você lê um setor, ele não deve armazenar os próximos setores em seu cache interno.

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

POSIX_FADV_RANDOM apenas desativa a pré-busca. Defina uma região para POSIX_FADV_DONTNEED se você não quiser que ela seja armazenada em cache (ou se você quiser que ela seja removida do cache).

    
por 18.07.2012 / 02:17