记一次压力测试
性能测试文档
- 背景
为对产品性能有一定了解,现将产品展开一次性能测试;
- 环境与工具
本章为基本工具准备及linux命令说明,无先后顺序。
- Xshell工具
- 本文使用Xshell在Windows界面下远程登录linux主机
- 安装Xshell直接全部选择默认选项即可(安装包见:发货包\辅助工具\)
- 新建会话,以主机为例
- 点击新建按钮
-
- 填写会话名称,linux主机ip地址
-
- 点击确定
-
- 双击新建立的会话
-
- 输入用户名
-
- 输入密码
-
- 成功登录
- winSCP工具
- 本文使用winSCP将Windows下的文件上传到Linux系统中
- 安装winSCP直接全部选择默认选项即可(安装包见:发货包\辅助工具\)
- 以普通用户登录只能向个人目录上传文件,以root用户登录可以向任意路径上传文件,建议管理员以root用户登陆。
- 新建会话,以主机为例
- 点击新建会话
- 选择新建站点,写入linux主机ip、用户名、密码,点击登录即可
- 如下所示,登陆成功
- 其中左侧为windows本地文件,右侧为linux系统文件
- 上传文件,拖动即可,下图为将windows E:\soft\test文件夹上传到linux系统/home/rs10user路径下
- Jemte工具
- 用例与脚本
系统登录
- 实验
- 脚本录制与制作
(156条消息) JMeter脚本录制-快速上手篇_jmeter录制_软件测试大叔的博客-CSDN博客
或使用手工添加
- Jmeter使用
正在上传…重新上传取消
点击1清理后,点击2执行;
- 测试与性能指标
- Tps
- 响应时间
- 错误率
- 相关策略与问题解决
- 改过 author 的feign 超时时间
- 删掉所有日志
- author与sys pod 比为2:5 4:12
- ClientAbortException: java.io.IOException: Broken pipe 解决
https://blog.csdn.net/Beyondpyj/article/details/115730750
- 查看物理机 连接数 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- 增大druid连接数据,最小连接数3和最大连接数400,初始连接数50
- 增大数据库最大连接数为 500
- Nginx配置,超时
# backend server proxy
location /gateway/ {
proxy_pass http://192.168.168.205:30130/;
#proxy_set_header Host $http_host; ##转发后端口别忘了
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; ##关键句
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect default;
---
proxy_connect_timeout 60000s; ##
proxy_send_timeout 180s;
proxy_read_timeout 180s;
proxy_buffer_size 1M;
proxy_buffers 8 1M;
proxy_busy_buffers_size 1M;
proxy_temp_file_write_size 1M;
}
- 代理商环境的一些配置
ip 作用 cpu memory
192.168.7.100 master 2 8
192.168.7.101 master
192.168.7.102 worker 4 16
192.168.7.103 worker
192.168.7.104 manager 4 24
- linux 查cpu 核数: cat /proc/ cpu info | grep "processor" | wc -l
- linux 查内存 free -m
- linux 查cpu内存 使用率 top
- 500账户查询
消除 oderby 后面的 dep_name
sys_acct_type 添加索引 act_type
sys2300,2400加入白名单
修改2300 2400 程序
- 因为数据库是Windows的机器,这次我们报告内就不体现资源占用情况了,这个问题您后期可以再去优化一下,我们这次测试主抓耗时和报错率。
- cat logs-from-business-sys-in-business-sys-7577b48fcb-b6gn6.txt |grep 'gridpanel total时间'|awk -F: '{print $4}'
- jemete 聚合报告参数含义
https://blog.csdn.net/m0_72875584/article/details/128883344
- plsql执行计划
https://www.cnblogs.com/kiamer2425/p/14968523.html
- 使用topic 命令查看容器中性能
- nginx中添加了 时间日志:
/etc # cat /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- Windows机器tcp连接数增大
(152条消息) jmeter压力测试(踩坑)报错:java.net.BindException: Address already in use: connect_能白话的程序员♫的博客-CSDN博客
- Nginx里时长配置
实验是将mrp 默认使用nodePort 端口
正在上传…重新上传取消
正在上传…重新上传取消
- 服务器超时配置
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
//设置超时时间
//当Spring容器中没有TomcatEmbeddedServletContainerFactory这个bean时,会把此bean加载进容器
@Component
public class WebServerConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
@Override
public void customize(ConfigurableWebServerFactory factory) {
//使用工厂类定制tomcat connector
((TomcatServletWebServerFactory) factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
//设置15秒无响应则断开keepalive
protocol.setKeepAliveTimeout(1500000000);
//设置最大n次请求后则断开keepalive, -1表示无穷
protocol.setMaxKeepAliveRequests(-1);
}
});
}
}
正在上传…重新上传取消
正在上传…重新上传取消
- Oracle 连接最大5000
- Nginx最大请求书12000
server:
tomcat:
max-threads: 1000
accpt-count: 500
connection-timeout: 2000000000
servlet:
session:
timeout: 2000000000
- 最后实践中没有加 connecton-timeoute 和 session.timeout 也可以。需要再尝试 todo
- 1683784604409,101,查账户,Non HTTP response code: java.net.NoRouteToHostException,Non HTTP response message: Cannot assign requested address (Address not available),Thread Group 1-9377,text,false,,1995,0,9968,9968,http://192.168.168.205:30132/sys/sys0000/rsacct/get_c?companyCode=01&acctCode=ceshi59,0,0,0
(153条消息) jmeter java.net.NoRouteToHostException: Cannot assign requested address (Address not available)_jmeter noroutetohostexception_zhangzhen02的博客-CSDN博客
- 进一步增大sys的核数 到达8c2g
- 8c 2g 8pod
达到 正在上传…重新上传取消
正在上传…重新上传取消
- 报错 没有java_home . 使用命令 source /etc/profile ;
- Gateway*1 0.5c1.6G author*1 4c4g 100人并发,tps 113,时间0.895s,错误率0;
- Gateway*1 0.5c1.6G author*1 4c4g 200人并发,tps 108,时间1.824s,错误率0
- Gateway*1 0.5c1.6G author*2 4c4g 200人并发,tps 221,时间0.894s,错误率0
- Gateway*1 2 c2G author*3 28c8g 1000人并发,tps 291,时间2.834s,错误率0
- 记录author 服务消耗 CPU
正在上传…重新上传取消
- 附录
- jMeter 安装插件
(157条消息) 【JMeter】插件安装_jmeter插件安装_段小王爷的博客-CSDN博客
- jMeter常见错误
(154条消息) 记录jmeter使用时遇到的错误:Non HTTP response code: org.apache.http.NoHttpResponseException_uling94的博客-CSDN博客
- Jmeter 各个参数意义
Jmeter的Linux单机压测_AMEI_2015的博客-CSDN博客
(152条消息) JMeter聚合报告的参数含义__jone的博客-CSDN博客
jmeter -n -t xhsxportal.jmx -l result.jtl
Creating summariser <summary>
Created the tree successfully using xhsxportal.jmx
Starting the test @ Tue Dec 27 18:44:02 CST 2016 (1482835442042)
Waiting for possible shutdown message on port 4445
summary + 1 in 0.3s = 3.2/s Avg: 68 Min: 68 Max: 68 Err: 0 (0.00%) Active: 3 Started: 3 Finished: 0
summary + 479387 in 28s = 17377.9/s Avg: 0 Min: 0 Max: 68 Err: 0 (0.00%) Active: 10 Started: 10 Finished: 0
summary = 479388 in 28s = 17185.4/s Avg: 0 Min: 0 Max: 68 Err: 0 (0.00%)
summary + 39106 in 2.1s = 18273.8/s Avg: 0 Min: 0 Max: 39 Err: 0 (0.00%) Active: 0 Started: 10 Finished: 10
summary = 518494 in 30s = 17263.0/s Avg: 0 Min: 0 Max: 68 Err: 0 (0.00%)
Tidying up ... @ Tue Dec 27 18:44:32 CST 2016 (1482835472140)
... end of run
这里只设置了10个并发测试。28s是最近28秒内的平均TPS; Avg是平均响应时间;Max是最大响应时间;Err是错误率;Active是目前活跃的并发数。
Label----每个请求的名称,比如HTTP请求等
#Samples----发给服务器的请求数量
Average----单个请求的平均响应时间 毫秒ms
Median----50%请求的响应时间 毫秒ms
90%Line----90%请求响应时间 毫秒ms
95%Line----95%请求响应时间 毫秒ms
99%Line----99%请求的响应时间 毫秒ms
Min----最小的响应时间 毫秒ms
Max----最大的响应时间 毫秒ms
Error%----错误率=错误的请求的数量/请求的总数
Throughput----吞吐量即表示每秒完成的请求数
Received KB/sec----每秒从服务器端接收到的数据量
Sent KB/sec----每秒从客户端发送的请求的数量
- Jmeter之性能测试TPS解析
(152条消息) Jmeter之性能测试TPS解析_jmeter tps_林渊羡鱼的博客-CSDN博客
(154条消息) 【jmeter】监听器吞吐量与平均响应时间详解_jmeter查看平均响应时间_山河不见老的博客-CSDN博客
- Linxu环境测试报告
(152条消息) Linux环境运行jmeter+测试报告查看_linux 查看jmeter 聚合报告_Bruce小鬼的博客-CSDN博客.
- 查看结果书
(153条消息) Jmeter察看结果树将测试结果保存本地_jmeter查看文件保存位置_weeds606的博客-CSDN博客
- 理解tips
【jmeter】监听器吞吐量与平均响应时间详解_jmeter查看平均响应时间_山河不见老的博客-CSDN博客
- cpu占用过高
Docker 容器内分析 java程序占用 cpu 高问题排查分析-腾讯云开发者社区-腾讯云 (tencent.com)
- 服务器与并发量
服务器一般几核够用-羊毛之家 (yangmao.info)
正在上传…重新上传取消
- 使用这个docker 镜像含有jdk
openjdk-8u111-jdk
Docker
- 一些用到的linux命令
top
jstack 6 > a.txt 信息到a.txt
ps aux
- Docker 命令
# 加载本地镜像到docker里
docker load < alpine-oraclejre8-8.202.08-full.tar
#监控docker容器中使用率
docker stats <容器id>
# 拷贝容器中文件到本目录
docker cp 13ab29a61863:/a3.txt .
- VisualVm远程监控
利用VisualVm和JMX远程监控K8S里的Java进程 - UCloud云社区
利用VisualVm和JMX远程监控K8S里的Java进程 - 颇忒脱 - SegmentFault 思否
- JStack
docker查看那个java程序cpu使用率100% - 大海全是¥ - 博客园 (cnblogs.com)
(154条消息) docker 分析cpu占用过高_docker容器cpu过高_打包爱的博客-CSDN博客
Java程序占用 CPU 过高排查方法 - 简书 (jianshu.com)
- Tomcat 线程数
(153条消息) Tomcat线程数、连接数相关配置_tomcat连接数_爱琴孩的博客-CSDN博客
- Ngixn 日志配置
nginx 日志log_format - sucre_tan - 博客园 (cnblogs.com)
nginx日志配置(log_format) (hebinghua.com)
(152条消息) Nginx配置中的log_format_nginx log_format_兴乐安宁的博客-CSDN博客
- Springboot nginx响应超时
(152条消息) Springboot调整接口响应返回时长(解决响应超时问题)_springboot设置接口超时时间_JermeryBesian的博客-CSDN博客
- Jemter录制脚本
(156条消息) JMeter脚本录制-快速上手篇_jmeter录制_软件测试大叔的博客-CSDN博客
- 使用jprofiler查看检查代码
https://blog.csdn.net/vicky_pyh/article/details/88797514
- 统计linxu 网路流量
在Linux下怎么看网络流量_系统运维_内存溢出 (outofmemory.cn)
sar -n DEV 1 4
- K8s中内存资源限制介绍
(152条消息) kubernetes(k8s):容器资源限制(内存限制、cpu限制、namespace限制)_k8s 内存限制_鲸鱼妹子的博客-CSDN博客
相关文章:
记一次压力测试
性能测试文档 背景 为对产品性能有一定了解,现将产品展开一次性能测试; 环境与工具 本章为基本工具准备及linux命令说明,无先后顺序。 Xshell工具 本文使用Xshell在Windows界面下远程登录linux主机安装Xshell直接全部选择默认选项即可&…...
一个文明是否有竞争力,在很大程度上取决于信息传递的效率。
文章目录 引言I 有效地传递信息1.1 信息传播分类1.2 信息传递的有效性II 科技进步的必要条件和充分条件2.1 能量总量2.2 能量密度2.3 衡量科技成就的大小2.4 科学的诞生的意义:获得叠加式收益引言 科技进步的必要条件是能量总量,而充分条件是能量密度。一个文明是否有竞争力,…...

