系统监控配置和稳定性提升指南

为保障推荐系统在生产环境中的高可用性、高性能和稳定性,您可以参考以下配置与操作建议。

  • 系统监控和报警配置

    • 当一分钟内(或者几分钟)推荐系统的RT数量超出阈值时,触发报警信息至钉钉或手机。

  • 推荐引擎上线

    • 先配置推荐引擎,然后在预发环境测试。观察推荐诊断功能是否正常。如果用户有点击、购买之类的行为,但是推荐结果和用户行为不相关,例如热门推荐排在前面,则系统一般存在问题。

    • 再配置一致性检查,观察特征一致之后再上线到生产环境。

  • 排序模型预热

    • 设置参数:model_config里配置一个参数:warmup_data_path: '/warmup'

    • 通过推荐结果诊断页面发送请求,TorchEasyRec会记录请求的pb文件到warmup_data_path中。

    • 重启预热:会读取warmup_data_path的请求,自动请求一遍。

      • 每天模型更新时,已经有warmup文件,不需要再手动预热。

    • 其他参数:

      • warmup_pb_files: 以pb文件形式保存的online request数量, 默认值64。

      • warm_up_count: 每个pb文件的warmup次数, 默认值20。

      • num_warm_threads: 并发预热线程池的大小, 默认值4。

  • 排序模型服务

    • 排序模型服务TorchEasyRec参数NO_GRAD_GUARD设置为1,禁止梯度计算。

  • 推荐引擎配置

    • 精排算法模型参数BatchCount:默认100,影响每次请求PAI-EAS打分的物品的数量。值越大,每次请求打分越慢。如果默认100,每次粗排或者精排为1000个,候选结果则会分成10次分别请求打分服务。

  • 排序模型的扩缩容

    • 压测新模型的QPS,然后根据测试结果设置新上线的PAI-EAS服务实例数量,最后再切流量。

    • 定时自动扩缩容:在每天QPS的高峰期提前定时扩容。例如晚上8点是高峰期,提前半个小时开始扩容(假设半小时内可以扩容完成)。高峰期结束之后缩容。

    • 水平自动扩缩容:增加按照CPUGPU利用率(例如:CPU利用率超过50%)或单个实例的QPS峰值(根据压测来设置)做扩容。

    • 排序实验流量从r1切换到r2的时候,需要提前对r2服务的PAI-EAS资源扩容。

  • 推荐引擎的扩缩容

    • 同上。

  • 重排逻辑上线

  • 排序侧模型降级

  • 客户侧引擎兜底(必选)

    • 客户侧做一个简单的实时协同过滤推荐或者热门推荐,当PAI-Rec返回超时或者返回为空时,用客户侧的推荐结果。

  • 设置超时兜底,防止线上出问题

    • 设置调用PAI-Rec推荐引擎的超时机制,当结果不足的时候做补足或者替换结果(参考热门召回)。