什么可以用于(可靠)测试Couchbase延迟?

时间:2014-04-09 13:27:34

标签: memcached benchmarking couchbase

因此,testrunner过于复杂,cbloadworkgen没有给出请求时间,并且mcsoda似乎与membase协议有关(因此执行memcached直接测试 - 完全避免了群集层)

还有别的吗?或者使用其中一种工具真正替换沙发基地的任何已知方法? 我需要时间为99%,95%的请求。

2 个答案:

答案 0 :(得分:4)

您是在引用开发或生产服务器方案吗? Couchbase延迟本身不会成为瓶颈 - 它基本上只是网络延迟和导致延迟的应用程序堆栈(例如PHP)。

我使用weighttp工具主要测试开发场景中可能的请求/秒 - 该工具还应该为每个HTTP请求提供平均延迟。你可以find my setup on GitHub.使用真正的HTTP请求调用gwan C-servlet进行多个CB查询。

如果您想了解如何使用couchbase获得最佳延迟和吞吐量:

  • 使用libcouchbase使用本机异步代码。 PHP,NodeJS,Java ..所有这些都是生产堆栈中的真正瓶颈。
  • Async允许在飞行中保留多个couchbase查询 - 这样延迟可以并行发生" - 最终用户只会注意到轻微的改进,服务器负载将是
  • 确保您的应用使用连接池。您不想为您正在服务的每个用户请求初始化连接!上面的servlet实现了一个粗略的实现。
  • 如果可能,请将couchbase实例保留在本地。我正在运行一个集群,其中每个节点都在运行我的应用服务器和一个沙发基础实例,每个cb节点都有自己的存储桶来缓存可以缓存的东西(比如配置)。如果您的备份需求不是那么严格,您可以使用XDCR - 不需要自动故障转移到活动副本。如果您使用1个副本运行2个节点,则意味着50%的密钥空间位于另一台计算机上。
  • 如果数据集很大,请确保使用SSD。

通过这种方式,您可以获得令人难以置信的性能,如果使用一个像样的本地节点(i7 4770k,32 GB DDR3-1600),240 GB SSD(德国这里约75美元/月),可以获得高达300.000 ops /秒的性能如果在集群中则更少(不确定原因)。这是一个8节点CouchBase设置(带有24个额外的负载生成器节点)我使用上述测试基准运行:

CouchBase Cluster running at 1.6 mio ops/sec

结论是:不要担心沙发基地本身。只担心您自己的应用程序架构/代码及其延迟。有一件事是,CouchBase知道魔法 - 另一件事是即使它的“坏”也是如此。 - 你很难在其他产品上获得更好的延迟。

答案 1 :(得分:3)

尝试将cbc-pillowfight作为libcouchbase-tools包的一部分提供。这支持memcached和couchbase协议,并提供类似于您想要的时间。例如:

cbc pillowfight -h localhost -b my_bucket -i 10000 -T -d

-T显示时间,-d启用memcached(哑)节点。确保将my_bucket更改为您的存储桶的名称。完整文档位于cbc man page

示例定时输出(为简洁而剪切):

[1397065322.061025] Populate
              +---------+---------+---------+---------+
[110 - 119]us |################ - 68
[120 - 129]us |######################################## - 163
[130 - 139]us |######################### - 105
[140 - 149]us |###################### - 93
[150 - 159]us |####################### - 94
...
              +----------------------------------------
[1397065322.070389] Run
              +---------+---------+---------+---------+
[110 - 119]us |################ - 69
[120 - 129]us |######################################## - 165
[130 - 139]us |########################## - 109
[140 - 149]us |###################### - 94
[150 - 159]us |####################### - 95
[160 - 169]us |################### - 81
[170 - 179]us |############### - 62
[180 - 189]us |############### - 63
[190 - 199]us |########### - 46
[200 - 209]us |######## - 35
[210 - 219]us |######### - 39
...
              +----------------------------------------