一份相向的感情 ,在相背的回忆里,寻找瞬间那失落的感动。

发布新日志

  • 并发用户数、吞吐量、思考时间的计算公式(转)

    2008-12-26 17:50:35

    一、软件性能的关注点

    对一个软件做性能测试时需要关注那些性能呢?

    我们想想在软件设计、部署、使用、维护中一共有哪些角色的参与,然后再考虑这些角色各自关注的性能点是什么,作为一个软件性能测试工程师,我们又该关注什么?

    首先,开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能,对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当相应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。

    用户关注的是用户操作的相应时间。

    其次,我们站在管理员的角度考虑需要关注的性能点

    1、  相应时间

    2、  服务器资源使用情况是否合理

    3、  应用服务器和数据库资源使用是否合理

    4、  系统能否实现扩展

    5、  系统最多支持多少用户访问、系统最大业务处理量是多少

    6、  系统性能可能存在的瓶颈在哪里

    7、  更换那些设备可以提高性能

    8、  系统能否支持7×24小时的业务访问

    再次,站在开发(设计)人员角度去考虑

    1、  架构设计是否合理

    2、  数据库设计是否合理

    3、  代码是否存在性能方面的问题

    4、  系统中是否有不合理的内存使用方式

    5、  系统中是否存在不合理的线程同步方式

    6、  系统中是否存在不合理的资源竞争

    那么站在性能测试工程师的角度,我们要关注什么呢?

    一句话,我们要要关注以上所有的性能点

     

    二、软件性能的几个主要术语

    1、响应时间:对请求作出响应所需要的时间

    网络传输时间:N1+N2+N3+N4

    应用服务器处理时间:A1+A3

    数据库服务器处理时间:A2

    响应时间=N1+A1+N2+A2+N3+A3+N4

     

    2、并发用户数的计算公式

    系统用户数:系统额定的用户数量,如一个OA系统,可能使用该系统的用户总数是2000个,那么这个数量,就是系统用户数

     

    同时在线用户数:在一定的时间范围内,最大的同时在线用户数量

     

    平均并发用户数的计算:

    C=nL / T

    其中C是平均的并发用户数,n是平均每天访问用户数,L是一天内用户从登录到退出的平均时间(操作平均时间),T是考察时间长度(一天内多长时间有用户使用系统)

    并发用户数峰值计算:

    C^ 约等于 C + 3*根号C  

    其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论

     

    3、吞吐量的计算公式

     指单位时间内系统处理用户的请求数

     从业务角度看,吞吐量可以用:请求数/秒、页面数/秒、人数/天或处理业务数/小时等单位来衡量

     从网络角度看,吞吐量可以用:字节/ 来衡量

     对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,他能够说明系统的负载能力

    以不同方式表达的吞吐量可以说明不同层次的问题,例如,以字节数/秒方式可以表示数要受网络基础设施、服务器架构、应用服务器制约等方面的瓶颈;已请求数/秒的方式表示主要是受应用服务器和应用代码的制约体现出的瓶颈。

    当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=VU * R / T

    其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间

     

    4、性能计数器

       是描述服务器或操作系统性能的一些数据指标,如使用内存数、进程时间,在性能测试中发挥着“监控和分析”的作用,尤其是在分析统统可扩展性、进行新能瓶颈定位时有着非常关键的作用。

       资源利用率:指系统各种资源的使用情况,如cpu占用率为68%,内存占用率为55%,一般使用“资源实际使用/总的资源可用量”形成资源利用率。

    5、思考时间的计算公式

       Think Time,从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔,而在做新能测试时,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。

    在吞吐量这个公式中F=VU * R / T说明吞吐量FVU数量、每个用户发出的请求数R和时间T的函数,而其中的R又可以用时间T和用户思考时间TS来计算:R = T / TS

     

    下面给出一个计算思考时间的一般步骤:

    A、 首先计算出系统的并发用户数

            C=nL / T      F=R×C

    B、 统计出系统平均的吞吐量

                F=VU * R / T  R×C = VU * R / T

    C、 统计出平均每个用户发出的请求数量

        R=u*C*T/VU

    D、根据公式计算出思考时间

    TS=T/R

  • 『转』Loadrunner关于页面检查的几个函数详解

    2008-12-25 13:39:00

  • [zt]性能测试计数器分析指南 (转载Jackei空间)

    2008-10-30 15:48:59

    1. Windows性能计数器分析

    对象

    计数器

    分析

    processor

    %processor time

    建议阈值85%

    memory

    Available bytes

    建议阈值少于4MB需要添加内存;

    另外,又建议至少要有10%的物理内存值

    Pages reads/sec

    Page Reads/sec 是指为解析硬页错误而读取磁盘的次数,如果该值一直持续较大,表明可能内存不足

    建议阈值30(5?),大数值表示磁盘读而不是缓存读

    Pages writes/sec

    Page Writes/sec 是指为了释放物理内存空间而将页写入磁盘的次数

    Pages Input/sec

    Pages Input/sec 指为解决页错误从磁盘上读取的页数

    Pages Output/sec

    Pages Output/sec 是指为了释放物理内存空间而写入磁盘的页数

    如果该值远远大于Pages Input/sec,可能有内存泄露

    Pages/sec

    Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数

    建议阈值20

    Network interface

    (对于TCP/IP)

    Bytes received/sec

    该数据结合Bytes total/sec看

    Bytes sent/sec

    该数据结合Bytes total/sec看

    Bytes total/sec

    推荐不要超过带宽的50%

    Packets/sec

    根据实际数据量大小,无建议阈值,该数据结合Bytes total/sec看

    Physical disk

    Disk reads/sec

    取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格

    Disk writes/sec

    取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格

    又:上两值相加,应小于磁盘设备的最大容量

    %Disk Time

    建议阈值90%

    Current disk queue length

    Avg. disk queue length(如果使用RAID设备,%Disk Time计数器显示的值可以大于100%。如果大于100%,则使用Avg. disk queue length计数器决定正在等待磁盘访问的系统请求的平均数)

    不超过磁盘数的1.5~2倍

    如果上两值始终较高,可以考虑升级磁盘驱动器或将某些文件移动到其他磁盘或服务器

    2.一些注意事项

    1. 如果监视不超过4个小时,则每15秒更新一次比较合理;如果将监视系统8个小时或更长时间,则设置的间隔不要小于300秒

    2. 个人认为测试报告结果同时还要附上图参考,因为单靠最小、最大和平均值还不能说明问题

    3. 与物理磁盘计数器的数据不同,逻辑磁盘计数器的数据默认情况下不是由操作系统搜集。要获得逻辑驱动器或存储卷的性能计数器数据,必须在命令提示符下键入diskperf –yv。默认情况下,操作系统使用diskperf –yd命令包含物理驱动器数据。使用命令diskperf的详细信息,请在命令提示符下键入diskperf -?。

    4. 通常,决定性能是否可以接受是一种主观判断,随用户环境的变化而明显地变化。

    5. 内存不足是计算机系统中的严重性能问题最常见的原因。工作站响应速度很慢最有可能是内存和处理器问题造成的;服务器更容易受到磁盘和网络问题的影响。

    6. 在程序启动时,每个程序的Process\%Processor Time值迅速攀升、降低,然后稳定。注意程序启动时处理器的峰值非常重要;你可能要暂时忽略监视数据中高的启动值,以获得典型程序使用处理器情况的更精确的图片。

    7. 当内存减少时,操作系统开始通过从活动较少的程序的工作集(working set)中获得内存来补充,因此,将看到一个程序工作集的增大,而其他程序的值减少。如果系统中没有足够的内存来满足所有活动程序的要求,将发生内存页交换,程序性能将受到影响。

    8. 如果发生了内存泄漏,Process\Private Bytes计数器和Process\Working set 计数器的值往往会升高,同时Available bytes会降低。

    9. 如果Process不见了,修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 下的Disable Performance Counters值为0.

    3. Unix性能计数器分析

    计数器

    描述

    Average load

    Ready状态并发进程的平均数

    Collision rate

    在以太网上侦察到的每秒冲突数

    Context switches rate

    每秒进程或线程之间的切换数

    CPU utilization

    CPU使用时间的百分比

    Disk rate

    磁盘传输的速率

    Incoming packets error rate

    接受以太网包每秒的错误

    Incoming packets rate

    每秒接受的以太网包

    Interrupt rate

    每秒设备的中断次数

    Outgoing packets error rate

    发送以太网包每秒的错误

    Outgoing packets rate

    每秒发送以太网包

    Page in rate

    每秒读到物理内存的页数

    Page out rate

    每秒写到页面文件和从物理内存移动的页数

    Paging rate

    每秒读到物理内存或者写到页面文件的页数

    Swap in rate

    交换的进程数

    Swap out rate

    交换的进程数

    System mode CPU utilization

    系统模式下CPU使用时间的百分比

    User mode CPU utilization

    用户模式下CPU使用时间的百分比

    4.SQL Server性能计数器分析

    计数器

    描述

    Buffer manager/buffer cache hit ratio

    指可在缓冲池中找到而不需要从磁盘中读取(物理I/O)的页面的百分比。如果该值较低则可能存在内存不足或不正确的索引

    General statistics object/user connections

    指系统中活动的SQL连接数。该计数器的信息可以用于确定系统得最大并发用户数

    Locks/lock requests/sec

    指每秒请求的锁个数。通过优化查询来减少读取次数,可以减少该计数器的值。

    Locks/lock timeouts/sec

    指每秒由于等待对锁的授权的锁请求数,理想情况下,该计数器的值为0

    Locks/lock waits/sec

    指每秒无法立刻得到授权而超时的锁请求数,理想情况下,该计数器的值应该尽可能为0

    Locks/number of deadlocks/sec

    指每秒导致死锁的锁请求数。死锁对于应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器必须为0

    Memory manager/memory grants pending

    指每秒等待工作空间内存授权的进程数。该计数器应该尽可能接近0,否则预示可能存在着内存瓶颈

    SQL statistics/batch requests/sec

    指每秒向服务器提交批的请求次数。该计数器被用来确定系统的负载大小

    SQL statistics/ SQL compilations/sec

    指每秒编译数。理想状态下该计数器的值应该低,如果batch requests/sec计数器的值非常接近该计数器,那么可能存在大量的特殊SQL调用

    SQL statistics/ re- compilations/sec

    指每秒的重新编译数。该计数器的值越低越好。存储过程在理想情况下应该只编译一次,然后被他们的执行计划重复利用。如果该计数器的值较高,或许需要换个方式编写存储过程,从而减少重编译的次数

  • 收藏

    2008-10-30 10:31:28

    LoadRunner:虚拟用户数和并发用户数的联系

    http://www.51testing.com/html/200810/n96056.html

Open Toolbar