线程说:不是我想爆炸,只怪你Nd4j没用好

背景:

去年接手了一个排序服务,用于播单、声音、主播排序。接手于来处理过内存溢出问题,后面也没再出现过其他状况。但是最近该项目用于离线任务计算后,出现了问题。并且问题发生时间是在计算量扩量之后。

项目背景:

  1. 该项目与算法的配合方式:项目提供接口规范,涉及:排序算法加载、自动更新、模型调用、输入参数解析、告知模型所需特征数据(包括特征表、表字段等)。
  2. 项目需要做的事:加载算法–>解析请求数据–>获取特征数据–>调用模型排序–>解析排序结果–>结果拼装返回。

二、问题背景

1、发现项目的k8s容器会出现重启现象。
发生问题时,容器配置:CPU:4个:排序计算需要; 内存:堆内6G:w2v模型本地加载; 对外3G:各种算法包计算使用。

三、问题结论:

Nd4j计算框架在做计算时(使用了OpenMP库:OpenMP是一个开源的并行编程API,支持C/C++/Fortran语言。ND4j使用以C++编写的后端,因此我们用OpenMP来改善CPU的并行计算性能。),库里面直接调用pthread_create进行线程创建,多线程并行计算。由于对该领域的包不是很了解,就不深挖该计算框架的优化。直接摒弃该库采用其他方式做计算。

四、问题排查流程

查看监控系统,观察重启发生时,容器实例的资源情况

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值