【问题标题】:NoSQL db performance testingNoSQL 数据库性能测试
【发布时间】:2012-02-20 05:45:50
【问题描述】:

假设您有一个 nosql 数据库 - redis、cassandra、mongodb。你需要检查这个数据库的整体性能——各种平台、操作系统,甚至是用于测试的编程语言。它不依赖于特定的应用程序或架构。

  • 您想看什么测试?你能帮我形成需求吗?
    • 数据库如何在集群中运行?
    • 在损坏的集群中?
    • 在云环境中?
    • 如何在打开 10k 连接时执行查询?
  • 您将使用哪些工具?
    • 是不是类似于 JMeter->http server->database?
    • Jmeter->tcp 应用程序->数据库?
    • 其他?

我发现的所有关于数据库性能测试的材料都类似于将数据库作为某些产品(特定方案、特定环境)的一部分进行测试。 当数据库是产品本身时,您是否考虑过数据库性能测试?

期待您的帮助。

-vova

【问题讨论】:

    标签: performance testing nosql load-testing database-performance


    【解决方案1】:
    • 检查此数据库的整体性能

    除非你需要为了好玩,或者你只是想为了获得基准而获得基准,否则我建议根据实际问题定制性能基准/requirements。

    例如,您真的需要疯狂的快速写入吗?你可以接受丢失数据吗?您介意花时间配置故障转移吗?您打算扩大规模还是扩大规模?您是否正在计划 TB 的数据?等等。

    从你给出的例子看 => Redis、Cassandra 和 MongoDB 是完全不同的:

    Redis 主要是缓存,而且速度非常快,但作为一个缓存,它对您进行中等复杂度聚合没有多大帮助。然而,它是目前最好的缓存(我认为)。 “Redis + 杀手级数据库”是一个理想的组合。它还有一个内置的benchmark tool你可以试试。

    Cassandra 是仿照 Google Big Table 的可靠产品(但我相信你已经知道了)。如果您有很多节点,它可以很好地扩展写入,但是如果您达到 TB 的数据,例如,添加节点可能需要几天的时间。它也不是最简单的。但是,如果您愿意付款,Datastax 的优秀人才可以消除所有复杂性。我有一个非常简单的Cassandra Bombardier 可以帮助你开始。

    MongoDB 是一个很棒的数据库,原因有很多:非常性感和简单的查询语言、良好的文档、庞大的社区等等。在其他方面不是很好:需要花时间正确地对其进行分片,然后再次重新分片[与例如Riak,它是自动完成的]。如果数据 [不仅仅是索引] 适合 RAM,它会非常快(写入),如果不适合,它会很快开始减速。有一个持续的猜测,你可能会lose data(来自 Basho 的一位工程师:“我个人花了一些时间寻找方法来证明 MongoDB 在失败时会丢失写入”) ,聚合查询可能需要一段时间,因为数据集不是很大。我有一个Mongo Performance Playground,你可能会觉得有用。

    【讨论】:

    • 问题是我们正在将此数据库视为产品。所以我们没有给出任何测试要求,只是一个测试要求,我们正在尝试制定策略——什么以及如何进行性能测试。
    • "将此数据库视为产品" => 解决特定问题还是仅用于学术目的?
    • 所有指向您的 github 的链接都已损坏。
    【解决方案2】:

    NoSQL benchmarks and performance evaluations 中,我整理了一个正确的基准列表,它们清楚地定义了基准的目的并比较了相似的功能(苹果对苹果的比较);有太多的基准测试至少没有达到基准测试的这些基本要求之一。通过这些,您将能够提取对您自己的基准测试感兴趣的部分,并了解使用了哪些工具并获得一些基准测试代码。

    到目前为止,最通用的 NoSQL 基准是 YCSB(雅虎云服务基准)。最近the Cubrid blog 发布了针对一些最流行的 NoSQL 解决方案运行此基准测试的结果,这可能会让您了解如何解释结果。

    【讨论】:

    • 如果您还想查看我所指的一些更简单或那些不正确的基准测试,您可以在 NoSQL benchmarks 中找到一个不错的选择
    • YCSB 值得研究。谢谢!我们需要为各种语言运行测试以检查不同驱动程序的性能的唯一问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多