您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Linux上使用Taskset在多核系统上使用Python Global Interpreter Lock(GIL)解决方法?

在Linux上使用Taskset在多核系统上使用Python Global Interpreter Lock(GIL)解决方法?

我从未听说有人使用Taskset来提高Python的性能。这并不意味着您的情况不会发生,而是一定要发布您的结果,以便其他人可以批评您的基准测试方法并提供验证。

不过,就我个人而言,我将使用消息队列将I / O线程与cpu绑定的线程解耦。这样,您的前端现在完全受网络I / O约束(有些使用HTTP接口,有些使用消息队列接口),非常适合您的线程情况。然后,cpu密集型进程可以使用多进程,也可以只是单个进程,等待工作到达消息队列。

从长远来看,您可能还需要考虑用Twisted或诸如eventlet之类的东西来替换线程化的I / O前端,因为即使它们对性能没有帮助,它们也应该提高可伸缩性。您的后端现在已经可以扩展,因为您可以根据需要在任意数量的计算机+ cpu上运行消息队列。

python 2022/1/1 18:36:53 有240人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