加载csv到DolphinDB只用到2个logical CPU吗

今天在做数据加载的性能测试实验,有个问题请教一下。假如我现在要加载五分钟数据,每个原始csv文件300MB左右,用loadTextEx加载130个文件。htop实际观察到有两个logical cpu处于活跃状态(活跃的定义是cpu利用率在60%以上),所以这个加载过程是利用了两个logical CPU?  等价于我将来需要购买两个license能达到这个性能。   这段话的理解有哪里不对的吗?  另外,实际load过程会用到多少CPU,是由哪些因素决定的?    第三,每个logical CPU会开多少线程来执行任务? 这些问题都是针对server来问的。谢谢!

请先 登录 后评论

1 个回答

wale

loadTextEx这个算法用到了两个线程,一个线程在不停的解析csv,另一个线程在不停的往数据库写数据。如果你用submitJob启动多个数据加载任务,那会使用更多的cpu核。

关于cpu核和线程之间的关系,dolphinb本身没有限制,完全取决于用户的设置,workerNum,localExecutors,batchWorkerNum, webWorkerNum,subExecutors,这些都是不同类型的线程池。当然cpu核太少,线程太多,会导致频繁的context switch,整体的性能反而下降。

请先 登录 后评论