简单描述下场景,我这边开发了一个服务是用来把Mysql的数据取出来,并进行分词及正负面操作后再导出到elasticsearch里面。 其实是多线程开发的,原本以为这些操作基本是网络io的操作,用多线程是没有问题. 但是通过这几天的观察速度还真是有些慢,每小时才50w的数据 (另外产品狗催我.. mysql-es导出服务速度确实有些慢,后来又增加了线程,但对于导出速度没啥提升,最直观的是单进程已经超过100%了. )
通过对函数耗时日志统计, 从mysql取数据,导出到elasticsearch,以及正负面计算都还行,最消耗时间的是分词… 我这不单单是通过api来分词,本地也会调用结巴分词模块..,这加速了导出程序在单进程下cpu 100%. 个人觉得requests本身性能也一般.