IT领域常用指标概述

一、前言

我们在从事IT工作中,经常会用到各种评价IT产品,用户体验,功能和安全等的指标,以确认产品或项目的可靠性,可行性,当前状态等。本文对此整理进行日常确认。

在这里插入图片描述

二、指标概览

在这里插入图片描述

2.1、应用相关

1)吞吐量(Requests per second(承压能力)):总的线程数/持续时间=总请求数/处理完成这些请求数所花费的时间,并发处理能力的量化描述,单位是reqs/s。吞吐量是指系统在单位时间内处理请求的数量,TPS、QPS都是吞吐量的常用量化指标。指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个涉及重要参数:QPS(TPS)、并发数、响应时间,从而:QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间;吞吐量这个数值表示当前机器的整体性能,值越大越好。

注意:吞吐率是基于并发用户数的。这句话代表了两个含义:

a、吞吐率和并发用户数相关
b、不同的并发用户数下,吞吐率一般是不同的

2)并发数: 同一时刻系统同时处理的请求数(相对并发,绝对并发),比如:Jmeter压测里就可使用同步定时器来模拟并发数(同一时刻发起的请求);又称并发连接数(The number of concurrent connections):指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

3)TPS(TransactionsPerSecond): 单位时间(每秒)处理的事务数= 并发量 / 平均响应时间;一个事务是指一个客户终端向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。对于一个页面的一次访问,形成一个TPS。但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS之中。

4)QPS(Queries Per Second): 单位时间(每秒)响应的请求数;QPS(TPS)=并发数/平均响应时间;或者指一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间;影响QPS的因素主要包括查询语句的复杂性、数据库的性能、网络带宽、并发用户数等。计算公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS);单线程QPS公式:QPS=1000ms/RT最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)* cpu数量;即在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。资源估算:峰值时间每秒QPS / 单台机器的QPS = 需要的机器数。可采用化查询语句(尤其)、使用索引、减少不必要的数据传输、采用缓存技术等提升QPS。

5)RT(Response-time): 响应时间,一般取平均响应时间(一般常用秒级,毫秒级表示);

6)CPS(Connection Per Second):即每秒新建连接数,定义了新建连接的速率。当新建连接的速率超过规格定义的每秒新建连接数时,新建连接请求将被丢弃。

7)PV: 访问量(Page View),页面浏览量;描述的是所有用户的浏览页面的数量或者行为次数(如点赞),当我们评价一个页面的表现质量的时候,我们用PV和两个步骤之间PV的比值来表述;

8)UV: 用户浏览量;描述的是所有独立的用户的数量,当描述用户对下一页面的倾向程度时,我们用UV和两个步骤之间UV的比值来表述

9)访问深度DV(PV/UV): 指用户的访问深度,用户平均每次会话浏览的页面数,表示用户体验度和网站的粘性。

10)用户存量:DAU(Daily active user) or MAU(Monthly active user):即日活用户 or 月活用户

11)总数据量:GMV

12)人均:ARPU(Average Revenue Per User,每用户平均收入)

13)付费率:有多少比例用户是付费用户,这是一个关键点。

14)并发用户数(Concurrency Level):注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。

15)用户平均请求等待时间(Time per request):
计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数)

16)服务器平均请求等待时间(Time per request:across all concurrent requests):

计算公式:处理完成所有请求数所花费的时间/总请求数;可以看到,它是吞吐率的倒数。
同时,它也等于用户平均请求等待时间/并发用户数

17)TTFB:(首字节时间),衡量网站开始接收数据的速度;也是打开页面的速度;

18)

2.2、网络相关

1)响应时间:用来判断网络质量(取加权平均或三点估算,最少,最大,平均)

2)带宽(网络)利用率:全双工和半双工;

  • 全:

    输入利用率=(ifInOctets×8×100)/((秒数) *IfSpeed)
    输出利用率=(ifOutOctets×8×100)/((秒数) *IfSpeed)
    \
  • 半:(ifInOctets+?ifOutOctets)/((秒数) IfSpeed)×8×100

    其中:
    ifInOctets 在收集snmp ifInOctets对象的两个轮询周期之间的差值,该对象表示输入流量的字节数。
    ifOutOctets 在收集snmp ifOutOctets对象的两个轮询周期之间的差值,该对象表示输出量的字节数。
    IfSpeed 作为snmp IfSpeed对象报告的接口速率。
    在这里插入图片描述

3)往返时间(RTT):

2.3、数据库相关

1)访问记录/s:

2)缓存命中率:

3)表大小:

