dsp*_*099 3 performance ruby-on-rails heroku mongodb redis
我一直在研究一个对我来说不寻常的rails项目,因为它不会使用MySQL数据库,而是使用mongoDB + Redis.
该应用程序非常简单 - 从mongoDB到Redis的"启动"数据,之后rails将准备好接收来自用户的请求,这些请求主要包括从redis中提取数据,(我被告知它非常快速这个)快速计算并将一些数据发送回用户.这将每秒发生~1500-4500次,运气好的话.
在用户军队的威力下降到服务器之前,我想知道是否有办法在内部以某种方式"模拟"页面请求 - 比如运行rake任务以简单地每秒执行该页面N次或类似的东西?
如果没有,是否有办法测试该负载,然后对请求进行计时,以大致了解大多数用户将要查看的延迟?
性能测试是一个非常广泛的主题,正确的工具通常取决于您需要的结果的类型和质量.作为您必须处理的问题的一个示例,请考虑如果您为特定控制器操作编写基准规范会发生什么,并连续1000次调用该方法.这可能会很好地了解该控制器方法的性能,但它可能会使相同的redis或mongo查询进行1000次,数据库驱动程序可能会缓存该结果.这也忽略了您的Web服务器响应并提供作为请求一部分的静态资产的时间(这可能没问题,特别是如果您有其他测试).
ab
或ApacheBench,是一个简单的命令行工具,可用于测试应用程序的吞吐量和速度.当我想在网络服务器上发送一千个请求,或者测试我的应用程序可以处理多少个同时请求时(例如,比较杂种,独角兽,瘦身和巨人)时,我通常会先找到这个.因为所有请求都来自同一台服务器,这对于少量请求是有好处的,但随着请求数量的增加,您将受到测试机器上的资源(网络堆栈,CPU和内存)的限制.mechanize
- 我喜欢使用mechanize来快速编写与页面交互的脚本.它处理cookie和表单,但默认情况下不会像图像一样抓取资产.如果您正在进行自己的测试,它可能是一个很好的工具,但不应该是第一个去的. 归档时间: |
|
查看次数: |
628 次 |
最近记录: |