2

我有一个 Python 脚本,它使用 REST API 将 4GB 的数据以 10MB 的块发送到服务器。无论我同时调用多少个这些脚本,我都会得到完全相同的客户端整体吞吐量(10Gb 网络,服务器类系统):

1 次调用 = 300MB/s

2 次调用 = 300MB/s

4 次调用 = 300MB/s

8 次调用 = 300MB/s

起初我认为这是某种磁盘读取限制,但我修改了脚本,使其不需要访问硬盘驱动器并使用最少的内存,而且我仍然获得完全相同的吞吐量。执行期间的 CPU 和内存使用率极低。

进一步研究,我读到 Python 解释器是单线程的。这很好(我猜是有道理的),但是是否有可能一次只调用一个 Python 解释器的实例,尽管同时调用了多个 Python 脚本?

4

1 回答 1

1

不,单独执行的多个 python 进程不会共享线程或任何其他状态。

最可能的情况是 300MB/s 是您的客户端可以支持的最快速度,或者是您的服务器可以支持的最快速度。

300MB/s 非常快,以至于我想知道您是否没有将兆字节与兆比特混淆。

于 2013-03-23T03:31:56.840 回答