最好是:压力testing整个系统与分析和压力testing的具体部分?

我在一家完全在云端的公司工作,我们已经开始了一个压力testing项目。 这个想法是把生产中的所有东西加载到一个新的环境中,并对其进行压力testing,以找出系统的总容量和瓶颈。

现在,我记得当时我们压力testing物理服务器以及私有云,我记得几乎不可能获得完整的生产副本和所有移动部分。 而且,即使使用像sysbench,Jmeter和ab这样的压力testing工具,也不能像生产一样精确模拟stream量。

我们通常会尽可能多地监控和分析生产情况,找出问题,然后尝试通过在压力testing环境中对其进行模拟来解决具体问题。

为了计算我们曾经使用过的容量(还有一些还是这样),使用一个计算来预测什么时候容量会被满足,或者如果响应时间低于满意的水平。

考虑到再生产和压力testing这个项目耗费时间和资源,这是find系统瓶颈和衡量能力的最好方法,还是“老”的方式更好?

强调整个系统并使用类似生产的环境(甚至生产)总是更好的。

首先检查可以按比例缩小的testing环境find性能负载问题? 问题及其答案。

应用程序的底层基础结构由许多不同的组件构成,如caching,Web服务器,应用程序服务器和磁盘(I / O)。 带宽和CDN也在其function中起作用,因此在缩放期间必须将其考虑在内。 根据configuration和缩放的方式,每个组件在应用程序中的行为都不相同。 但是,分层结构难以计算每个应该如何testing和缩放。

所以如果可能的话,一定要在真实条件下进行系统testing。 如果这是不可能的,你仍然可以在缩小的环境下运行负载testing ,但不要指望你能够正确地推断出结果,就像这台机器有10Gb的内存,并能够在1000RPS的条件下生存机器有20Gb的内存,因此它将是2000 RPS – 它不会这样工作。