【发布时间】:2018-12-04 01:37:44
【问题描述】:
我们有一个CPU密集型的服务,它会对给定的参数做大量的计算,因此计算结果可以被缓存。
例如,/data/{id}.png 的请求第一次会花费将近 2s,但我们会缓存响应以供以后用户使用。当缓存命中时,响应时间为200ms(因为我们会在响应之前对缓存做一些轻量级的操作)。
现在我们想为这个服务提供一个性能测试报告,特别是最大并发和响应时间,但是对于指定的请求(带有指定的 id 参数),有缓存和没有缓存会有很大的差异。也就是说,在测试过程中,如果我们清除缓存,并使用随机生成的id参数报告,可能会命中缓存太少,导致报告错误。如果我们预先缓存大部分响应并进行一些测试,报告可能看起来不错。
所以我想知道如何反映这套西装的真实性能?
【问题讨论】:
-
这无关紧要,但您是否研究过 CloudFront?我们还有一个图像服务器在工作,它有助于减少服务器接收的请求数量,而且他们在世界各地分布着大量服务器以加快响应时间。这太好了。例如,我们的图像服务器支持的一种产品是联播拍卖系统。有时,数百人的浏览器可能会同时询问新产品的照片,因为有新的项目出现竞标 - 使用 CloudFront,我们的服务器会收到一个请求,而 CloudFront 会处理浏览器的响应。
-
@Nate:感谢我们在生产环境中提供 DNS 加速服务。而我发这个问题的原因是我想知道自己的真实表现。
-
明白了。对不起,我不知道你的实际问题的答案。我只是希望 CloudFront 对您有所帮助,因为它改变了我们的游戏规则。祝你好运!
标签: performance performance-testing