TPS的性能指标_tps 性能指标-程序员宅基地

技术标签: JAVA  LOADRUNNER  J2EE  系统架构  


  1.如何理解TPS
  性能指标的一个重要因素。TPS(Transaction Per Second,每秒事物数),单位时间内完成的事物的数量。TPS的计算一般是通过的事物除以时间。
  TPS是跟测试脚本中事物(Transaction)相关联的。
  在性能测试工具中,吞吐量也被称之为TPS(Transaction Per Second,每秒事物数)。吞吐量直接体现系统性能的承载能力,是指单位时间内处理的客户请求的数量。其计量单位可以根据需求不同而不同,比如请求数/秒,页面数/秒,业务数/小时(可以说下我们采集项目中吞吐量可以用 解析卡数/秒)。
  对于交互式应用,用户直接的体验就是“响应时间”,通过“并发用户数”和“响应时间”可以确定系统的性能规划;但对于非交互式应用,用“吞吐量”来描述用户对系统的性能期望可能更加合理。
  吞吐量作为性能测试的主要关键指标。吞吐量和并发用户数之前存在着一定的联系。在没有性能瓶颈的时候,吞吐量随着虚拟用户数的增加而增加(计算公式为 吞吐量 = (VU个数 * 每个VU发出请求数) / 单位时间)。如果性能遇到瓶颈,吞吐量与VU数理之间就不再符合这个关系。

  2.如何理解线程调用
  线程(thread)是”进程”中某个单一顺序的控制流。也被称为轻量进程。
 
  线程的好处:

  1 创建一个新线程花费的时间少。
 
  2.( JAVA中线程具有新的,可运行,运行,等待/阻塞/休眠,死亡等几种状态。)在未阻塞情况下,两个线程(在同一进程中的)的切换时间少。在阻塞情况下,线程间切换将产生上下文切换。
  3.由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。

  4 线程能独立执行,能充分利用和发挥处理机与外围设备并行 工作的能力。
  使用线程可以把占据长时间的程序中的任务放到后台去处理
  ps:JAVA中可以通过jstack或者jprofiler dump出线程所执行的堆栈信息。

  3.如何理解响应时间
  响应时间反映完成某个业务所需要的时间。
  在性能测试中是通过测试工具的事物函数来完成响应时间的统计。事物函数会记录开始事物和结束事物的时间差,使用Transaction Response Time这个词来说明。
  响应时间主要包括网络时间,服务器处理时间,网络延迟
  对于交互式应用,用户直接的体验就是“响应时间”,通过“并发用户数”和“响应时间”可以确定系统的性能规划;
  对于交互式应用,响应时间出现拐点系统就可能出现瓶颈
  4.如何理解性能建模(可分类回答)
 
  这个不会,之前找到一个资料,分享一下吧 http://www.docin.com/p-452373613.html

  5.如何理解响应时间,TPS曲线和用户之间的关系
  随着用户数量的增加,在未出现瓶颈前响应时间保持稳定,TPS值和并发用户数成线性关系,出现瓶颈后响应时间变长,TPS基本保持不变或开始下降。
  6.在 LoadRunner中为何要设置思考时间和pacing?
  1)Think time,思考时间。可以通过设置思考时间,来模拟真实用户在操作过程中的等待时间。从定义上来看,think time是在iteration内部的某个action中各个步骤的间隔时间。
  2)Pacing,步调。可以通过设置两次迭代(iteration)之间的间隔时间,来调整各个action之间的步调(或者称之为节奏)。
  3)pacing和think time都是可以模拟现实世界中的停顿。对于复杂场景,这个停顿要靠pacing来完成。不过,pacing怎么设置才最合适,是需要研究用户行为才能定的。
   操作系统
  1.如何判断CPU、内存、磁盘的瓶颈?

  CPU瓶颈:

  1) 查看CPU利用率。建议CPU指标如下
 
  a) User Time:65%~70%
 
  b) System Time:30%~35%
  c) Idle:0%~5%
 
  如果us,sy高于这个指标可以判断CPU有瓶颈
  使用top查看
 
  查看运行队列

  每个CPU都会维持一个运行队列,理想情况下,调度器会不断让队列中的进程运行。进程不是处在sleep状态就是run able状态。如果CPU过载,就会出现调度器跟不上系统的要求,导致可运行的进程会填满队列。队列愈大,程序执行时间就愈长。“load”用来表示运行队列,用top 命令我们可以看到CPU一分钟,5分钟和15分钟内的运行队列的大小。这个值越大表明系统负荷越大。超过 1.00,那么说明CPU已经超出负荷,交通严重的拥堵。
  使用top或者uptime查看

  查看上下文切换
  每个CPU(或多核CPU中每个核心)在同一时间只能执行一个线程, Linux采用抢占式调度。即为每个线程分配一定的执行时间,当到达执行时间,线程中有IO阻塞或高优先级线程要执行时,Linux将切换执行的线程,在切换时要存储目前线程的执行状态,并恢复要执行的线程状态,这个过程称之为上下文切换。对于java应用,典型的是在进行文件IO操作,网络IO操作,锁等待或线程sleep时,当前线程会进入阻塞或者休眠状态,从而触发上下文切换,上下文切换过多会造成内核占用过多的CPU使用,使得应用的响应速度下降。

  使用vmstat查看cs
 
  结论:
 
  检查system的运行队列,以及确定不要超出每个处理器3个可运行状态线程的限制.
  确定CPU 利用率中user/system比例维持在70/30
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jecons/article/details/8682355

