Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 我应该如何对系统进行基准测试以确定总体最佳体系结构选择?_Mongodb_Architecture_Amazon Ec2_Benchmarking_Backend - Fatal编程技术网

Mongodb 我应该如何对系统进行基准测试以确定总体最佳体系结构选择?

Mongodb 我应该如何对系统进行基准测试以确定总体最佳体系结构选择?,mongodb,architecture,amazon-ec2,benchmarking,backend,Mongodb,Architecture,Amazon Ec2,Benchmarking,Backend,这是一个有点开放的问题,但我正在寻找一个开放的答案。我正在寻找一种资源,可以帮助解释如何对不同的系统进行基准测试,但更重要的是如何分析数据并根据结果做出明智的选择 在我的具体案例中,我有一个4服务器设置,其中包括作为iOS游戏后端的mongo。所有服务器都运行Ubuntu 11.10。我读过很多文章,其中提出了一些建议,比如“如果CPU利用率很高,那么就进行此更改”。作为后端体系结构的新手,我不知道什么是“高CPU利用率” 我正在使用Mongo的监控服务(MMS),我正在收集一些关于它的信息,但

这是一个有点开放的问题,但我正在寻找一个开放的答案。我正在寻找一种资源,可以帮助解释如何对不同的系统进行基准测试,但更重要的是如何分析数据并根据结果做出明智的选择

在我的具体案例中,我有一个4服务器设置,其中包括作为iOS游戏后端的mongo。所有服务器都运行Ubuntu 11.10。我读过很多文章,其中提出了一些建议,比如“如果CPU利用率很高,那么就进行此更改”。作为后端体系结构的新手,我不知道什么是“高CPU利用率”

我正在使用Mongo的监控服务(MMS),我正在收集一些关于它的信息,但我不知道如何做出选择或识别瓶颈。其他服务器提供从游戏客户端到mongo和mongo的请求,但我不太确定应该如何进行基准测试或记录来自它们的重要信息。我还使用Amazon的EC2来托管我的所有实例,这也提供了一些信息

因此,有些问题: 什么统计信息对登录后端设置很重要?(CPU、RAM等)

监控这些统计数据的好方法是什么

我如何分析统计数据?(RAM使用率高/读取请求低等)

在尝试为我的架构创建压力测试或基准测试脚本之前,我应该知道哪些技巧

同样,如果有一个资源可以回答这些问题,我不需要在这里解释,我只是无法自己找到一个

如果有关我的设置的更多详细信息有帮助,我也可以提供这些信息


谢谢

我喜欢将性能测试视为一个小型项目,因为有现实需要。从要解决的问题开始:是否担心如果响应时间太慢,用户的游戏体验会很差?还是担心过多的钱会花在不必要的服务器硬件上

简而言之,是什么推动了性能测试的需求?这个练习有时被称为“确定要解决的问题”。它是关于要实现的目标——因为如果没有目标,为什么要完成所有测试性能的工作?确定要解决的问题最终将推动测量什么以及如何测量

在问题确定之后,下一组是写下什么问题必须回答才能知道何时达到目标。例如,如果目标是确保响应时间足够短,以提供良好的游戏体验,则会想到以下问题:

  • 在游戏体验变得不可接受之前,最长的响应时间是多少
  • 与零无法区分的最大响应时间是多少?也就是说,如果用户感觉200ms响应时间与1ms响应时间相同,则响应时间的下限为200ms
  • 必须考虑哪些客户端硬件?例如,如果游戏仅在iOS 5设备上运行,则无需测试原始iPhone,因为原始iPhone无法运行iOS 5
这些只是我作为例子提出的几个问题。一份完整的、深思熟虑的清单看起来可能会大不相同

写下问题后,下一步是确定哪些指标将提供问题的答案。您可能已经遇到了很多指标:响应时间、每秒事务数、RAM使用率、CPU利用率等等

在选择了一些合适的指标之后,编写一些测试场景。这些是测试的简单英语描述。例如,测试场景可能涉及使用特定设备或特定版本的iOS同时模拟特定数量的游戏,以在特定游戏级别上实现特定游戏设置组合

一旦编写了脚本,就考虑编写测试脚本来模拟任何模拟服务器工作负载的工具。然后运行脚本为所选度量建立基线

建立基线后,更改参数并绘制结果图表。例如,如果所选指标之一是CPU利用率与每秒进入服务器的TCP数据包数,则绘制一个图表,以了解当数据包/秒从0变为10000时,利用率是如何变化的

一般来说,在调整实验的自变量时,观察性能的变化。使用这些硬数据回答流程中前面创建的问题

我在谷歌上搜索了“软件性能测试方法”,找到了几个不错的链接:

  • 看看这份白皮书
  • 请查看本手册的方法部分

  • 我喜欢将性能测试视为一个小型项目,因为这是一个现实世界的需要。从要解决的问题开始:是否担心如果响应时间太慢,用户的游戏体验会很差?还是担心过多的钱会花在不必要的服务器硬件上

    简而言之,是什么推动了性能测试的需求?这个练习有时被称为“确定要解决的问题”。它是关于要实现的目标——因为如果没有目标,为什么要完成所有测试性能的工作?确定要解决的问题最终将推动测量什么以及如何测量

    在问题确定之后,下一组是写下什么问题必须回答才能知道何时达到目标。例如,如果目标是确保响应时间足够短,以提供良好的游戏体验,则会想到以下问题:

    • 在游戏体验变得不可接受之前,最长的响应时间是多少
    • 不间断的最大响应时间是多少