【性能测试】 模拟分布式性能测试 & 终端监控

【性能测试】 本地模拟分布式性能测试

前置:本地搭建好虚拟机,并且网络互通,安装好JDK

  1. 工具安装
unzip apache-jmeter-5.5.zip   // 解压安装包
vim /etc/profile   //编辑系统配置文件

# 在文件底部添加环境变量
export JMETER_HOME=/usr/local/apache-jmeter-5.5    
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
  1. master 配置
    编辑 jmeter.properties文件修改如下配置
    在这里插入图片描述
    在这里插入图片描述
  2. slave配置
    编辑 jmeter.properties文件修改如下配置
server_port=1025   // 配置服务端端口
server.rmi.localport=1025  //配置本机端口
server.rmi.ssl.disable=true  //关闭ssl认证
  1. 指定slave IP(仅在本机有多个虚拟网卡的情况下需要,在企业测试中一般不需要)
  • linux 系统
1.编辑 jmeter-server 文件
	vim  jmeter-server 
6. 在文件内配置本机的ip地址
	MI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.100
  • win 系统
    编辑 jmeter.bat 文件,在文件下方设置本机IP
    在这里插入图片描述
  1. 配置防火墙策略
    在这里插入图片描述
    在这里插入图片描述

  2. 开启服务&执行
    开启服务 ./jmeter-server
    在这里插入图片描述
    执行脚本 jmeter -n -t “脚本文件” -l “测试报告文件” -r
    在这里插入图片描述



终端监控

linux 环境检查
查看 Linux版本 cat /etc/redhat-release
查看cpu型号 核数 个数 每个物理cpu的核数 逻辑个数 都在 /proc/cpuinfo文件下
cat /proc/cpuinfo | grep “physical id”
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

检查是否虚拟机 cat /proc/scsi/scsi


top命令查看各进程CPU占用率

第一行:
xxx day : 时间
user: 登录用户个数
load average: 0.41, 0.45, 0.43 系统负载,即任务队列的平均长度。1分、5分、15分钟前平均负载
根据cpu的核数对比系统是否处于高强度负载,如,cpu2核,平均负载大于2则说明系统高负载。

第二行:
Tasks: 141 total 进程总数, running 运行进程, sleeping 睡眠进程, 0 zombie 僵尸进程数

第三行cpu:
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比 (进程之间的切换过高理论上不允许)
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断
st 实时

第四、五行内存/交换空间(内存):
Mem: 191272k total 物理内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量 (交换分区free used 频繁切换说明内存空间不足)
123988k cached 缓冲的交换区总量

常用命令
top -d 2 —没2秒刷新一次,默认是5秒
top -p 端口 —显示进程号xxx的资源使用情况
top -c — 显示各进程启动方式,默认值显示了进程名
top -Hp pid 可展示这个进程的所有线程的运行情况 。 shift +h 可以切换所有线程查看方式
常用选项
排序: 大写的 M P T 分别是内存 cpu 执行时间
1 可查看多核cpu分开查看
q 推出
m 显示内存大小
z / Z更改颜色

jstack命令
#JDK自带的命令行工具
jstack -l [pid]查看所有线程信息
jstack -l [pid] | grep 16进制
转换 16进制 : printf "%x“ xxx

free 命令
free -m -s 2 以兆为单位 每隔2秒刷新一次
free -g -c 2 以G为单位,只刷新4次

Vmstat 命令
一个监控linux实时状态的命令,常规使用:
vmstat 2 4 表示每2秒显示一次数据, 共显示4次
详解:
r 表示运行队列,当值长期高于cpu数目,那么表示cpu有瓶颈

b 表示等待进程io的数量, 如果数值长期较高,需要结合 bi bo查看是否有瓶颈
bi 每秒读取的块数,接收文件时用到,如果该值长期大于0 表示io频繁
bo 每秒写入的块数,读取文件时用到,如果该值长期大于0 表示io频繁

swpd 表示虚拟内存, 也就是交换分区。 该值如果大于0表示物理内存不足已经在使用交换分区了,再结合si so 查看瓶颈
si 每秒从交换区写道内存的大小, 由磁盘调入内存
so 每秒写入交换分区的内存大小,由内存调入磁盘

ln 每秒cpu中断次数(结合Cs查看)
Cs 表示每秒cpu上下文切换数,线程,进程的切换都要用到上下文的切换。该值越小越好,上下文切换次数过多表示cpu大部分浪费再切换中,导致cpu真正要处理的事减少,cpu没有从分利用到系统中。

Iostat 命令
安装: yum -y install sysstat
sysstat 包含 iostat mpstat sar sa
iostat -c 表示只显示cpu的信息 -d 表示只显示磁盘的信息 -x 表示显示所有信息
iostat -x 1 3 表示每1秒钟显示一次详细信息,共刷3次
磁盘监控主要看繁忙度:读写其实也可以看,但读写只不过是个绝对值,好的磁盘自然快,快并不代表没有瓶颈,而是要看它相对系统来说是否繁忙 so 需要查看 %util

df 命令
df -h
size 总大小
used 已使用的大小
avail 还可以使用的量
use 使用的百分比
mounted on 挂载点

在测稳定性的时候,确认有没有磁盘空间的瓶颈,磁盘空间不足倒是测试结果不准。

netstat 命令
Netstat 是一款非常强大的网络管理工具, 一般用于检测本机各端口的网络连接情况。nestat 在内核访问网络及相关信息的程序, 它能提供tcp、udp监听,及其他进程内存管理的相关报告。
netstat -nat | grep -i “80” | wc -l ---- 统计80端口的连接数
netstat -na | grep ESTABLISHED | wc -l ---- 统计已连接的
netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]}’ ---- 检测tcp连接数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值