智能推荐

CSS 在全屏iphonex(刘海屏)中的适配_padding-top: env(safe-area-inset-top);-程序员宅基地

文章浏览阅读5.1k次,点赞3次,收藏6次。iphonex 已经上线有一段时间了,作为业界刘海屏幕第一款机型,导致全屏不能正常的全屏显示了,,所以需要对iphonx 适配,下面就详细说说如何适配先看一张适配前后的图:iphonex 提供的 meta 头<meta name="viewport" content="viewport-fit=contain"><meta name="vie..._padding-top: env(safe-area-inset-top);

Flume与实际项目中用到的_flume在实际中的应用-程序员宅基地

文章浏览阅读488次,点赞4次,收藏3次。http://flume.apache.org/安装1、上传2、解压3、修改conf/flume-env.sh 文件中的JDK目录 注意:JAVA_OPTS 配置 如果我们传输文件过大 报内存溢出时 需要修改这个配置项4、验证安装是否成功 ./flume-ng version5、配置环境变量 export FLUME_HOME=/home/apache-flume-1..._flume在实际中的应用

虚幻引擎图文笔记:自定义GameInstance(5月30日 更新)_虚幻获取mygameinstance-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏8次。自定义一个 GameInstance类,这个流程很像 Godot中的 AutoLoad_虚幻获取mygameinstance

PHP-生成缩略图和添加水印图-学习笔记-程序员宅基地

文章浏览阅读82次。1.开始 在网站上传图片过程,经常用到缩略图功能。这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图。2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率。 这里,我根据图片等比缩放,宽高的几种常见变化,得出一个算缩放比率算法是,使用新图(即缩略图)的宽高,分别除以原图的宽高,看哪个值大,就取它作为缩放比率:...

dyld: Library not loaded: @rpath/libswiftCore.dylib ... Reason: image not found 解决-程序员宅基地

文章浏览阅读2.7k次。在室友Xcode继承一些framework时,爆出了如下错误:dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/containers/Bundle/Application/1761A6FE-9D6B-45F7-9F9F-922C94BF54A3/demo.app/Framewor..._library not loaded: @rpath/libswiftcore.dylib

linux gvim 快捷键tab,Linux中Vim的常用命令及快捷键-程序员宅基地

文章浏览阅读356次。光标控制命令h或^h向左移一个字符j或^j或^n向下移一行k或^p向上移一行l或空格向右移一个字符G移到文件的最后一行nG移到文件的第n行w..._gvim itab

随便推点

QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)-程序员宅基地

文章浏览阅读976次。Qt中QPainter提供了绘制图像的API,极大地方便了我们对图像的绘制。Qt中提供了QPixmap, QBitmap,QBitMapQImage,QPicture等图像绘图设备,它们的类关系如下图所示:QPixmap继承了QPaintDevice,您可用以建立QPainter并于上进行绘图,您也可以直接指定图案加载Qt所支持的图档,像是BMP、GIF、JPG、JPEG、PNG等,并..._qt paint 绘制图片不指定大小

主线程和子线程的区别_进程主线程子线程-程序员宅基地

文章浏览阅读4.2k次。主线程和子线程的区别每个线程都有一个唯一标示符,来区分线程中的主次关系的说法。 线程唯一标示符:Thread.CurrentThread.ManagedThreadID;UI界面和Main函数均为主线程。被Thread包含的“方法体”或者“委托”均为子线程。委托可以包含多个方法体,利用this.Invoke去执行。也可以定义多种方法体,放在Thread里面去执行。则此方法体均为子线程。注意_进程主线程子线程

ALBERT文本分类任务实现_albef分类任务-程序员宅基地

文章浏览阅读5.2k次,点赞2次,收藏15次。#! -*- coding:utf-8 -*-# 情感分析类似,加载albert_zh权重(https://github.com/brightmart/albert_zh)import jsonimport osimport numpy as npimport pandas as pdfrom keras_radam import RAdamfrom bert4keras.b..._albef分类任务

Hive与HBase之间的区别和联系_hive hbase-程序员宅基地

文章浏览阅读2.7w次,点赞36次,收藏161次。首先要知道Hive和HBase两者的区别,我们必须要知道两者的作用和在大数据中扮演的角色概念Hive1.Hive是hadoop数据仓库管理工具,严格来说,不是数据库,本身是不存储数据和处理数据的,其依赖于HDFS存储数据,依赖于MapReducer进行数据处理。2.Hive的优点是学习成本低,可以通过类SQL语句(HSQL)快速实现简单的MR任务,不必开发专门的MR程序。3.由于Hive是依赖于MapReducer处理数据的,因此有很高的延迟性,不适用于实时数据处理(数据查询,数据插_hive hbase

【故障诊断】BP神经网络电机数据特征提取与故障诊断【含Matlab源码 2569期】_故障特征量为无编码比值的bp神经网络-程序员宅基地

文章浏览阅读402次。BP神经网络电机数据特征提取与故障诊断完整的代码,方可运行;可提供运行操作视频!适合小白!_故障特征量为无编码比值的bp神经网络