脚本并发的记录
·
2 分钟阅读
·
Python
2017
年
2
月
9
日
17:47
目标:对几十万条客户端
IP
数据进行一次性读取并对其中约一半的数据通过查询
IP
库获取位置和运营商信息并
update
到原库。
问题:发现基本每秒才完成
1
条数据的更新,太慢太慢了。要加速!
方法:
第一步:
脚本并发。
多进程
or
多线程?
通过
map
映射,很轻松实现并发。但是具体选多进程还是多线程呢?看代码逻辑不是计算型的,瓶颈应该是在
IP
库查询或者
db
更新。
因此选择多线程,
6
线程(
1
:
1.5
)。
检查发现是快了一些,通过
s
how processlist
发现
6
个
update
中只有一个在
updating
,其他
5
个都是
locked
,原来
db
这里的确是个瓶颈,那就提升
db
并发。
第二布:提升
db
并发,方法是修改引擎为
INNODB
。
计算刚好每秒更新
5.8
~
7.5
个数据
多进程的方式(
4
进程),每秒才
1.08
~
2.38
个,很不稳定,最高也有
9.2
单进程单线程,每秒
0.57
个
相关文章
-
By liuzhijun , 2017-03-26, 分类: Python技术 编码 Python3 最重要的一项改进之一就是解决了 Python2 中字符串与字符编码遗留下来的这个大坑。 Python 编码为什么那么蛋疼?
Python · 4 分钟阅读
-
Supervisor ( http://supervisord.org ) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。
Python · 9 分钟阅读
-
2017 年 9 月 29 日 17:05 python多进程文件操作的一些理解 作者 有点d伤 关注 2017.01.13 15:35 字数 52 阅读 239评论 0喜欢 0 如果多进程都对同一个文件进行写入,那么就会出现多个进程争夺资源的问题。 会使写入的文件内容错乱。
Python · 6 分钟阅读
-
2017 年 9 月 28 日 17:56 Python 编码转换与中文处理 作者 hxzqlh 关注 2014.10.14 12:25 字数 2094 阅读 36683评论 4喜欢 38 python 中的 unicode 是让人很困惑、比较难以理解的问题.
Python · 11 分钟阅读