首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python异步核心对网站进行负载/压力测试

使用Python异步核心对网站进行负载/压力测试
EN

Stack Overflow用户
提问于 2011-07-27 22:04:53
回答 2查看 809关注 0票数 2

希望有人能帮上忙。

短版本:我想用Python构建我自己的网站压力测试器。

为什么?因为我喜欢它:)我不是在寻找预先构建的解决方案,即funkload或JMeter。作为一个编程练习,这似乎是一件有趣的事情。我还认为,学习如何做我想做的事,以后在其他情况下可能是有用的。

我想让它做什么?我打算让它随着时间的推移变得更加复杂,但我的第一个目标很简单:在尽可能短的时间内提出尽可能多的请求。我正在拍摄每秒300-500次请求。

我尝试过很多不同的方法。最有希望的两个是:

  1. 产卵线。他们很多。让每个线程发出一个请求。事实证明,这是最快的--每秒接近1次请求--500个线程意味着每秒将近500个请求,但是对于计算机来说,这似乎是极其密集的。在我看来,在Python中生成多个线程的内存和计算量是令人望而却步的。我觉得一定有一个更优雅的解决方案。
  2. 使用Python的异步库。我一直在胡闹,这看起来真的很酷,但我很快就结束了。如果我收到大约140个字节的请求,那么它能够每秒抛出>1000个请求,但我需要它能够处理响应相当大的请求,即100 of 500 of。引入更大的响应大小意味着,如果我幸运的话,它将每秒控制10-50个请求。

有人有什么想法或建议吗?如果我能以某种方式得到回应的大小,而不被强迫阅读它,那就太完美了。我想知道的是,我实际上得到了正确的字节数。数据是什么并不重要。

或者,如果这不是Python中的一个选项,那么老实说,我愿意尝试任何人必须提出的任何建议。我玩过Twister,但没有达到任何比我已经看到的线程的速度。

无论如何--任何帮助都是很好的。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-07-27 22:13:17

我建议你试试盖特姆。它可以非常简单地完成这项任务,因为您编写的代码看起来是同步的,并且使用python (类似于urllib2 )。它将非常快,因为它具有较低的内存开销(只支付您所使用的),并且它使用对IO的快速轮询系统调用。此代码示例非常接近你想要的东西。您需要在每个核心运行一个gevent工作人员。

票数 4
EN

Stack Overflow用户

发布于 2011-07-27 22:35:36

我建议您使用pycurl,用于libcurl的Python绑定。它有自己的异步事件循环,速度非常快。

还有一个简化的实现包装器,如果您不能按原样使用它的话,您可以对其进行调整。

请参阅Pycopia项目的WWW.client模块(我对其进行了维护)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6851823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档