测试4年,跳槽一次涨8k,我跳了3次···
最近有人说,现在测试岗位初始工资太低了,有些刚刚入行的程序员朋友说自己工资连5位数都没有.....干了好几年也没怎么涨。看看别人动辄月薪2-3万,其实我想说也没那么难。说下如何高效地拿到3w。 1.暂且把刚入行的条件设低些吧,大专…...

Redis 入门教程(简单全面版)
1 安装: 1.1 生产环境安装 注意: 1、如果安装过程有问题可以参考源代码中的 README.md 文件 2、如果服务器只安装一个 redis 通常选择 /usr/local/redis 作为安装目录,如果安装多台则建议带上 服务名称 区分(建议带上 服务名称 区…...
java并发-AQS
当我们使用Java并发编程时,我们经常会听到“AQS”的概念。AQS代表“AbstractQueuedSynchronizer”,是Java并发包中的一个重要组件。AQS提供了一个框架,使得开发者可以轻松地实现各种同步器,例如锁,信号量,倒…...

openAI图像生成开发文档
图像生成 了解如何使用我们的 DALLE 型号 介绍 图像 API 提供了三种与图像交互的方法: 根据文本提示从头开始创建图像根据新的文本提示创建现有图像的编辑创建现有图像的变体 本指南介绍了使用这三个 API 终结点的基础知识以及有用的代码示例。要了解它们的实际…...

Python综合案例—利用tkinter实现计算器的程序
目录 一、导入 tkinter 库 定义全局变量 二、定义回调函数 三、创建窗口对象 四、创建标签控件 五、创建数字按钮 六、创建加、减、乘、除和等于按钮 七、创建清空按钮 八、总结 用Python实现计算器可以让我们更好地理解面向对象编程、GUI 编程和事件驱动编程等概念&a…...

canvas学习笔记
其实还有react还没有学,但是公司技术栈里面有canvas,所以先系统学习一下canvas 一、canvas 简介 <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为 JavaScript) 在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(也…...

Navicat Premium 15安装注教程
Navicat Premium 15安装 准备工作 下载好安装包navicat150_premium_cs_x64和安装完成Navicat Premium 15 链接:https://pan.baidu.com/s/1TJs3pjAXJXhu7-13DJLzpg 提取码:hunk 安装Navicat Premium 15 无脑操作,下一步下一步就行了&…...

yolo v8
这个系列代码被封装的非常的精致,对二次开发不太友好,虽然也还是可以做些调节 模型的导出 有三种方式试过,都可以导出onnx的模型 1. 用yolov8 源码来自:ultralytics\yolo\engine\exporter.py (不固定尺寸) yolo export modelpa…...

2022IDEA的下载、安装、配置与使用
文章目录 1.IntelliJ IDEA 介绍1.2 JetBrains 公司介绍1.2 IntelliJ IDEA 介绍1.3 IDEA 的主要功能介绍1.3.1 语言支持上1.3.2 其他支持 1.4 IDEA 的主要优势:(相较于 Eclipse 而言)1.5 IDEA 的下载地址1.6 官网提供的详细使用文档 2.windows 下安装过程2.1 安装前的…...

实验十 超市订单管理系统综合实验
实验十 超市订单管理系统综合实验 应粉丝要求,本博主帮助实现基本效果! 未避免产生版权问题,本项目博主不公开源码,如果您遇到相关问题可私聊博主! 一、实验目的及任务 通过该实验,掌握利用SSM框架进行系…...

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、…...

springboot+freemarker+restful
什么是freemarker? FreeMarker是一种模板引擎,它可以用于生成各种类型的文档,比如HTML、XML、PDF、Word等。它可以通过简单的模板语法和数据模型来生成文档内容。与传统的JSP相比,FreeMarker的语法更加简洁和易读,并且可以很好地…...

基于Kubernetes集群构建大中型企业CICD应用平台(1)-- devOps
一、DevOps介绍 软件开发最开始是由两个团队组成: 开发计划由开发团队从头开始设计和整体系统的构建。需要系统不停的迭代更新。 运维团队将开发团队的Code进行测试后部署上线。希望系统稳定安全运行。 这看似两个目标不同的团队需要协同完成一个软件的开发。 …...

什么是模型鲁棒性和泛化能力
目录 1、鲁棒性 2、泛化能力 1、鲁棒性 定义:在统计学领域和机器学习领域,对异常值也能保持稳定、可靠的性质,称为鲁棒性。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃&a…...

AI翻译工具分享
LanguageX简介 冠军翻译引擎交互式翻译,为专业译者而生的新一代译者工具 自2017年神经网络机器翻译流行以来,“机器翻译替代人工翻译”的观点屡见不鲜。作为一个技术和语言背景结合的团队,LanguageX认为语言服务是高度复杂、需要创意的智力活动,并肩负着人类沟通的重要使命。La…...
选男友最好的方式就是爬山
爬山,作为一种户外运动,一直备受青睐,拥有着许多的好处。而对于现代人来说,选择一位合适的伴侣,也是一件非常重要的事情。 那么,为什么不将两者结合起来,用爬山来寻找最合适的男友呢?…...

C++面经:初始化全局变量和未初始化全局变量有什么区别
全局变量初始化而且初始值不为0,那么这样的全局变量是放在内存的.data段的,如果全局变量初始值为0或者未初始化,那么这样的全局变量是放在.bss段的。 考点: 考察C/C语言内存模型,.data,.bss段存放的内容。 …...
vue-2 指令:
指令 什么是html属性:就是用来扩展html标签的功能,属性是写在html的开发标签中:属性“属性值”, 指令就是用来扩展在vue中标签的功能 {{}} :模板语法,文本插值 不可解析html标签 {{ 可以写变量&#x…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...

Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...