我有一个 Python 脚本,它使用 REST API 以 10MB 的 block 向服务器发送值(value) 4GB 的数据。无论我同时调用多少这些脚本,我都获得了完全相同的客户端总吞吐量(10Gb 网络,服务器类系统):
1 次调用 = 300MB/s
2 次调用 = 300MB/s
4 次调用 = 300MB/s
8 次调用 = 300MB/s
起初我认为这是某种磁盘读取限制,但我修改了脚本,使其不需要硬盘驱动器访问并使用最少的内存,我仍然获得完全相同的吞吐量。执行期间的 CPU 和内存使用率极低。
进一步研究后,我了解到 Python 解释器是单线程的。这很好(我猜是有道理的),但是否有可能一次只调用一个 Python 解释器实例,尽管同时调用了多个 Python 脚本?
最佳答案
不,多个单独执行的 python 进程不会共享线程或任何其他状态。
最有可能的情况是 300MB/s 是您的客户端可以支持的最快速度,或者您的服务器可以支持的最快速度。
300MB/s 非常快,快到我想知道您是否没有混淆兆字节和兆比特。
关于python - 是否只有一个 Python 解释器执行多个并发脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582962/