网站 测速度/专业百度seo排名优化
硬件性能监控指标
一、性能监控初步介绍
性能测试的主要目标
1.在当前的服务器配置情况,最大的用户数
2.平均响应时间ART,找出时间较长的业务
3.每秒事务数TPS,服务器的处理能力
性能测试涉及的内容
1.客户端性能测试:web前端性能、app性能
2. 网络性能测试
3. 服务器应用程序性能
4. 服务器硬件性能
5. 数据库的性能
同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取
软件测试视频教程观看处:
2023最新【软件测试实战教程】全600集(含面试/接口/自动化/性能/测试开发),B站唯一,看完涨薪,允许白嫖...
二、linux性能监控--CPU
CPU相关的指标
- 1. CPU使用率:sys% user%(系统的cpu使用率和用户的cpu使用率)
- 2. 队列长度
1. 查看CPU使用率
使用vmstat 或top 查看CPU使用情况 us 和sy
标准: cpu使用率: us+sy不能超过75%,偶尔可以100%
vmstat 5:每5秒采集一次
vmstat 主要参数说明
- r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
- b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的
- swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
- free 空闲的物理内存的大
- buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我 本机大概占用300多M
- cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M (这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)
- si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
- so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
- bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒
- bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
- in 每秒CPU的中断次数,包括时间中断。
- cs 每秒上下文切换次数,上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
- us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
- sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
- id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
- wt 等待IO CPU时间。
2.查看队列长度
使用vmstat -5 执行,查看 r列的数据
标准:队列长度不能超过2,有队列的产生,或者CPU处理不过来
r值<=2
r值在[3,5]
r值在(5,10]
r值在 >10
3.查看CPU使用较大的进程
ps -aux查看进程的CPU使用情况
目的:找出高CPU的进程
ps auxw|head -1;ps auxw|sort -rn -k3|head -1 (查看CPU使用较大的前10个进程)
三、linux性能监控--内存
核心指标
- 可用物理内存的比例
- 是否使用了虚拟内存
- 是否存在内存泄漏
1. 查看物理内存的使用情况
free命令查看使用情况
标准:linux的可用物理内存可为0,全部用完,只要不使用虚拟内存
2.查看是否使用了虚拟内存
方法1: vmstat 查看si so列
标准: si 和so大于0,表示物理内存不够用或者内存泄露了
方法2:sar –W 10 3 (10和3代表了每个10秒监控一次,总共监控3次)
标准:值大于0,就说明内存已经饱和了
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量
3. 找出高内存使用的进程
3.1内存消耗最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
3.2 虚拟内存使用最多的前10个进程
ps auxw|head -1;ps auxw|sort -rn -k5|head
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小
RSS 进程使用的驻留集大小或者是实际内存的大小
四、linux性能监控--硬盘IO的监控
核心指标
- 1.硬盘的使用率
- 2.物理硬盘驱动器忙于读或写入的时间
- 工具:iostat、iotop、pt-ioprofile
1. 查看硬盘的使用率: df -lh
2. 查看具体的那个硬盘的IO较高
使用iostat 工具来查
ostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该 命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所 需的统计信息
安装iostat 安装命令: yum install sysstat
语法: iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device
[...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]
-c 显示CPU使用情况
-d 显示磁盘使用情况
-k 以K为单位显示
-m 以M为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS使用情况
-p 可以报告出每块磁盘的每个分区的使用情况
-t 显示终端和CPU的信息 -x 显示详细信息
iostat -d -k 2
参数 -d 表示,显示设备(磁盘)使用状态;-k 某些使用 block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
iostat -x 5 查看:%util
%util:一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒);
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
标准:物理硬盘驱动器忙于读或写入的时间 40% 60% 80%
3. 查看哪个进程耗IO比较高
使用iotop 命令:查询出较大的IO 的进程
iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息
安装:yum install iotop
查看:iotop 按 o 只显示有磁盘 IO 活动的进程
语法:iotop [OPTIONS]
- --version #显示版本号
- -h, --help #显示帮助信息
- -o, --only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o
- -b, --batch #运行在非交互式的模式
- -n NUM, --iter=NUM #在非交互式模式下,设置显示的次数,
- -d SEC, --delay=SEC #设置显示的间隔秒数,支持非整数值
- -p PID, --pid=PID #只显示指定PID的信息
- -u USER, --user=USER #显示指定的用户的进程的信息
- -P, --processes #只显示进程,一般为显示所有的线程
- -a, --accumulated #显示从iotop启动后每个线程完成了的IO总数
- -k, --kilobytes #以千字节显示
- -t, --time #在每一行前添加一个当前的时间
4. 定位来源文件
pt-ioprofile定位负载来源文件,通过iotop或ps找出负载较高的进程
安装: 下载地址https://www.percona.com/downloads/percona-toolkit/LATEST/
CentOS 7下安装:
yum -y install https://www.percona.com/downloads/perconatoolkit/3.0.1/binary/redhat/7/x86_64/percona-toolkit-3.0.1-1.el7.x86_64.rpm
使用:
命令格式:pt-ioprofile --profile-pid=xxx
pt-ioprofile --profile-pid=xxx --cell=size
pt-ioprofile --profile-pid=需要监控的PID --cell=size
pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。
步骤1:iotop 查询出高io的pid
步骤2:pt-ioprofile --profile-pid=需要监控的PID --cell=size
对于定位问题更有用的是通过IO的吞吐量来进行定位。
使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来
pt-ioprofile --profile-pid=需要监控的PID --cell=sizes
五、linux性能监控--网络监控
网络的监测是所有 Linux 子系统里面最复杂的,有太多的 因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与 Linux 主机相连的路由器、交换机、无线信号都会影响到整体 网络并且很难判断是因为 Linux 网络子系统的问题还是别的设 备的问题,增加了监测和判断的复杂度。
核心指标
1. 网络带宽是否够用
2. 丢包率、错误重传
3. 网络延迟/堵塞
4. 网络错误
监控网络操作步骤
查每秒接受和发送的数据量,检查当前带宽是否够用
使用nicstat 工具查看网卡的利用率
nicstat可以提供更加全面的网卡信息。
- 显示TCP流量统计
- 显示UDP流量统计
- 报告进出网卡的字节数
- 报告进出网卡的数据数
- 报告网卡利用率
- 报告NIC饱和度和其他信息
nicstat下载
cd /usr/local/src
wget http://nchc.dl.sourceforge.net/project/nicstat/nicstat-1.92.tar.gz
nicstat安装
tar -xzf nicstat-1.92.tar.gz
cd nicstat-1.92
cp Makefile.Linux Makefile
make
nicstat使用
./nicstat.sh
Time列:表示当前采样的响应时间
lo and eth0:网卡名称。
rKB/s:每秒接收到千字节数。
wKB/s:每秒写的千字节数。
rPk/s:每秒接收到的数据包数目。
wPk/s:每秒写的数据包数目。
rAvs:接收到的数据包平均大小。
wAvs:传输的数据包平均大小。
%Util:网卡利用率(百分比)。
Sat:网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去诊断网络问题的时候,推荐使用-x选项去查看更多的统计信息。
./nicstat.sh –t 用于查看tcp信息
InKB:表示每秒接收到的千字节
OutKB:表示每秒传输的千字节
InSeg:表示每秒接收到的TCP数据段(TCP Segments)
OutSeg:表示每秒传输的TCP数据段(TCP Segments)
Reset:表示TCP连接从ESTABLISHED或CLOSE-WAIT状态直接转变为CLOSED状态的次数
AttF:表示TCP连接从SYN-SENT或SYN-RCVD状态直接转变为CLOSED状态的次数,再加上TCP连接从SYN-RCVD状态直接转变为LISTEN状态的次数
%ReTX:表示TCP数据段(TCP Segments)重传的百分比.即传输的TCP数据段包含有一个或多个之前传输的八位字节
InConn:表示TCP连接从LISTEN状态直接转变为SYN-RCVD状态的次数
OutCon:表示TCP连接从CLOSED状态直接转变为SYN-SENT状态的次数
Drops:表示从完成连接(completed connection)的队列和未完成连接(incomplete connection)的队列中丢弃的连接次数
./nicstat.sh -u 用于查看UDP信息
InDG:每秒接收到的UDP数据报(UDP Datagrams)
OutDG:每秒传输的UDP数据报(UDP Datagrams)
InErr:接收到的因包含错误而不能被处理的数据包
OutErr:因错误而不能成功传输的数据包
./nicstat.sh –x 查看扩展信息
./nicstat.sh -a 等同于执行-t -u -x
2. 丢包率、错误重传
查看丢包方法1:使用ifconfig,查看 dropped是否有计数,有计数的话存在丢包的情况
查看丢包方法2:sar -n EDEV 查看 #rxdrop/s
当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
查看丢包的方法3:网络延迟:ping -c 次数 服务器IP或域名 查看packet los
例如: ping –c 100 www.baidu.com
错误重传: ./nicstat.sh -t 查看%ReTX : TCP报文重传率
标准:<1%
3.网络延迟
网络延迟:ping -c 次数 服务器IP或域名
标准:avg<100ms
例如: ping –c 100 www.baidu.com
4.网络错误
方法1: sar -n EDEV 查看:#txerr/s 每秒钟发送的数据包错误数
方法2: ifconfig 出现:"errors"
标准:不能出现错误
写在最后
PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!
☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。
相关文章:

