Mongodb 我应该如何对系统进行基准测试以确定总体最佳体系结构选择?
这是一个有点开放的问题,但我正在寻找一个开放的答案。我正在寻找一种资源,可以帮助解释如何对不同的系统进行基准测试,但更重要的是如何分析数据并根据结果做出明智的选择 在我的具体案例中,我有一个4服务器设置,其中包括作为iOS游戏后端的mongo。所有服务器都运行Ubuntu 11.10。我读过很多文章,其中提出了一些建议,比如“如果CPU利用率很高,那么就进行此更改”。作为后端体系结构的新手,我不知道什么是“高CPU利用率” 我正在使用Mongo的监控服务(MMS),我正在收集一些关于它的信息,但我不知道如何做出选择或识别瓶颈。其他服务器提供从游戏客户端到mongo和mongo的请求,但我不太确定应该如何进行基准测试或记录来自它们的重要信息。我还使用Amazon的EC2来托管我的所有实例,这也提供了一些信息 因此,有些问题: 什么统计信息对登录后端设置很重要?(CPU、RAM等) 监控这些统计数据的好方法是什么 我如何分析统计数据?(RAM使用率高/读取请求低等) 在尝试为我的架构创建压力测试或基准测试脚本之前,我应该知道哪些技巧 同样,如果有一个资源可以回答这些问题,我不需要在这里解释,我只是无法自己找到一个 如果有关我的设置的更多详细信息有帮助,我也可以提供这些信息Mongodb 我应该如何对系统进行基准测试以确定总体最佳体系结构选择?,mongodb,architecture,amazon-ec2,benchmarking,backend,Mongodb,Architecture,Amazon Ec2,Benchmarking,Backend,这是一个有点开放的问题,但我正在寻找一个开放的答案。我正在寻找一种资源,可以帮助解释如何对不同的系统进行基准测试,但更重要的是如何分析数据并根据结果做出明智的选择 在我的具体案例中,我有一个4服务器设置,其中包括作为iOS游戏后端的mongo。所有服务器都运行Ubuntu 11.10。我读过很多文章,其中提出了一些建议,比如“如果CPU利用率很高,那么就进行此更改”。作为后端体系结构的新手,我不知道什么是“高CPU利用率” 我正在使用Mongo的监控服务(MMS),我正在收集一些关于它的信息,但
谢谢 我喜欢将性能测试视为一个小型项目,因为有现实需要。从要解决的问题开始:是否担心如果响应时间太慢,用户的游戏体验会很差?还是担心过多的钱会花在不必要的服务器硬件上 简而言之,是什么推动了性能测试的需求?这个练习有时被称为“确定要解决的问题”。它是关于要实现的目标——因为如果没有目标,为什么要完成所有测试性能的工作?确定要解决的问题最终将推动测量什么以及如何测量 在问题确定之后,下一组是写下什么问题必须回答才能知道何时达到目标。例如,如果目标是确保响应时间足够短,以提供良好的游戏体验,则会想到以下问题:
- 在游戏体验变得不可接受之前,最长的响应时间是多少
- 与零无法区分的最大响应时间是多少?也就是说,如果用户感觉200ms响应时间与1ms响应时间相同,则响应时间的下限为200ms
- 必须考虑哪些客户端硬件?例如,如果游戏仅在iOS 5设备上运行,则无需测试原始iPhone,因为原始iPhone无法运行iOS 5李>
一旦编写了脚本,就考虑编写测试脚本来模拟任何模拟服务器工作负载的工具。然后运行脚本为所选度量建立基线
建立基线后,更改参数并绘制结果图表。例如,如果所选指标之一是CPU利用率与每秒进入服务器的TCP数据包数,则绘制一个图表,以了解当数据包/秒从0变为10000时,利用率是如何变化的 一般来说,在调整实验的自变量时,观察性能的变化。使用这些硬数据回答流程中前面创建的问题 我在谷歌上搜索了“软件性能测试方法”,找到了几个不错的链接:我喜欢将性能测试视为一个小型项目,因为这是一个现实世界的需要。从要解决的问题开始:是否担心如果响应时间太慢,用户的游戏体验会很差?还是担心过多的钱会花在不必要的服务器硬件上 简而言之,是什么推动了性能测试的需求?这个练习有时被称为“确定要解决的问题”。它是关于要实现的目标——因为如果没有目标,为什么要完成所有测试性能的工作?确定要解决的问题最终将推动测量什么以及如何测量 在问题确定之后,下一组是写下什么问题必须回答才能知道何时达到目标。例如,如果目标是确保响应时间足够短,以提供良好的游戏体验,则会想到以下问题:
- 在游戏体验变得不可接受之前,最长的响应时间是多少
- 不间断的最大响应时间是多少