MDB_READERS_FULL: Environment maxreaders limit reached
故障概述
故障原因
此故障主要發生在以下環境中:
- Edge Node 版本:
24.3.27-1
之前的版本 - 伺服器配置:CPU 核心數超過
62
個
這是由於早期版本在處理高核心數伺服器時存在的已知限制導致的。
故障影響
該故障將導致:
- Edge Node 程序無法正常啟動
- 服務完全不可用,嚴重影響業務可用性
解決方案
緊急聯絡支援
請立即聯絡 OpenResty Edge 支援團隊,同時可按以下步驟進行應急處理。
應急處理方案
方案一:禁用 Cache Index
適用條件:錯誤資訊中包含
cache index
例如:cache index unable to start read transaction: MDB_READERS_FULL: Environment maxreaders limit reached
1. 禁用 cache index
修改配置檔案 /usr/local/oredge-node/conf/config.ini
,新增以下內容:
[cache]
enabled = false
2. 清理相關配置
sed -i '/\(cache_index_lmdb\|cache_index_max_readers\|cache_index on;\)/d' /usr/local/oredge-node/conf/nginx.conf
3. 重啟服務
sudo systemctl start upgrade-oredge-node
方案二:升級 Edge Node 版本
說明:新版本的 Edge Node 通常向下相容舊版本的 Edge Admin,透過升級可徹底解決此問題。
1. 確定升級版本
根據您當前的 Edge Node 版本選擇對應的升級命令:
情況 1:當前版本 < 24.3.27-1
升級到 24.3.27-1
版本:
curl --compressed -SsLo openresty-edge-installer.sh \
'https://openresty.com/client/oredge/openresty-edge-installer.sh' && \
sudo bash openresty-edge-installer.sh -a upgrade -c node -v 24.3.27-1
情況 2:當前版本在 24.3.27-1
~ 25.6.15-1
之間
升級到 25.6.15-1
版本:
curl --compressed -SsLo openresty-edge-installer.sh \
'https://openresty.com/client/oredge/openresty-edge-installer.sh' && \
sudo bash openresty-edge-installer.sh -a upgrade -c node -v 25.6.15-1
2. 驗證升級結果
如果升級指令碼執行失敗,請檢查新版本是否已成功安裝:
RPM 系統(CentOS/RHEL/Fedora):
rpm -q openresty-edge-node
DEB 系統(Ubuntu/Debian):
dpkg -l openresty-edge-node
3. 手動重啟服務(如需要)
如果新版本已安裝但服務未正常啟動,請按以下步驟操作:
3.1 停止服務
sudo systemctl stop oredge-node
3.2 確認程序完全退出
sudo systemctl status oredge-node
3.3 配置引數調整
調整
cache_index_max_readers
引數:- 如果配置檔案中已存在該引數,將值修改為
516
- 如果不存在,執行以下命令新增:
sudo sed -i '/cache_index_lmdb/a \ cache_index_max_readers 516;' /usr/local/oredge-node/conf/nginx.conf
- 如果配置檔案中已存在該引數,將值修改為
調整
lua_config_max_readers
引數:- 如果配置檔案中已存在該引數,將值修改為
516
- 如果不存在,執行以下命令新增:
sudo sed -i '/lua_config_map_size/a \lua_config_max_readers 516;' /usr/local/oredge-node/conf/nginx.conf
- 如果配置檔案中已存在該引數,將值修改為
3.4 啟動服務
sudo systemctl start oredge-node
3.5 檢查服務狀態
sudo systemctl status oredge-node
後續處理
問題仍未解決
- 立即聯絡 OpenResty Edge 支援團隊獲得進一步技術支援
問題已解決
- 建議聯絡支援團隊瞭解最新穩定版本
- 制定升級計劃以避免類似問題再次發生