java手动回收线程_性能优化:线程资源回收

模型服务平台的排序请求出现超时和空指针异常,问题源于多线程处理中主线程超时返回但未中断子任务。通过分析发现,主线程在数据处理及模型预测阶段超时返回后,特征数据异步写入可能导致空指针异常。解决方案是改进多线程框架,主线程超时后中断子任务,并在计算流程中检查中断标志,有效减少超时请求和资源浪费。
摘要由CSDN通过智能技术生成

本文来自: PerfMa技术社区

PerfMa(笨马网络)官网

一、问题

模型服务平台的排序请求出现较多超时情况,且不定时伴随空指针异常。

二、问题发生前后的改动

召回引擎扩大了召回量,导致排序请求的item数量增加了。

三、出问题的模型

基于XGBoost预测的全排序模型。

四、项目介绍

web-rec-model:模型服务平台。用于管理排序模型:XGBoost、TensorFlow、pmml....召回模型:item2item,key2item,vec2item....等模型的上下线、测试模型一致性、模型服务等。

五、一次排序请求流程

1、如下图所示,一次排序请求流程包含:特征获取、向量获取、数据处理及预测。以上提到的三个步骤均采用多线程并行处理,均以子任务形式执行。每个阶段中间夹杂这数据处理的流程,由主线程进行处理,且每个阶段的执行任务均为超时返回,主线程等待子线程任务时,也采用超时等待的策略。(同事实现的一个树形任务执行,超时等待的线程框架)

2、特征数据闭环:该步骤为异步执行,将排序计算使用到的特征及分数,模型版本等信息记录。后续作为模型的训练样本,达到特征闭环。

04ddd2191c93c087b0d5dca5c77037f2.png

3、一次排序请求中,特征获取及向量获取为网络IO(IO密集型任务),超时可直接响应中断࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值