工作中性能压测总结及常用的linux命令
Q1:线上压测步骤:
1、写压测报备邮件和压测方案
2、准备压测脚本
3、申请发压机(私有云)
4、登录发压机 上传jmeter文件和csv文件 执行压测命令
5、写压测记录报告
压测工具 :jmeter ,将压测脚本&压测数据上传到linux系统中(用rz命令),用命令行压测
Q2:压测方式2种:
1、单机压测
(1)压测执行命令:
cd .. 进入home目录下
sudo sh /home/yueling001/apache-jmeter-5.0/bin/jmeter.sh -n -t delegate.jmx -l delegate`date +%s`.jtl -e -o resultdelegate`date +%s`
(2)linux文件夹下载(聚合报告下载)
a、压缩文件夹
i:进入压测结果文件夹所在路径(用cd命令)
ii: tar cvzf ./opptyresult9.gz opptyresult
b、下载
sz opptyresult9.gz
(3)压测过程中 修改压测脚本
进入压测脚本所在路径
vim **.jmx
/(需要搜索的内容 ps:“/"相当于grep)
i (编辑)
esc
:wq! (强制退出并保存)
Q21:多个单机同时压测
注意点:脚本&csv文件一致
压测的tps:是多个单机的tps之和
avg:是多个单机的avg的平均值
2、分布式压测(master-slave/controller-agent)
压测步骤:
a、选择一个机器做为controller(存放压测脚本**.jmx),其他多个机器作为agent(存放csv文件(为了模拟线上真实的场景,入参和Header等的取值一般采用变量的形式),注:多个agent中存放csv文件的路径要保持一致)
b、修改jmeter的bin路径下的jmeter.properties中的remote_host的值 配置远程的agentid
c、在对应的agent上启动jmeter-server
i: cd /home/yueling001/apache-jmeter-5.0/bin
ii: nohup ../yueling001/apache-jmeter-5.0/bin/jmeter-server -Djava.rmi.server.hostname=10.26.30.13 &
iii: 终止进程可以用 ps -ef|grep jmeter-server|grep -v grep|awk '{print $2}'|xargs kill -9命令杀死进程,停止发压
iiii: 查看线程是否启动 ps -ef|grep jmeter-server
d、在控制器上执行压测(controller)
cd /home/yueling001/apache-jmeter-5.0/bin
sudo sh /home/yueling001/apache-jmeter-5.0/bin/jmeter.sh -n -t oppty.jmx -l oppty`date +%s`.jtl -e -o resultoppty`date +%s` -R 10.26.30.13:1099,10.26.30.16:1099
(ps:sudo sh /home/yueling001/apache-jmeter-5.0/bin/jmeter.sh -n -t oppty.jmx -l oppty`date +%s`.jtl -e -o resultoppty`date +%s` -r 会执行jmeter.properties中配置的所有的remote_host)
注意:脚本中参数化文件(csv文件路径)路径写绝对路径 [filepath](注意:不要写错路径)("/”)
Q3:压测的聚合报告
1、Label - 请求对应的name属性值。
2、 Samples - 具有相同标号的样本数,总的发出请求数。
3、Average - 请求的平均响应时间。
4、Median - 50%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第50%的值。
5、90% Line - 90%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第90%的值。
6、95% Line - 95%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第95%的值。
7、99% Line - 99%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第99%的值。
8、Min - 最小响应时间。
9、Max - 最大响应时间。
10、Error % - 本次测试中,有错误请求的百分比。
11、Throughput - 吞吐量是以每秒/分钟/小时的请求量来度量的。这里表示每秒完成的请求数。tps
12、Received KB/sec - 收到的千字节每秒的吞吐量测试。(评判网络速度)
13、Sent KB/sec - 发送的千字节每秒的吞吐量测试。(评判网络速度)
Q4:压测过程中需要关注的指标
1、被压机器的cpu使用率
2、被压服务的cpu使用率
3、jvm memory
4、jvm gc
5、延迟分布 nginx请求
6、redis m-s的内存和cpu使用率
以上指标都从fast上看
Mysql的指标(慢查询 连接数)
7、聚合报告的tps&avg
扩展:常见的shell命令
ls:列出当前目录下的文件和子目录。
cd:切换当前目录。
pwd:显示当前所在的目录路径。
mkdir:创建一个新的目录。
rm:删除文件或目录。
cp:复制文件或目录。
mv:移动文件或目录。
touch:创建一个新的空文件或者更新一个已有文件的修改时间。
cat:连接文件并打印到标准输出设备上。
grep:在文件中查找指定的字符串。
find:在指定目录下查找文件。
chmod:修改文件或目录的权限。
chown:修改文件或目录的所有者。
ps:显示当前系统中正在运行的进程。
top:显示当前系统中占用资源最多的进程。
tar:打包和解包文件。
ssh:远程登录到另一台计算机。
scp:在计算机之间复制文件。
ping:测试网络连接。
curl:从命令行下载文件。
ssh的用法详情:
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地传输数据。SSH协议通常用于远程登录到另一台计算机,并执行命令或操作文件。下面是SSH命令的详细用法:
1、连接到远程计算机
ssh username@remote_host
其中,username是远程计算机的用户名,remote_host是远程计算机的IP地址或域名。执行这个命令后,会提示输入密码,输入正确的密码后就可以登录到远程计算机了。
2、指定端口号连接远程计算机
如果远程计算机的SSH服务使用了非标准的端口号,可以使用-P选项指定端口号:
ssh -p port username@remote_host
其中,port是SSH服务的端口号。
3、执行远程命令
可以在SSH命令后面添加要执行的命令,这样就可以在远程计算机上执行这个命令了。例如:
ssh username@remote_host ls -l
这个命令会连接到远程计算机,并执行ls -l命令,列出远程计算机上的文件和目录。
4、传输文件
可以使用scp命令在本地计算机和远程计算机之间传输文件。例如:
scp local_file username@remote_host:/remote/directory
这个命令会将本地计算机上的local_file文件复制到远程计算机的/remote/directory目录下。
5、断开SSH连接
可以使用exit命令或者按下Ctrl + D键来断开SSH连接。
以上是SSH命令的一些常用用法,可以帮助用户在远程计算机上执行命令、传输文件等操作。需要注意的是,SSH连接是基于加密的,所以在使用SSH时,要确保连接的安全性,避免密码泄露等安全问题。
ping 域名返回结果分析:
1、目标主机的IP地址:ping命令会将域名解析为对应的IP地址,并显示在结果中。这是目标主机的网络标识符。
2、ICMP Echo请求和回复的信息:ping命令会发送ICMP Echo请求到目标主机,并等待目标主机返回ICMP Echo回复。结果中会显示每个请求的序列号、发送和接收的时间、以及往返时间(Round-Trip Time,RTT)。
3、统计信息:ping命令会在结束时显示一些统计信息,包括发送的ICMP Echo请求数量、接收到的回复数量、丢失的回复数量、丢包率和往返时间的统计信息(最小值、最大值、平均值)。
以下是一个示例的ping命令返回结果:
PING www.example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=57 time=10.4 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=57 time=10.2 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=57 time=10.3 ms
64 bytes from 93.184.216.34: icmp_seq=4 ttl=57 time=10.1 ms
64 bytes from 93.184.216.34: icmp_seq=5 ttl=57 time=10.2 ms
--- www.example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 10.1/10.2/10.4/0.146 ms
从上面的示例中,可以得到以下信息:
目标主机的IP地址是93.184.216.34。
发送了5个ICMP Echo请求,并且都成功接收到回复。
没有丢包,丢包率为0%。
往返时间的统计信息:最小值为10.1毫秒,最大值为10.4毫秒,平均值为10.2毫秒。
通过分析ping命令的返回结果,可以评估网络连接的稳定性和延迟情况。如果丢包率较高或往返时间较长,可能表示网络连接存在问题。
(注:ping ip的除了没有1,其他和ping 域名相似)
ping ip 没返回信息的原因:
ping命令和telnet命令的区别:
Telnet 命令的使用详解_tenlet_Ramboooooooo的博客-CSDN博客
(查看端口是否可以用:telnet ip port 例如 telnet 192.168.7.42 8080)