You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除MEM+SSD分层存储下的空间不足日志告警

问题背景

当前部署MEM+SSD两级分层存储,MEM层长期占用率约90%,SSD层偶发空间占满情况,运行过程中频繁刷出如下告警日志:

2022-06-14 07:11:43,607 WARN  TieredBlockStore - Target tier: BlockStoreLocation{TierAlias=MEM, DirIndex=0, MediumType=MEM} has no available space to store 67108864 bytes for session: -4254416005596851101
2022-06-14 07:11:43,607 WARN  BlockTransferExecutor - Transfer-order: BlockTransferInfo{TransferType=SWAP, SrcBlockId=36401609441282, DstBlockId=36240078405636, SrcLocation=BlockStoreLocation{TierAlias=MEM, DirIndex=0, MediumType=MEM}, DstLocation=BlockStoreLocation{TierAlias=SSD, DirIndex=0, MediumType=SSD}} failed. alluxio.exception.WorkerOutOfSpaceException: Failed to find space in BlockStoreLocation{TierAlias=MEM, DirIndex=0, MediumType=MEM} to move blockId 36240078405636 
2022-06-14 07:11:43,607 WARN  AlignTask - Insufficient space for worker swap space, swap restore task called.
现有配置的设计缺陷判定

现有配置存在明确的参数适配缺陷,并非两级分层存储架构本身的设计问题,核心矛盾是存储水位、预留空间规则和分层存储的块交换逻辑不匹配:

  • MEM层长期维持90%的高占用率,没有给块写入、块换入换出操作预留足够的临时工作空间,触发写入、迁移操作时直接报空间不足
  • SSD层未配置合理的淘汰触发阈值,偶发空间占满时,上层MEM的冷块无法向下迁移,直接导致SWAP类型的块迁移任务失败,进而触发swap空间恢复对齐任务,频繁刷告警的同时还会挤占正常读写的IO资源。
告警连锁触发逻辑

三条告警是顺序触发的连锁反应:

  • 第一条TieredBlockStore告警:MEM层目标目录剩余空间不足64MB(日志中记录的67108864字节),无法满足当前会话的块存储请求
  • 第二条BlockTransferExecutor告警:系统尝试将MEM中的冷块交换到SSD、给新写入块腾空间的SWAP任务执行失败,失败原因要么是MEM层腾挪时没有足够临时连续空间,要么是SSD层已经占满无法接收迁出的块,最终抛出WorkerOutOfSpaceException
  • 第三条AlignTask告警:块交换失败后,系统自动触发交换空间恢复对齐任务,该任务频繁触发本身就是存储配置不合理的明确信号。
告警消除调整手段

所有调整均在Alluxio Worker端配置完成,修改后重启Worker进程即可生效:

  • 调整各层存储高低水位阈值:MEM层(层级编号0)设置高水位比例0.8、低水位比例0.7,SSD层(层级编号1)设置高水位比例0.85、低水位比例0.75。当某层存储占用达到高水位线时,自动触发冷块淘汰/下迁,直到占用降到低水位线后停止,保证每层始终预留15%~20%的空闲空间,不会被业务数据完全写满。对应配置项为alluxio.worker.tieredstore.level{层级编号}.watermark.high.ratio、alluxio.worker.tieredstore.level{层级编号}.watermark.low.ratio
  • 配置MEM层强制预留空间:给MEM层分配10%总容量的专属预留空间,这部分空间不会被常规业务写入占用,专门留给块交换、临时写入操作使用,对应配置项为alluxio.worker.tieredstore.level0.reserved.ratio,参数值设为0.1即可
  • 开启SSD层异步淘汰:如果SSD层下方没有挂载HDD等更低层级的存储,将SSD层的块淘汰策略设置为LRU,开启异步淘汰功能,长期未访问的冷块在确认已持久化到底层UFS后直接从SSD删除,避免SSD被冷块占满导致上层块无法下迁,对应配置项为alluxio.worker.tieredstore.level1.evictor.class,参数值设为alluxio.worker.block.evictor.LRUEvictor
  • 可选块大小优化:如果集群中小文件占比偏高,可以将默认块大小从64MB调整为32MB,降低单次块迁移需要的连续空间要求,减少空间碎片导致的块分配失败
  • 补充空间监控:新增存储层占用率监控规则,当MEM层占用超过80%、SSD层占用超过85%时提前触发告警,避免单任务大写入直接打满存储层。

内容的提问来源于stack exchange,提问作者ChanChan Mao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:48:15