需求
计算700个字段的分布结果,每个字段数据量百万起步 ,根据字段从mongon中提取数据 做数据集分布计算
存在的问题,
-- mongodb查询耗时较多,(经测试,10个字段和一个字段的查询其实耗时差距不大,主要是数据返回导致内存oom)
-- 字段多希望采用多线程并行执行数据集分布计算 (服务器8核 理论可以8个线程同时执行)
-- 并发线程过多导致查询mongo并发多,会出现超时情况(mongo游标超时,默认10分钟)
-- 多线程并行请求mongdb 字段超过30个时 内存oom (可能由于在计算过程中的数据集复制,导致数据膨胀)
-- 之前for循环处理每次查询10个字段再计算 测试结果 整体耗时1800s 计算耗时100s内,mongo查询耗时大
目前方案
线程池 5核心线程
mongo查询5个字段
测试耗时800s
解决的重点
-- mongo并发查询请求问题,是否可以直接返回不采用游标方式?增加并发量
-- 计算时对内存的管理,检查计算时内存的处理是否存在可优化的地方