我有一个 Python 脚本,它使用 REST API 将 4GB 的数据以 10MB 的块发送到服务器。无论我同时调用多少个这些脚本,我都会得到完全相同的客户端整体吞吐量(10Gb 网络,服务器类系统):
1 次调用 = 300MB/s
2 次调用 = 300MB/s
4 次调用 = 300MB/s
8 次调用 = 300MB/s
起初我认为这是某种磁盘读取限制,但我修改了脚本,使其不需要访问硬盘驱动器并使用最少的内存,而且我仍然获得完全相同的吞吐量。执行期间的 CPU 和内存使用率极低。
进一步研究,我读到 Python 解释器是单线程的。这很好(我猜是有道理的),但是是否有可能一次只调用一个 Python 解释器的实例,尽管同时调用了多个 Python 脚本?