Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.5k views
in Technique[技术] by (71.8m points)

DolphinDB中使用loadTextEx加载文本文件

在DolphinDB数据加载性能测试实验中,我使用loadTextEx批量加载130个csv文本文件,htop实际观察到两个logical CPU处于活跃状态(活跃的定义是cpu利用率在60%以上)。
问题1:这个加载过程是利用了两个logical CPU吗?
问题2:实际的loadTextEx加载过程会用到多少CPU是由哪些因素决定的?
问题3:每个logical CPU会开多少线程来执行加载任务?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

loadTextEx这个函数实现用到了两个线程,一个线程不停地解析csv,另一个线程不停地往数据库写数据。如果用submitJob启动多个数据加载任务,那就会使用更多的cpu核。有关多任务多文件并行导入的例子可参阅 https://github.com/dolphindb/... 3.2节的例子。

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...