快取索引檔案擴容和故障修復

索引檔案擴容

/usr/local/oredge-node/logs/error.log 錯誤日誌中出現以下訊息時,表明快取索引檔案所需大小已超過當前配置值:

"cache index database is full: MDB_MAP_FULL: Environment mapsize limit reached, considering raising the map size?"

此問題不會影響資料轉發,但會影響 HTTP 快取清理功能。在這種情況下,我們需要根據實際情況對 cache index 檔案進行擴容。

擴容步驟

  1. 修改 /usr/local/oredge-node/conf/nginx.conf 配置:

    cache_index_map_size 1024m;
    

    將大小調整為所需值,例如 1024m(1GB)。

  2. 修改 /usr/local/oredge-node/conf/config.ini 配置檔案,新增以下內容:

    [cache]
    lmdb_size = 1024m
    

    請確保此處的大小與 nginx.conf 中的值保持一致。

    注意:如果您使用的 OpenResty Edge 版本低於 23.6.1,請在 /usr/local/oredge-node/conf/or-config.ini 中進行配置。同時,請通知我們更新您的配置包,以防後續升級還原您的修改。

  3. 重啟 OpenResty Edge Node:

    systemctl start upgrade-oredge-node
    
  4. 驗證配置是否生效:

    ls -lh /usr/local/oredge-node/data/cache_index.lmdb
    

    如果顯示的大小與配置的大小一致(如 1GB),則說明配置已生效。

索引檔案修復

/usr/local/oredge-node/logs/error.log 錯誤日誌中出現以下訊息時,表明索引檔案已損壞:

"cache index unable to seek cursor: MDB_CORRUPTED: Located page was wrong type"

此時需要刪除索引檔案。請注意,刪除索引檔案會導致已快取檔案的 cache purge 功能失效。

這種問題通常由意外關機(如突然斷電)導致索引檔案資料未能同步到磁碟造成。

刪除索引檔案並重啟 OpenResty Edge Node

  1. 刪除舊的索引檔案:

    sudo rm -fr /usr/local/oredge-node/data/cache_index.lmdb/*
    
  2. 重啟 OpenResty Edge Node:

    systemctl start upgrade-oredge-node
    

透過以上步驟,您可以有效地擴容快取索引檔案並修復相關故障,確保 OpenResty Edge Node 的正常執行。