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 支持团队获得进一步技术支持
问题已解决
- 建议联系支持团队了解最新稳定版本
- 制定升级计划以避免类似问题再次发生