Jmeter(十八):硬件性能监控指标详解
硬件性能监控指标 一、性能监控初步介绍 性能测试的主要目标 1.在当前的服务器配置情况,最大的用户数 2.平均响应时间ART,找出时间较长的业务 3.每秒事务数TPS,服务器的处理能力 性能测试涉及的内容 1.客户端性能测试:web前…...

【ARM Trace32(劳特巴赫) 使用介绍 2 -- Trace32 cmm 脚本基本语法及常用命令】
文章目录 Trace32 CMM 概述1.1 Trace32 系统命令 SYStem1.1.1 Trace32 SYStem.CONFIG1.1.2 SYStem.MemAccess1.1.3 SYStem.Mode1.1.3.1 TRST-Resets the JTAG TAP controller and the CPU internal debug logic1.1.3.2 SRST- Resets the CPU core and peripherals 1.2 Trace32 …...

2023年第七期丨全国高校大数据与人工智能师资研修班
全国高校大数据与人工智能 师资研修班邀请函 2023年第七期 线下班(昆明): 数据采集与机器学习实战 线上班(七大专题): PyTorch深度学习与大模型应用实战 数据采集与处理实战 大数据分析与机器学习实战 大数据技…...

一文获取鼎捷医疗器械行业数智化合规敏态方案
医疗器械产业是关乎国计民生的重要产业,高端医疗器械更是“国之重器”。为加强医疗器械的监督管理,提升行业质量和安全整体水平,我国出台了《医疗器械监督管理条例》、《医疗器械召回管理办法》、《医疗器械临床试验质量管理规范》、《医疗器…...

