2

我有一种服务,使用Twitter Streaming API实时使用twitter帖子。性能测试Twitter流媒体API消费者

我已经构建了一个后台进程,它连接到流,并将推送到Redis中。这是用node.js构建的

我需要做的是找出这个进程可以消耗的最大推文数。我需要对此设置进行性能测试。

什么是测试这个最好的方法?

我需要知道:

  • 能有多少鸣叫处理它落在了
  • 之前什么时候该进程不能处理更多的鸣叫

另一个原因发生,为什么我想要这样做是为了解决它是否值得使用node.js。 我宁愿用EventMachine来代替它。

回答

2

由于您本质上受到来自Twitter Streaming API的推文的频率和数量的限制,因此您对基准测试真正感兴趣的是您的后台进程相对于Redis的I/O性能。

模拟推文并生成伪推文或收集实际推文的重要抽样,并在您的基准测试中使用此数据集。在嘲笑/生成这个数据集之后,你可以精确地写出你的基准。例如,手动设置的数据,您可以将整个数据集一次全部推送到新的推文事件处理逻辑中,或者模拟活动的高峰和低谷。

当基准测试识别并隔离所需变量(微博数量)时,使用标准化样本并模拟不一致和外部行为(API限制,可变推/秒速率)。

+0

我可以看到如何测试工人,因为他们是独立的,并且有简单的输入和输出。 我需要做的是制定一种方法来测试流连接。那是我看到我的瓶颈的地方。我们只能与Twitter建立一个流连接,但我可以启动许多工作人员来迎合负载。 – 2012-07-18 09:28:30

+0

TwitterStream花园软管具有限速功能,因此它不会给出超过特定数字的结果(该数字是根据api的全球流量的%1)。当你达到这个限制时,它会开始给你提供跟踪限制通知。因此,您可以通过给予广泛的关键字集来测试流媒体,并查看您的系统如何处理该流。给一个关键字设置400个关键字,其中包含常见或流行的词语,如“爱”,“感觉”,“奥巴马”,“比伯”等。 – cubbuk 2013-01-04 08:44:23

0

我会建议创建自定义客户端模拟Twitter流API。客户端可以为您的应用程序生成推文消耗。我们可以使用支持自定义脚本的负载测试工具从分布式机器运行此twitter脚本以生成所需的负载。在生成推文时,您可以监视系统的运行状况,以衡量推文吞吐量对应用程序的影响。