4)吞吐量(TPS,Transactions Per Second):指数据库系统或服务器在单位时间内处理的事务数量,反映了它处理请求的能力。TPS越高,说明系统处理事务的速度越快,性能越好。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。对于并发系统,吞吐量就不再不简单是响应时间的线下累积了。优化数据库性能、减少网络延迟、使用负载均衡技术、优化代码逻辑等都可以提升TPS。

2.4、安全相关

三、附录:

3.1、性能测试工具

目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。

1)压测工具loadrunner12

软件下载:Apache JMeter 5.4.1 (Requires Java 8+)

2)ab命令

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

ab是apachebench命令的缩写。ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。

yum -y install httpd-tools //如果不想安装apache但是又想使用ab命令的话,我们可以直接安装apache的工具包httpd-tools

ab的命令参数比较多,我们经常使用的是-c和-n参数。其他参数:

-n在测试会话中所执行的请求个数。默认时,仅执行一个请求。

-c一次产生的请求个数。默认是一次一个。

-t测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

-p包含了需要POST的数据的文件。

-P对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。

-T POST数据所使用的Content-type头信息。

-v设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200),2或更大值可以显示警告和其他信息。

-V显示版本号并退出。

-w以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。

-i执行HEAD请求,而不是GET。

-x设置<table>属性的字符串。

-X对请求使用代理服务器。

-y设置<tr>属性的字符串。

-z设置<td>属性的字符串。

-C对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。

-H对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,"Accept-Encoding:zip/zop;8bit")。

-A对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。

-h显示使用方法。

-d不显示"percentage served within XX [ms] table"的消息(为以前的版本提供支持)。

-e产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用。

-g把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。

-i执行HEAD请求,而不是GET。

-k启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。

-q如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。

示例:

1>ab -c 10 -n 100 http://a.ilanni.com/index.php //-c10表示并发用户数为10;-n100表示请求总数为100,http://a.ilanni.com/index.php表示请求的目标URL;上述命令表示同时处理100个请求并运行10次index.php文件。

更多参考:AB性能测试工具

3)pmap命令

用于显示一个或多个进程的内存状态;常用参数:

-x extended Show the extended format. 显示扩展格式
-d device Show the device format. 显示设备格式
-q quiet Do not display some header/footer lines. 不显示头尾行
-V show version Displays version of program. 显示版本

1>pmap - report memory map of a process //查看进程的内存映像信息

2>pmap -d 1 //-q,不现实第一行;-x查看扩展格式;查看进程1的设备格式,输出结果说明:

mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz

writeable/private 表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小

shared 表示进程和其他进程共享的内存大小

3>while true; do pmap -d 3066 | tail -1; sleep 2; done //循环显示进程3066的设备格式的最后1行,间隔2秒

4)nmon软件

wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz

在这里插入图片描述
参数说明:

-s 10 每 10 秒采集一次数据。
-c 60 采集 60 次,即为采集十分钟的数据。
-f 生成的数据文件名中包含文件创建的时间。
-m 生成的数据文件的存放目录。

nmon文件分析,分析工具下载地址:1;将之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 。
在这里插入图片描述
点击 Excel 文件中的 “Analyze nmon data” 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls ,用 Excel 打开生成 的文件就可以看到结果了。
在这里插入图片描述
5)压力测试工具http_load

http_load基于linux平台的一种性能测工具。以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能。

软件下载:wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz

http_load -p 5 -f 1000 url.txt //使用5个进程,随机访问url.txt网址列表,总共访问1000次;urlstxt 是你要访问的网址名,参数可以是单个的网址也可以是包含网址的文件。通常使用为包含网址的文件,文件格式是每行一个url,url最好超过50个,测试效果比较好。

http_load参数说明:通常参数组合:-p –f;-r -s

-p 并发访问进程数
-f 总的访问次数
-r 每秒的访问频率
-s 总的访问时间

3.2、5 种软件环境:开发环境、测试环境、生产环境、UAT环境、仿真环境

1)概览
其中,测试环境,开发环境,UAT、生产环境这4个环境可以说是系统开发的三个阶段:开发->测试->上线,其中生产环境也就是通常说的真实环境。

  • 1、开发环境(DEV):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。
    \
  • 2、测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。软件开发中,完整测试环境包括:UT = Unit Test 单元测试**;IT** = System Integration Test 集成测试;ST = System Test 系统测试;UAT = User Acceptance Test 用户接受测试(俗称:验收测试)
    \
  • 3、生产环境(PROD):是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者修改。
    \
  • 4、UAT环境:UAT,(User Acceptance Test),用户接受度测试 即验收测试,所以UAT环境主要是用来作为客户体验的环境。
  • 5、仿真环境:顾名思义是和真正使用的环境一样的环境(即已经出售给客户的系统所在环境,也成为商用环境),所有的配置,页面展示等都应该和商家正在使用的一样,差别只在环境的性能方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值