2023最新版本 FreeRTOS教程 -1-标准库移植FreeRTOS
源码下载 官网下载驱动 点击直达 源码剪裁 剪裁之后的图片,找我免费获取 添加进MDK 配置滴答定时器 全部工程获取 查看下方头像...

python笔记(函数参数、面向对象、装饰器、高级函数、捕获异常)
Python 笔记 函数参数 默认参数 在Python中,我们可以为函数的参数设置默认值。如果调用函数时没有传递参数,那么参数将使用默认值。 def greet(nameWorld):print(f"Hello, {name}!")greet() # 输出:Hello, World! greet…...

JAVA命令总结
jps命令的基本语法如下: jps [options] [hostid]其中,options是可选参数,用于指定额外的选项,hostid是可选参数,用于指定在远程主机上执行jps命令。 以下是一些常用的jps命令选项: -q:仅显示…...

删除的PPT怎么找回来?4个必备恢复方法!
“最近的期末展示需要制作一个PPT,我熬了几个大夜才完成了,但是不知道怎么的我在删除其他文件时不小心把这个PPT一起删掉了,有什么方法可以帮我找回这个误删的PPT吗?” 我们在工作和学习中,经常都需要使用到PPT&#x…...

Binder机制总结笔记
Binder机制总结笔记 什么是Binder? Binder的Android特有的IPC通信机制。Android的四大组件Activity、Service、Broadcast、ContentProvider,不同的App等都运行在不同的进程内,他们之间的通信都需要依靠Binder完成。因此Binder在整个Android系…...

