【发布时间】:2015-03-12 11:20:26
【问题描述】:
Openstack-Swift 正在将 evenlet.green.httplib 用于 BufferedHttpconnections。
当我对它的写入操作进行性能基准测试时,我可以观察到即使只有一个副本节点过载,写入吞吐量也会下降。 据我所知,写入仲裁是 3 个副本中的 2 个,因此仅重载一个副本不会影响吞吐量。
当我深入挖掘时,我观察到的是,后续请求会被阻止,直到之前的请求得到响应。这主要是因为 BufferedHttpConnection 在读取前一个响应之前停止发出新请求。
为什么 Openstack-swift 使用这样的方法?
这是 evenlet.green.httplib.HttpConnection 的常见行为吗?
从写入仲裁的角度来看,这没有意义,因为它就像等待所有响应而不是仲裁。
有什么想法,有什么解决方法可以使用同一个库来阻止这种行为吗?
【问题讨论】:
-
“为什么 Openstack-swift 使用这种方法?” - 问作者。或者更好……因为你是个聪明人……找出更好的方法来做,编码,测试,基准测试并提交补丁。
-
谢谢斯蒂芬。您的回复显示了我应该正确提出的问题。所以我改变了问题。一旦找到正确的方法,就会照你说的做。
标签: python python-2.7 openstack openstack-swift