web系统整体性能测试

一、性能测试概要

什么是性能测试

  • 性能测试就是通过技术的手段模拟大量用户同时访问被测应用,观察、记录和分析系统的各项性能指标的过程。
  • 性能测试的目标是评估系统的性能瓶颈,预测系统的最大用户负载能力。

性能测试的两个关键点

  • 模拟大量并发用户
  • 监控系统负载参数分析系统瓶颈

性能指标

  • 平均响应时间( TTLB , Time to laster byte )

    • 平均每个请求从发送到接收响应的时间
      在这里插入图片描述
  • 合理的平均响应时间

    • 2/5/10原则
    • 在2秒之内给客户响应被用户认为是“非常有吸引力”的用
      户体验。在5秒之内响应客户被认为“比较不错”的用户体验,在10秒内给用户响应被认为“糟糕”的用户体验。如果超过10秒还没有得到响应,那么大多用户会认为这次请求是失败的。
  • 平均响应时间的业务影响

    • 根据2008年Aberdeen Group的研究报告,对于Web网站, 1秒的页面加载延迟相当于少了11%的PV ( pageview ) , 相当于降低了16%的顾客满意度。
    • Compuware公司分析了超过150个网站和150万个浏览页面,发现页面响应时间从2秒增长到10秒,会导致38%的页面浏览放弃率。

系统资源类

  • CPU:CPU的占用率
  • 内存:内存的占用率,换页数等
  • I/O:读写请求数、读写量等
  • 带宽:进站出站带宽占用率

为什么要进行性能测试

  • 能够有效评估系统的性能指标,用于系统的性能评估
  • 能够识别系统的性能瓶颈,协助性能调优
  • 能够指导突发流量承载方案的制定
  • 能够用于系统运维成本的预算

性能测试的一般分类

  • 负载测试( Load Test ):为了验证系统设计符合正常业务负载情况下系统性能表现的测试
  • 压力测试( Stress Test ):为了验证系统在极端负载情况下的性能表现的测试

开发人员进行的性能测试更加关注在一定负 载情况下各个系统资源的占用率,从而找到内存泄露、连接泄露和系统的性能瓶颈。

二、性能测试相关工具介绍

2.1 top

显示、排序,过滤,

top -ab -n 1

2.2 性能统计工具sysstat的安装配置

http://lovesoo.org/linux-sar-command-detailed.html

统计系统的各种资源占用情况

yum list sysstat
yum install -y sysstat
cat /etc/cron.d/sysstat

-A:所有报告的总和
-u:输出 CPU 使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出 内存 和交换空间的统计信息
-b:显示 I/O 和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息

2.3 sysstat常用命令之cpu监控

2.4 sysstat常用命令之内存监控

2.5 sysstat常用命令之io监控

sar -b -f sa08

tps:每秒钟物理设备的I/0请求次数
rtps: 每秒钟从物理设备读入的请求次数
wtps: 每秒钟向物理设备写入的请求次数
bread/s: 每秒钟从物理设备读入的数据量,单位为块/s
bwrtn/s: 每秒钟向物理设备写入的数据量,单位为块/s

sar -d -f sa08

2.6 sysstat常用命令之network监控

sar -n DEV -f sa25

DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

rxpck/s: 每秒钟接收的数据包
txpck/s: 每秒钟发送的数据包
rxbyt/s: 每秒钟接收的字节数
txbyt/s: 每秒钟发送的字节数
rxcmp/s: 每秒钟接收的压缩数据包
txcmp/s: 每秒钟发送的压缩数据包
rxmcst/s: 每秒钟接收的多播数据包

2.7 评估磁盘读写性能极限 fio

评估磁盘读写性能极限

yum install -y fio

fio -filename=/data/test -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size 2G -numjobs=10 -runtime=30 -group_reporting -name=mytest13

2.8 进程队列长度和平均负载状态监控

sar -q 10 3

runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

三、Jmeter进行性能测试

3.1 JMeter介绍及特性

  • Apache组织开发的性能测试工具
  • 用于模拟大量用户的并发访问
  • 最大的优点是完全开源

特性:

  • Web- HTTP, HTTPS
  • SOAP
  • FTP
  • LDAP
  • Message-oriented middleware (MOM) via JMS
  • MongoDB (NoSQL)
  • TCP
  • Others

3.2 jmeter 目录结构

3.3 JMeter 基本功能介绍

3.4 使用jmeter对性能测试脚本进行录制和回放

3.5 测试脚本参数化

3.6 用PostProcessor获取响应中的关键数据

3.7 使用BeanShellAssertion判断

3.8 用BSFAssertion判断响应是否正确

3.9 JMeter中的其他断言方法

3.10 JMeter中模拟用户的等待行为

3.11 执行性能测试并在执行过程中监控性能

四、产品性能分析

4.1 监控mysql 慢查询

4.2 实用sysstat 分析系统硬件性能瓶颈

五、Jmeter进阶

5.1 使用session支持

5.2 多用户组实现多场景

5.3 通过beanShell进行java扩展

六、其他性能监控软件介绍

6.1 Nmon

  • 一个类似TOP但是显示功能更加丰富的工具

6.2 Nagios

Nagios是一款开源的免费网络监视工具,能有效监控
Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第-时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。(更偏重运维)

posted @ 2019-06-09 22:32  南山道士  阅读(161)  评论(0编辑  收藏  举报