SQL SERVER 表分区
1. 概要说明 SQL SERVER的表分区功能是为了将一个大表(表中含有非常多条数据)的数据根据某条件(仅限该表的主键)拆分成多个文件存放,以提高查询数据时的效率。创建表分区的主要步骤是 1、确定需要以哪一个字段作为分…...

从零开始学习PX4源码0(固件下载及编译)
目录 文章目录目录摘要1.重点学习网址2.固件下载1.下载最新版本固件2.下载之前版本固件 摘要 本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!! 下载固件主要分为两个版本,之前稳定版本和最新官网发布版本,为什么要下载两个版本,主要是说明两个版本有…...

centos格式化硬盘/u盘的分区为NTFS格式
centos7好像不支持ntfs? 对报这个,ntfs not configured in kernel。 安装了ntfs-3g就可以访问了。 插上u盘查看u盘设备 #查看硬件设备及挂载目录 df -h #查看硬件设备(包括未挂载的) fdisk -l卸载外部设备 umount /dev/sdbxxx …...

【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)
这俩软件都不大,比较便携。 FreePic2PDF: 我下载的来源:https://www.52pojie.cn/thread-1317140-1-1.html(包含下载链接https://www.lanzoui.com/it4x6j4hbvc)下载的结果:https://pan.baidu.com/s/1r8n5G42…...

中移链浏览器简介
(1)简介 生活中,常用的互联网浏览器,是用来检索、展示以及传递Web信息资源的应用程序。用浏览器进行搜索,可以快速查找到目标信息。而对于区块链而言,也有区块链浏览器。 区块链浏览器,是指为用…...

深入浅出排序算法之计数排序
目录 1. 原理 2. 代码实现 3. 性能分析 1. 原理 首先看一个题目,有n个数,取值范围是 0~n,写出一个排序算法,要求时间复杂度和空间复杂度都是O(n)的。 为了达到这种效果,这一篇将会介绍一种不基于比较的排序方法。这…...

大坝水库安全监测终端MCU,智能化管理的新篇章!
我国目前拥有超过9.8万座水库大坝,其中超过95%为土石坝,这些大坝主要是在上世纪80年代以前建造的。这些水库大坝在保障防洪、发电、供水、灌溉等方面发挥了巨大的作用,但是同时也存在一定的安全风险,比如坝体结构破损、坝基渗漏、…...

LeetCode 面试题 16.09. 运算
文章目录 一、题目二、C# 题解 一、题目 请实现整数数字的乘法、减法和除法运算,运算结果均为整数数字,程序中只允许使用加法运算符和逻辑运算符,允许程序中出现正负常数,不允许使用位运算。 你的实现应该支持如下操作:…...

spring-代理模式
代理模式 一、概念1.静态代理2.动态代理 一、概念 ①介绍 二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标 方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不…...

