【发布时间】:2016-04-29 23:35:52
【问题描述】:
今天,我编写了一个简单的脚本,允许我对 openstack swift 服务器进行基准测试:
import swiftclient
import uuid
from concurrent.futures import ThreadPoolExecutor
def create():
client = swiftclient.client.Connection(
user='', key='',
authurl='https://auth/', auth_version='2.0',
tenant_name='',
os_options={'tenant_id': '',
'region_name': ''})
while True:
uid = str(uuid.uuid4())
client.put_object(container='', obj=uid, contents=b'\x00')
executor = ThreadPoolExecutor(max_workers=100)
for _ in range(100):
executor.submit(create)
这很顺利,但我注意到了一件奇怪的事情,该进程的 CPU 使用率达到了 400% 以上。 由于 GIL 不应允许使用超过 100% 的 CPU,这是怎么发生的?
【问题讨论】:
标签: python python-3.x gil