【问题标题】:Throughput measurements吞吐量测量
【发布时间】:2010-04-21 09:29:29
【问题描述】:

我写了简单的load testing tool 来测试Java 模块的性能。我面临的一个问题是吞吐量测量算法。测试在多个线程中执行(客户端配置测试应该重复多少次),并记录执行时间。因此,当测试完成时,我们有以下历史记录:

4 test executions
2 threads
36ms overall time

- idle
* test execution
       5ms    9ms     4ms      13ms
T1  |-*****-*********-****-*************-|
      3ms  6ms     7ms      11ms
T2  |-***-******-*******-***********-----|
    <-----------------36ms--------------->

目前我通过以下方式计算吞吐量(每秒):1000 / overallTime * threadCount

但是有问题。如果一个线程能够更快地完成它自己的测试(无论出于何种原因):

      3ms 3ms 3ms 3ms
T1  |-***-***-***-***----------------|
      3ms  6ms     7ms      11ms
T2  |-***-******-*******-***********-|
    <--------------32ms-------------->

在这种情况下,实际吞吐量要好得多,因为测量的吞吐量由 最慢的线程。所以,我的问题是我应该如何测量多线程环境中代码执行的吞吐量。

【问题讨论】:

    标签: metrics load-testing throughput


    【解决方案1】:

    如何为每个线程t分别throughput[t] = numberOfTests[t] / overallTime[t],然后计算所有throughput的平均值?

    然后您还可以计算范围和标准偏差等内容以获得更好的图片。我个人非常喜欢box plots。但只有数字本身会很有趣。

    【讨论】:

    • 是的,前段时间我在看箱形图。这是测试结果可视化的非常有趣的想法。谢谢。
    【解决方案2】:

    我知道有点晚了,但我有两篇与您的问题相关的博文。第一个描述how you measure throughput(和响应时间)。第二个describes a way to graph throughput

    【讨论】:

    • 我知道这有点晚了,但我不得不评论一下:你的第一篇文章真的很棒。感谢分享。
    • “建立数据库连接时出错”:,(
    • @Crasher - 嗯,这很奇怪,我今天会调查一下。
    • 谢谢@JavidJamae =)
    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2016-11-08
    • 2020-04-10
    • 2013-03-23
    相关资源
    最近更新 更多