我用好说 AI 做二次元人设
你有没有想过自己做一部原创作品? 就像开发《星露谷物语》那样,自己把控作品的 角色、故事、载体、宣传 等方方面面,让 idea 不再只是灵光一闪。 以前是 “万事开头难”,可能第一步都举步维艰。但现在有了 AI 就不同了ÿ…...

付费阅读微信小程序源码/小程序和公众号双版本-多种付费模式前后端+独立源码
源码简介: 付费阅读微信小程序源码,这个是小程序和公众号双版本,它支持多种付费模式前后端独立源码。能够支持免费观看部分文字、视频和音频内容,而其他部分则需要付费才能继续观看。这样更方便变现。 这是付费阅读微信小程序合…...

ref、reactive、toRef、toRefs
ref 作用:定义一个响应式数据 语法:const xxx ref(initValue) 创建一个包含响应式数据的引用对象 js中操作数据:xxx.value 模板中读取数据:不需要.value,直接<div>{{xxx}}</div> 接收的数据:基本类型、对…...

GPT实战系列-如何用自己数据微调ChatGLM2模型训练
GPT实战系列-如何用自己数据微调ChatGLM2模型训练 目录 GPT实战系列-如何用自己数据微调ChatGLM2模型训练1、训练数据广告文案生成模型训练和测试数据组织: 2、训练脚本3、执行训练调整运行 4、问题解决问题一问题二问题三问题四 1、训练数据 广告文案生成模型 输…...

【数电知识点_2023.10.28】
数制与码制 十进制转二进制 8 bits 1 Byte 2|12 //121100自下而上 商为0为止 2|_ 6_…0 2|_ 3_…0 2|1…1 0…1 0.375 //0.3750.011自上而下 小数点为0为止 x 2 ———— 0.75…0 x 2 ———— 1.5…1 x 2 ———— 1…1 BCD码:每4位二进制表示一位十进制 8421…...

spring boot配置ssl(多cer格式)保姆级教程
1. 准备cer格式的证书; 2. 合并cer证书并转化成jks格式的证书 为啥有这一步,因为cer证书配置在spring boot项目中,项目启动不起来。如果有大佬想指导一下可以给我留言,在此先谢过大佬。 1)先创建一个jks格式的证…...

第2篇 机器学习基础 —(4)k-means聚类算法
前言:Hello大家好,我是小哥谈。聚类算法是一种无监督学习方法,它将数据集中的对象分成若干个组或者簇,使得同一组内的对象相似度较高,不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域…...

【Python爬虫+可视化】解析小破站热门视频,看看播放量为啥会这么高!评论、弹幕主要围绕什么展开
大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 环境使用 Python 3.8 Pycharm 模块使用 import requests import csv import datetime import hashlib import time 一. 数据来源分析 明确需求 明确采集网站以及数…...

Mac电脑专业三维模型展UV贴图编辑工具RizomUV RS + VS 2023有哪些特点
RizomUV RS VS是一款功能强大的UV展开软件,用于在三维模型上创建和编辑UV贴图。它具有直观的用户界面和丰富的功能,能够帮助艺术家和设计师更高效地进行UV展开工作。 RizomUV RS VS支持多种模型格式,包括OBJ、FBX、DAE和3DS等,使…...

Linux文件描述符和文件指针互转
本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下。 简介 1.文件描述符fd的定义: 文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当…...

C++11线程
C11线程 创建线程 创建线程需要包含头文件<thread>,使用线程类std::thread 构造函数 默认构造函数 thread() noexcept; 默认构造函数,构造一个线程对象,但它不会启动任何实际的线程执行。 任务函数构造函数 template< class Fun…...

VIVO应用商店评论数据抓取
VIVO应用商店的app评论数据抓取 每个应用的评论能获取到最新的 100页 数据 每页20条,也就是 2000条评论数据 接口: pl.appstore.vivo.com.cn/port/comments/ 爬取运行截图:...