O Linux usa a técnica de readahead para pré-carregar dados no page cache e acelerar o acesso a arquivos no modo de buffer I/O. O algoritmo de context readahead estende essa funcionalidade ao detectar fluxos sequenciais intercalados. Em cargas de trabalho com acesso aleatório intenso, o context readahead frequentemente interpreta incorretamente os padrões de acesso e faz prefetch de mais páginas do que o necessário, o que degrada o desempenho. O Alibaba Cloud Linux 2 e 3 disponibilizam o parâmetro vm.enable_context_readahead para que você ajuste esse comportamento conforme sua carga de trabalho.
Sistemas operacionais compatíveis
O parâmetro vm.enable_context_readahead tem suporte nas seguintes versões:
Alibaba Cloud Linux 2 com versão de kernel
4.19.91-18ou superiorAlibaba Cloud Linux 3
Verifique o status atual
Execute um dos comandos a seguir. A saída será 1 (ativado) ou 0 (desativado).
cat /proc/sys/vm/enable_context_readahead
sysctl -n vm.enable_context_readahead
Configure o context readahead
Use o arquivo de parâmetro /proc/sys/vm/enable_context_readahead ou a interface sysctl para ativar ou desativar o context readahead.
Desative o context readahead (recomendado para cargas de trabalho com acesso aleatório):
# Using the parameter file
sudo sh -c 'echo 0 > /proc/sys/vm/enable_context_readahead'
# Using sysctl
sudo sysctl -w vm.enable_context_readahead=0
Ative o context readahead (estado padrão):
# Using the parameter file
sudo sh -c 'echo 1 > /proc/sys/vm/enable_context_readahead'
# Using sysctl
sudo sysctl -w vm.enable_context_readahead=1