Na E / S de disco, existe uma coisa chamada elevador. O subsistema de disco tenta evitar golpear a cabeça do disco em todos os pratos. Ele reordenará as solicitações de E / S (quando não forem proibidas, por exemplo, por uma barreira), para que o cabeçote se mova do interior do disco para o exterior e vice-versa, executando as E / S solicitadas no caminho.
A segunda coisa é mesclar a solicitação de E / S. Se houver muitas solicitações dentro de uma janela de tempo curto, que acessam partes diferentes do arquivo, o subsistema de E / S tentará obter todos os dados de uma só vez, em vez de emitir várias solicitações desconexas.
Tanto quanto o ajuste. Se você é o criador do aplicativo, há muito o que fazer. Você pode emitir E / Ss grandes e seqüenciais sempre que puder e usar fsync () et.al. quando você precisar ter certeza de que os dados estão nos pratos.
Se você é um administrador de sistemas e sabe absolutamente que as solicitações de dados de 2 aplicativos saltam, e eles tentam ler arquivos seqüencialmente (por exemplo, você tem 2 DVDs sendo transcodificados em paralelo), sim, aumentar o readahead deve ajudar. Caso contrário, você precisará examinar seus padrões e tamanhos de E / S, considere seu nível de RAID (se houver) e outros fatores, antes de fazer qualquer ajuste. Veja quais são seus gargalos reais, antes de começar a ajustar, pode ser difícil adivinhar o que realmente está limitando seu sistema.