统计发现绩效差异

2024-09-29 19:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我在服务器上生成负载,并收集性能指标,每10秒保存一次数据(IO util、CPU util等)。你知道吗

我对代码做了一个更改,运行另一个负载测试并收集度量。你知道吗

我有一大堆指标,所以我要找两件事:

  • 哪些指标变化最大
  • 在那些改变的指标中,它们改变了多少?你知道吗

对于第一个任务,我正在运行Pearson相关性,并在两次运行之间,按每个度量的最低相关性排序。你知道吗

对于第二个任务,我将把相关性最低的度量传递给一个函数,在这个函数中,我只比较每个运行的平均性能,然后减去sum(list_of_samples) / len(list_of_samples) - sum(list_of_samples2) / len(list_of_samples2)

不幸的是,我没有得到好的数据,我怀疑这是由于:

  • 数据有些嘈杂
  • 负载测试将改变负载以不使服务器崩溃(以不同的速率增加)

有人知道我怎样才能更好地处理这个问题,或者我能做些改进吗?我目前正在用Python编写,但如果有魔法库可以做到这一点,我可以切换语言。你知道吗


Tags: of数据函数io服务器len度量util
1条回答
网友
1楼 · 发布于 2024-09-29 19:35:24

我们就是这样做的。你知道吗

第一个测试是估计最大吞吐量。为此,只需启动load generator的一个实例(例如,一个线程),该实例将一个接一个地向服务器发送请求,而不需要任何暂停。然后开始每分钟再添加一个实例。一段时间后,吞吐量(每秒处理的请求数)停止增长,甚至可能因为并发问题而略有下降。这是此测试的最大吞吐量。当您更改代码时,可以使用它来比较多个测试。当服务器处于最大负载时,您还可能会发现一些有趣的瓶颈。你知道吗

第二个测试是估计响应时间。选择一个负载级别,这个负载级别大约是您在上一个测试中发现的最大吞吐量的50-80%。产生约10-15分钟的恒定负载(取决于系统,在您的情况下,可能需要在实际测试前预热)。收集响应时间和资源使用情况。然后你就可以比较不同的统计数据。对于响应时间,它可能是99次或95次percentile,并且是cpu和磁盘的平均负载。你知道吗

相关问题 更多 >

    热门问题