Linuxは先読み技術を使用して、データをプリフェッチしてページキャッシュにデータをロードすることでファイルアクセスを高速化します。 Linuxは、インターリーブされたシーケンシャルストリームを検出してファイルアクセスのパフォーマンスを最適化できるコンテキスト先読みアルゴリズムもサポートしています。 しかしながら、特定のランダムアクセスシナリオでは、コンテキスト先読みアルゴリズムは、判断が不十分になる傾向があり、必要以上に多くのページをプリフェッチする可能性がある。 上記のシナリオでは、コンテキスト先読み機能を無効にして、アプリケーションのパフォーマンスを大幅に向上させることができます。 このトピックでは、vm.enable_context_readaheadパラメーターを使用して、Alibaba Cloud Linux 2および3のファイルシステムのコンテキスト先読み機能を設定する方法について説明します。
制限事項
オペレーティングシステム:
カーネルバージョンが
4.19.91-18
以降のAlibaba Cloud Linux 2Alibaba Cloud Linux 3
手順
/proc/sys/vm/enable_context_readahead
システムパラメーターを設定して、ファイルシステムのコンテキスト先読み機能を有効または無効にします。 有効な値:
1: コンテキスト先読み機能を有効にします。
0: コンテキスト先読み機能を無効にします。
コンテキスト先読み機能のステータスを確認します。
パラメーターファイルを表示して、コンテキスト先読み機能のステータスを確認します。
cat /proc/sys/vm/enable_context_readahead
sysctlインターフェイスを使用して、コンテキスト先読み機能のステータスを確認します。
sysctl -n vm.enable_context_readahead
コンテキスト先読み機能を設定します。
コンテキスト先読み機能を有効にします。
パラメーターファイルを変更して、コンテキスト先読み機能を有効にします。
sudo sh -c 'echo 1 > /proc/sys/vm/enable_context_readahead'
sysctlインターフェイスを使用して、コンテキスト先読み機能を有効にします。
sudo sysctl -w vm.enable_context_readahead=1
コンテキスト先読み機能を無効にします。
パラメーターファイルを変更して、コンテキスト先読み機能を無効にします。
sudo sh -c 'echo 0 > /proc/sys/vm/enable_context_readahead'
sysctlインターフェイスを使用して、コンテキスト先読み機能を無効にします。
sudo sysctl -w vm.enable_context_readahead=0