首页 > 解决方案 > pymysql IO 期间 CPU 过高

问题描述

我正在尝试在主要是 IO 绑定的 python 应用程序上调试高 CPU 使用率。python 应用程序从队列中轮询消息,执行一堆 MySQL 查询和一个外部 API 调用。它不是多线程的,我们生成多个 python 进程(大约 4 倍的内核数)来实现并行性。多进程应用程序最终在负载下消耗 90% 以上的 CPU(当队列中有足够的消息时)。在分析应用程序时,似乎表明在 pymsql 从套接字写入或读取时消耗了大部分 CPU。有没有办法优化pymysql以消耗更少的CPU?它可以做零拷贝 I/O 吗?或者 pymysql 在 I/O 期间消耗大量 CPU 是否可以接受?

分析

环境:python 3.7.7 pymysql 0.7.11 mysql 5.7

标签: pythonpython-3.xpymysql

解决方案


推荐阅读