python - 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
解决方案
推荐阅读
- c# - 是否可以确定 Environment.SpecialFolder.System 驱动器的 Win32_DiskDrive SerialNumber?
- typescript - 如何在打字稿中动态地将装饰器添加到类中
- c# - 允许数据库查询但独立于所使用的数据库提供程序的设计模型
- java - 在 MPI (Java OpenMPI) 中发送大/大数据
- c# - Automapper 9.0 不起作用 ProjectsTo
- javascript - 谷歌日历 API - 源标题和小工具不适用于谷歌日历事件提示
- python-3.6 - 为什么我会看到 Python 套接字模块的 TypeError?
- php - 我可以在 Symfony 4 上使用 Doctrine (findOneBy()) 通过用户名和密码获取用户吗?
- python-3.x - 如何在soup.findAll python 3.2中获取一些类值
- php - 当 createQuery 中的 groupby 时,如何在奏鸣曲管理中修复“查询返回多行”