缓存索引文件扩容和故障修复

索引文件扩容

/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 的正常运行。