全部產品
Search
文件中心

Alibaba Cloud Linux:如何設定檔系統的context readahead預讀以提升檔案訪問效能

更新時間:Sep 12, 2024

Linux系統採用預讀(readahead)技術以加速檔案快取訪問(buffer IO)模式。同時,系統還支援上下文預讀(context readahead),旨在最佳化多個交錯順序資料流情境下的檔案訪問效能。然而,在某些隨機訪問情境中,上下文預讀演算法可能出現誤判,導致讀取過多實際不需要的頁面。在這類情境下,關閉上下文預讀演算法能顯著提升應用效能。本文將介紹Alibaba Cloud Linux 2/3系統中通過vm.enable_context_readahead參數配置來調整檔案系統的上下文預讀功能。

使用限制

作業系統:

  • Alibaba Cloud Linux 2(核心4.19.91-18及以上版本)。

  • Alibaba Cloud Linux 3。

enable_context_readahead配置說明

通過設定/proc/sys/vm/enable_context_readahead系統配置參數,可以開啟或關閉檔案系統的context readahead預讀功能。配置參數說明如下:

  • 1:開啟context readahead預讀。

  • 0:關閉context readahead預讀。

  1. 查詢當前context readahead預讀狀態。

    • 通過讀參數檔案查詢當前context readahead預讀狀態。

      cat /proc/sys/vm/enable_context_readahead
    • 通過sysctl介面查詢當前context readahead預讀狀態。

      sysctl -n vm.enable_context_readahead
  2. 配置context readahead預讀狀態。

    • 開啟context readahead預讀狀態。

      • 通過寫參數檔案開啟context readahead預讀狀態。

        sudo sh -c 'echo 1 > /proc/sys/vm/enable_context_readahead'
      • 通過sysctl介面開啟context readahead預讀狀態。

        sudo sysctl -w vm.enable_context_readahead=1
    • 關閉context readahead預讀狀態。

      • 通過寫參數檔案關閉context readahead預讀狀態。

        sudo sh -c 'echo 0 > /proc/sys/vm/enable_context_readahead'
      • 通過sysctl介面關閉context readahead預讀狀態。

        sudo sysctl -w vm.enable_context_readahead=0