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

标签 memcached benchmarking couchbase

因此,testrunner 过于复杂,cbloadworkgen 没有给出请求时间,而 mcsoda 似乎无法与 membase 协议(protocol)一起工作(因此memcached 直接测试 - 完全避免集群层)。

还有吗?或者有什么已知的方法可以使用其中一种工具来真正让 couchbase 长凳? 我需要为 99%、95% 的请求计时。

最佳答案

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

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

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

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

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

CouchBase Cluster running at 1.6 mio ops/sec

结论是:不用担心 couchbase 本身。只需担心您自己的应用架构/代码及其延迟。一件事是,CouchBase 知道魔法——另一件事是即使它“坏”了——你很难用其他产品获得更好的延迟。

关于memcached - 什么可以用于(可靠地)测试 Couchbase 延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22964044/

相关文章:

java - 当 Hibernate 已经存在并使用缓存时使用 memcached

couchbase - 在 couchbase cbq cli 中从 N1SQL 返回 NULL 结果

couchbase - 沙发底座中的多个可选键

sql - 如何计算查询时间的累计和?

java - 如何从 Couchbase 读取二进制文档 - JavaSDK API

php - fatal error : Class 'Memcache' not found in

java - MemcachedClient cas 操作未返回已存在

php - 使用 yii 和 memcache,当两台服务器之一失败时出错

performance - 来自 monad 变压器基准测试的奇怪结果。一个错误?

mysql - 带 SSL 的 sysbench?