0

我有一个高性能的软件服务器应用程序,预计在接下来的几个月内流量会增加。

我想知道使用什么方法或方法来衡量服务器是否仍有能力处理这种增加的负载?

4

3 回答 3

1

我认为您正在寻找压力测试,场景将类似于:

  1. 创建模拟当前实际应用程序使用情况的负载测试

  2. 从当前用户数开始,逐渐增加负载,直到

    • 您达到“增加的流量”数量
    • 或错误开始发生
    • 或者您开始​​观察性能下降

    先到先得

  3. 根据结果​​,您可以声明您的服务器可以毫无问题地处理增加的负载,或者您将提出饱和点和第一个瓶颈

  4. 您可能还想执行浸泡测试- 让系统长时间处于高负载状态数小时或数天,这样您就可以检测内存泄漏或其他容量问题。

更多信息:为什么“正常”负载测试还不够

于 2020-08-04T15:23:08.410 回答
1

我会首先收集关键资源的基线数据——通常是 CPU、内存使用、磁盘使用、网络使用——并随着时间的推移跟踪它们。如果这些资源中的任何一个显示出规律的峰值,它们在不到一秒的时间内保持 100% 的容量,那么在当前使用情况下,您在某个地方遇到了瓶颈。在这种情况下,您无法在没有可能中断的情况下接受额外的负载。

接下来,我将开始弄清楚您的应用程序的瓶颈资源是什么——它因应用程序而异,但在大多数情况下,它是阻碍您进一步扩展的瓶颈资源。例如,您的 CPU 可能几乎处于空闲状态,但您正在处理磁盘 I/O。这是一个棘手的过程——负载和压力测试是要走的路。

如果您可以通过购买更好的硬件来解决瓶颈,那就这样做吧——这比重写软件便宜得多如果您不能购买更好的硬件,请查看负载平衡。如果你不能进行负载平衡,你就得看看应用程序架构和实现,看看是否有办法移动瓶颈。

瓶颈从一种资源转移到另一种资源是很典型的——你有 CPU 可以正常工作,但是现在当你增加流量时,你会增加磁盘 I/O;一旦你解决了这个问题,你可能会遇到另一个 CPU 挑战。

于 2020-08-04T15:51:52.593 回答
1

用十分之一的数据和流量来测试产品。确保活动是“现实的”。

然后考虑随着流量的增长会发生什么——RAM、磁盘、cpu、网络等是否线性增长?

当你这样做时,寻找“热点”。优化它们。

你会使用网页吗?数据库?等等。这些东西中的每一个都有不同的规模。(换句话说,你没有在你的问题中提供足够的细节。)

大多数标准基准都集中在计算的一个小方面。将结果应用于特定应用程序是不确定的。

于 2020-08-04T15:14:25.357 回答