在DolphinDB数据加载性能测试实验中,我使用loadTextEx批量加载130个csv文本文件,htop实际观察到两个logical CPU处于活跃状态(活跃的定义是cpu利用率在60%以上)。问题1:这个加载过程是利用了两个logical CPU吗?问题2:实际的loadTextEx加载过程会用到多少CPU是由哪些因素决定的?问题3:每个logical CPU会开多少线程来执行加载任务?
loadTextEx这个函数实现用到了两个线程,一个线程不停地解析csv,另一个线程不停地往数据库写数据。如果用submitJob启动多个数据加载任务,那就会使用更多的cpu核。有关多任务多文件并行导入的例子可参阅 https://github.com/dolphindb/... 3.2节的例子。
关于cpu核和线程之间的关系,DolphinDB本身没有限制,完全取决于用户的设置,workerNum,localExecutors,batchWorkerNum, webWorkerNum,subExecutors,这些都是不同类型的线程池。当然cpu核太少,线程太多,会导致频繁的context switch,整体的性能反而下降。
2.1m questions
2.1m answers
60 comments
57.0k users