
性能测试
文章平均质量分 62
大西瓜大哥
热爱生命,热爱生活。
展开
-
全面解析性能测试:从理论到实践
总的来说,性能测试是一个复杂的过程,需要综合考虑多个因素和方法。本文提供了一套完整的性能测试理论和实践指南,希望能帮助读者更好地理解和应用性能测试。在实际工作中,还需要根据实际情况进行调整和改进,以达到最佳的测试效果。原创 2024-03-29 18:47:59 · 504 阅读 · 0 评论 -
深入理解JMeter性能测试日志:分析并发用户行为与吞吐量指标
Created the tree successfully using script/XXX查询.jmx。原创 2024-03-27 12:32:46 · 748 阅读 · 0 评论 -
通过jmeter,造50个单位的并发用户数据(用户从上至下每50个单位依次排序)
单位数据:loginfoll.csv #50个单位的信息(agencyCode,passwd,agencyname,rgcode)用户数据:50个单位,每个单位200个用户(用户名为agencyCode+i,0<i<201)需要写入的loginfo.csv:要求写入10000个用户,从上至下每个单位抽出一个用户参与排序实现工具:jmeter的beanshell后置处理...原创 2022-08-01 17:24:00 · 409 阅读 · 0 评论 -
JVM堆内存转储
在某些情况下,我们希望在发生内存溢出错误 java.lang.OutOfMemoryError 时, JVM自动执行堆内存转储,以方便事后进行排查和分析。堆转储是 JVM 中特定时刻内存中的所有对象的快照。它们对于解决内存泄漏问题并优化 Java 应用程序中的内存使用情况非常有用。jcmd 是一个非常完整的工具,它通过向 JVM 发送命令请求来工作。我们必须在运行 Java 进程的同一台计算机上使用它。对于某个应用服务,启动脚本中设置内存溢出转储路径为/opt/logs/app。原创 2023-09-22 18:07:44 · 787 阅读 · 0 评论 -
线程 转储
线程转储(Thread Dump)就是JVM中所有线程状态信息的一次快照。线程转储一般使用文本格式, 可以将其保存到文本文件中, 然后人工查看和分析, 或者使用工具/API自动分析。我们一般使用JDK自带的命令行工具来获取Java应用程序的线程转储。原创 2023-09-22 18:06:12 · 298 阅读 · 0 评论 -
记录redis集群连接超时问题及解决方案
下午同事反馈,某业务场景性能测试过程中,出现异常,提供日志报:Redis command timed out1. 先看下日志org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutExcep...原创 2022-09-15 16:55:00 · 1978 阅读 · 0 评论 -
浅谈“最佳并发”与“最大并发”
根据工作情况,简单说一说“最大并发”与“最佳并发”。最后部分是看到一篇介绍并发用户数的模型——《理发店模型》,内容很具有参考价值,结尾附上该博文链接。个人认为的最佳、最大并发最佳并发正确率达到预期(如:99.9%)、平均响应时间达到预期(用户满意)的并发数(且最大吞吐量对应的并发数。如果前后两个并发数间隔较大,吞吐量值差值较小,选择较大并发数作为最佳并发)。但根据经验值(比对历史性能数...原创 2022-09-20 14:21:00 · 236 阅读 · 0 评论 -
通过jmeter上传/导入文件
系统性能测试,需要模拟生产环境搭建应用服务和建造环境数据,最大限度的还原生产环境,使系统性能测试的指标更加合乎实际,真实、准确。如某项目财务系统中的薪资管理模块做工资计算的压测,需要在系统内造179家单位、每家单位500个用户(400人在职、100人退休)...,最终要分别为每家单位的500个用户导入各项工资数据(用于计算)。造数据过程中,每家单位切换分别导入在职、退休人员的工资数据,会非常...原创 2022-12-06 19:50:00 · 1338 阅读 · 0 评论 -
Oracle查询,将某列查询结果用逗号隔开,拼接成一行(listagg函数、xmlagg函数)...
需求:Oracle数据库,通过查询,将查询字段的该列结果用逗号拼接成一行。1. 查询语法1.1 listagg函数select listagg(查询拼接字段,',') within group (order by 排序字段) as 查询显示字段 from 表名 where 条件1.2 xmlagg函数select xmlagg(xmlparse(content 查询拼接字段...原创 2022-12-07 15:33:00 · 7494 阅读 · 0 评论 -
混合场景性能测试
做性能测试,完成所有单个重点场景的性能测试之后(单场景的目的一般是为了发现缺陷、发现瓶颈),还需要做一个混合场景的性能测试(评估系统整体性能)。1. 场景设计 使用jmeter 做混合场景设计:在一个测试计划下,将每个重点测试场景各创建为一个线程组,同时运行多个线程组。 注:测试计划中的 ① 独立运行每个线程组、② 主线程结束后运行teardown线程组均不勾选,否则不会同时运行多个...原创 2022-12-20 21:46:00 · 192 阅读 · 0 评论 -
jmeter:内存溢出解决办法
使用jmeter执行性能测试,报错:java.lang.OutOfMemoryError: Java heap space需要对jmeter的jvm进行调优。记录如下:1. 问题记录及分析: 使用jmeter执行性能测试,某场景150并发时,出现报错。日志如下:Creating summariser <summary>Created the tree successf...原创 2023-03-01 21:38:00 · 284 阅读 · 0 评论 -
性能测试环境搭建及配置优化
做性能测试,首先要搭建测试环境以及对应的监控,再对整体环境做出优化。财务性能测试,涉及到的几项环境配置调优和性能监控:1.应用环境搭建①集群、分布式②应用JVM调优③数据库连接池调优2.中间件Redis①开启多线程(单机模式)②调内存③内存淘汰策略④集群3.中间件Nginx①负载均衡②Linux系统资源限制配置调优③Nginx进程数配置调优④Nginx客户端连接数...原创 2023-03-16 18:29:00 · 89 阅读 · 0 评论 -
JVM监控工具jstat使用介绍
jstat 是 Java 自带的一个命令行工具,用于监控 JVM 运行时的状态信息。它可以通过以下格式的命令来调用:jstat [option] <vmid> [<interval> [<count>]]其中,option 表示需要查询的信息类型,如 -gc, -class, -compiler 等;vmid 表示目标 JVM 的进程 ID 或者进程名...原创 2023-06-19 19:20:00 · 183 阅读 · 0 评论 -
JMeter 分布式压测
JMeter 分布式压测是指使用多台机器协同工作,对被测系统进行大规模的并发测试。这种方案可以有效提高测试效率和覆盖面,并能够更好地模拟真实用户场景。JMeter 分布式压测需要一个 Master 节点来控制整个测试过程,以及多个 Slave 节点来执行真正的压测任务。下面是使用 JMeter 进行分布式压测的基本步骤:1. 在 JMeter 主节点和从节点上,安装 Java 和 JMete...原创 2023-06-20 19:24:00 · 174 阅读 · 0 评论 -
性能测试过程
以下是一个基本的性能测试过程,旨在帮助了解性能测试的具体流程和步骤。1. 确定性能测试目标及指标首先,需要确定性能测试的目标和指标,包括响应时间、吞吐量、并发用户数等方面。这些指标应该根据业务需求和用户场景进行设定,并设定相应的阈值。2. 设计测试场景在设计测试场景时,需要考虑到被测系统的不同使用情况、用户行为、负载分布等因素。根据实际业务场景,设计合理、有效的测试场景,并准备充分、真实...原创 2023-06-21 18:42:00 · 67 阅读 · 0 评论 -
常用的数据库连接池、配置参数及相应的调优方法
数据库连接池是一种用于管理和维护数据库连接的技术,不同类型的数据库连接池具体的配置参数和调优方法也是有所不同的。下面分别举例 C3P0、DBCP、HikariCP 和 Druid 的常用配置信息和调优建议:C3P0常用配置参数:# 连接池中容许的最小连接数目c3p0.minPoolSize=5# 连接池中容许的最大连接数目c3p0.maxPoolSize=50# 连接池初始连接数...原创 2023-06-26 19:28:00 · 1018 阅读 · 0 评论 -
JVM中的-Xms 、-Xmx 参数该如何设置
在 Java 虚拟机(JVM)中,-Xms 和 -Xmx 都是用来设置 JVM 堆内存大小的参数。其中,-Xms 用于设置 JVM 启动时分配的初始堆内存大小,而 -Xmx 用于设置 JVM 堆内存的最大可用空间。默认情况下,-Xms参数的值为物理内存的1/64,-Xmx参数的值为物理内存的1/4。在设置这两个参数时,需要根据具体应用场景和系统资源情况进行综合考虑,以达到优化 JVM 性能的目...原创 2023-06-27 12:33:00 · 4397 阅读 · 0 评论 -
将 -Xms 参数设置和-Xmx 参数的相等,对比 -Xms参数 设置为-Xmx 参数的一半,有哪些优势?...
将 -Xms 参数设置为与 -Xmx 参数相等,相比于将 -Xms 参数设置为 -Xmx 参数的一半,具有以下优势:1. 程序启动时间更短当将 -Xms 参数设置为与 -Xmx 参数相等时,JVM 在启动时会分配最大内存空间,这样可以避免因为动态调整内存空间带来的时间开销。所以,相较于将 -Xms 参数设置为 -Xmx 参数的一半,程序启动时间更短。2. GC操作更加稳定当将 -Xms ...原创 2023-06-27 18:44:00 · 457 阅读 · 0 评论 -
-Xmx参数建议设置为系统内存的多少?
在设置 -Xmx 参数时,建议将其设置为系统内存的一定比例。具体的比例需要根据应用程序的特点、系统资源的限制等各种因素进行综合考虑。如果将 -Xmx 参数设置得过小,可能会导致 JVM 分配的堆内存不足以容纳应用程序需要的对象,从而引起 OutOfMemoryError 错误。如果将 -Xmx 参数设置得过大,可能会导致系统内存被消耗殆尽,从而影响系统的整体性能。一般来说,可以将 -Xmx ...原创 2023-06-28 19:03:00 · 1034 阅读 · 0 评论 -
数据库连接池的最大连接数设置过大,最小连接数设置过小,会有什么影响?...
设置数据库连接池的最大连接数过大或最小连接数过小可能会导致以下影响:1. 资源浪费:设置过大的最大连接数可能导致过多的数据库连接被创建,占用过多的系统资源(如内存、线程等),从而浪费资源。这可能会导致应用程序运行缓慢,并使其他系统组件的性能受到影响。2. 连接延迟:如果最小连接数设置过低,当应用程序需要建立新的数据库连接时,可能需要等待连接池中的连接被释放或新的连接被创建。这将增加连接的延迟...原创 2023-06-29 19:04:00 · 1871 阅读 · 0 评论 -
CPU性能指标介绍及分析
CPU是计算机系统中最核心的组件之一,对系统性能起着至关重要的作用。以下是一些常见的CPU性能指标及其分析:1. %user(用户态)和 %system(内核态)%user:表示CPU花费在用户进程上的时间比例。%system:表示CPU花费在内核进程(系统调用)上的时间比例。 分析:较高的%user值可能意味着系统主要在处理用户级别的计算任务,这通常是正常情况下的系统行为。...原创 2023-07-06 19:44:00 · 1936 阅读 · 0 评论 -
使用Locust进行性能测试
当涉及到评估应用程序或服务的性能时,Locust是一个功能强大且易于使用的开源工具。本文将介绍Locust的基本概念和使用方法。什么是Locust?Locust是一个用于编写、运行和分析负载测试的Python框架。它使用简单直观的方式来定义用户行为,并允许模拟大量并发用户对目标系统进行压力测试。Locust的主要特点包括:易于编写和扩展:使用Python编写测试脚本,可以方便地定义虚拟...原创 2023-07-20 19:46:00 · 120 阅读 · 0 评论 -
locust与jmeter测试过程及结果对比
JMeter和Locust都是强大的性能测试工具,各自拥有自己的优势和专注领域。JMeter提供了全面的功能和基于GUI的界面,适用于复杂的场景和非技术人员。相比之下,Locust采用了以代码为中心的方法,使开发人员可以创建灵活且易于维护的测试场景。今天对同一系统的同一个测试场景,在本人电脑分别用locust与jmeter进行了压力测试。下面是测试过程及结果对比:1. 测试脚本内容lo...原创 2023-07-22 12:22:00 · 264 阅读 · 0 评论 -
使用Locust进行分布式性能测试
Locust是一个强大的性能测试工具,用于评估系统的性能和可扩展性。本文将简洁地介绍使用Locust进行分布式性能测试的步骤和优势。步骤:1. 配置测试环境:在主节点和多个从节点上安装相同版本的Locust,并确保网络互通。2. 编写Locust脚本:使用Python编写Locust脚本文件,定义虚拟用户的行为和负载模式。3. 启动主节点:运行以下命令启动主节点,指定`--master`...原创 2023-07-22 19:36:00 · 74 阅读 · 0 评论 -
使用JMeter连接达梦数据库的步骤和示例
引言:本文将介绍如何使用JMeter连接达梦数据库,并提供连接达梦数据库的步骤和示例,帮助您快速开始进行数据库性能测试。步骤:1. 下载并安装JMeter:首先,从JMeter官方网站下载并安装最新版本的JMeter。2. 添加JDBC驱动:下载并添加达梦数据库的JDBC驱动jar文件到JMeter的lib目录下,例如`JMETER_HOME/lib`。 达梦驱动分享链接:https...原创 2023-07-26 19:42:00 · 500 阅读 · 0 评论 -
优化 Redis 集群缓存分配:解决节点间分配不均导致内存溢出问题
一、Redis 集群部署简介在现代应用程序中,缓存被广泛应用以提高性能和减轻后端数据库的压力。本文将探讨面对 Redis 集群缓存分配不均问题时的解决方法。我们的 Redis 集群部署包括 3 主 3 从,每个节点分配内存 4G(服务器总内存32G),内存淘汰策略相同:volatile-lru。二、问题描述在性能测试过程中,通过 pinpoint 监控发现报错:OOMError in...原创 2023-08-15 17:56:00 · 316 阅读 · 0 评论 -
优化Redis缓存淘汰机制解决性能测试中报错率逐渐攀升问题
在某个查询场景的性能测试过程中,遇到了一个问题:测试过程中报错率逐渐攀升。进一步检查后发现,在查询业务所在应用的后台日志和平台应用的后台日志中,都出现了用户登录相关的报错信息。经过排查分析,发现了问题的根源,并做出了解决方案。问题描述在测试过程中,发现报错率逐渐增加,并且在后台日志中出现以下错误信息:查询业务应用后台日志:2023-08-25 19:37:49.629 xxx-web ...原创 2023-08-26 17:47:00 · 79 阅读 · 0 评论 -
性能测试中故障排查及解决方法
引言: 在进行性能测试过程中,同事反馈报错率突然攀升。通过查看相关日志和服务器状态,发现了一些关键信息。本文将详细介绍导致报错率攀升的原因,并提供相应的解决方法。1. 问题背景在使用JMeter进行性能测试时,我们注意到报错率开始出现异常增长,这引起了我们的关注。为了找出问题所在,我们首先查看了Pinpoint监控和Nginx日志。2. 分析结果2.1 Pinpoint监控从Pinpo...原创 2023-08-28 19:59:00 · 147 阅读 · 0 评论 -
如何获取和分析Java堆信息
引言在Java应用程序的开发和维护过程中,了解和分析Java堆信息是一项重要的任务。本文将介绍如何获取Java堆信息的不同方法,并提供一些分析堆信息的实用技巧。获取Java堆信息的方法Java虚拟机(JVM)工具:使用jcmd命令:在命令行中运行jcmd <pid> GC.heap_info,其中<pid>是Java进程的进程ID。这个命令会输出与Java堆...原创 2023-08-29 18:42:00 · 673 阅读 · 0 评论 -
如何释放服务器内存
服务器内存的管理对于维持系统性能和稳定运行至关重要。当服务器内存不足时,可能导致系统变得缓慢、不稳定或甚至崩溃。因此,释放服务器内存是一项重要的任务。本文将介绍几种常用的方法来释放服务器内存。1. 查看当前内存使用情况首先,我们需要了解当前服务器内存的使用情况。可以通过命令 free -h 或者 top 来查看。这些命令将提供有关可用内存、已使用内存和缓存等信息。通过查看这些数据,可以判断是...原创 2023-08-30 18:59:00 · 4415 阅读 · 0 评论