- 博客(154)
- 资源 (25)
- 收藏
- 关注
原创 记一次真实项目的性能问题诊断、优化(阿里云redis分片带宽限制问题)过程
混合场景压测时,发现通过增加线程数、扩容被测服务数量等,服务整体吞吐量最大到TPS 1.6万左右,不会随着线程的增加、服务容器数量增加而增长,且增加线程后,接口耗时开始增加。redis分片带宽调整后,回归压测,确认服务吞吐量上来了(QPS 29000,预期QPS 20000,已满足预期),接口耗时在100ms内,各服务资源使用正常。经排查,发现redis集群(共8个分片)的其中一个分片带宽比其他7个分片,出网带宽要高90MB。通过断点日志打印,发现耗时超过200ms的为redis查询key的操作。
2024-10-23 17:34:43 498
原创 jmeter二次开发-java实现HashTree中字段值参数化
近期由于公司需求,需要开发一套性能测试平台,便于公司产品接口能够快速压测(面对使用人群:性能测试、QA、开发)。通过多次调研讨论,决定基于jmeter进行开发。 下面代码主要实现:怎样把某场景下所有业务接口转换为jmeter可识别的HashTree。HashTree中包含了TestPlan、...
2021-02-04 18:04:49 1389 1
转载 倾囊相授-总结非常全面到位的性能分析思路
年轻的时候,经常听一些大会或者演讲。有些人说,思路逻辑非常重要。我那时就想,你肯定是瞎忽悠的,因为我怎么就没听懂你说的思路呢?而现在轮到自己来写或者讲一些东西的时候,才发现他们说得很对,而我之所以不理解,也是有原因的。性能分析思路和具体的实现之间,有一道鸿沟,那就是操作的能力。之前我为什么听不懂那些人的思路,其实是因为我没有操作的功底。而有了操作的功底之后,还有一个大的鸿沟要越过去,那就是从操作到对监控计数器的理解。这一步可以说让很多性能测试人员都望而却步了。但是这还不算完,这一步迈过去之后
2021-02-03 16:42:54 630
原创 千万级以上测试数据参数化-性能测试具体实现方式(jmeter、redis)
笔者之前做过一个特别有印象的项目,测试数据量级为3000+万,因测试需求,需要测试工具或测试脚本把这些数据参数化来使用。常见的做法有以下几种:1)把测试数据提取出来放到指定文件中(txt/csv),对于参数话数据量少的场景,没问题。但测试数据一旦超过百万级,文件大小就可能几十M起步了,这样测试工具或脚本读取文件耗时较长,影响发压;下图mids文件中100万条数据,大小32.4M。2)把测试数据导入到数据库中,让测试工具或脚本去数据库中取值;3)把测试数据导入到redis中,red
2021-01-27 19:29:26 1251 4
原创 java代码实现批量数据插入redis(埋数)
由于测试需要,把文件内容批量插入到redis指定key中。mids.txt文件局部信息如下:32350194015fbe81082630400008368312350194015fbe81082630400001192122350194015fbe81082630400004927212350194015fbe810826304000011997......................以下为具体java实现代码:import redis.clients.jedis.Jedi
2021-01-27 14:18:01 4196 3
原创 Jmeter中HashTree转jmx及jmx转HashTree实现示例
1、创建jmeter工具类StressTestUtils/** * 压力测试工具类 * @author by xxxx * @date 2020/6/30. */@Componentpublic class StressTestUtils { //获取操作系统信息 public final static String OS_NAME_LC = System.getProperty("os.name"). toLowerCase(java.uti...
2020-12-28 21:49:33 1122 1
原创 基于arm平台飞腾银河麒麟系统服务器资源监控工具nmon
国产化:基于arm平台飞腾银河麒麟系统服务器资源监控工具nmon,rpm安装包为:nmon-16g-3.el7.aarch64.rpm下载地址:https://download.csdn.net/download/junior77/13116936
2020-11-16 14:08:47 3507
原创 常用JAVA项目监控工具
一、应用内存监控:推荐jvisualVM、MAT、arthas、Jprofile二、方法监控:推荐ump、jtrace、arthas三、服务器资源监控:nmon、grafana+zabbix、火焰图、loadrunner计数器。四、数据库监控:1)MySQL(spotlight、mysql慢日志、检查死锁命令等)2)postgresql(pgAdmin、pgcenter)...
2020-10-21 11:44:28 2037
原创 性能问题诊断-接口方法多次重复调用
问题描述:某系统单交易多并发运单下发时,耗时为1340ms。问题分析:发现OMS对com.jd.eclp.master.dept.service.DeptService:getDept方法重复调用了4次(同一deptid),累计耗时:129ms。 注:系统方法调用监控使用的是pinpoint。优化方案:减少OMS系统对getDept方法的调用次数,可优化为调用一次即可。...
2020-10-20 23:41:52 1097
原创 性能问题诊断-应用线程大小导致的业务报错
问题描述:单应用单交易场景下,订单-新增在250并发压力下某系统后台报以下错误。[] WARN 2019-01-08 13:44:52,957 [JSF-SEV-WORKER-123-T-9] com.jd.jsf.gd.server.BusinessPool.rejectedExecution(128) | [JSF-23002]Task:java.util.concurrent.FutureTask@3a1046d9 has been reject for ThreadPool exhausted! .
2020-10-20 23:37:44 144
原创 性能问题诊断-JVM篇(OutOfMemoryError内存泄漏问题)
问题描述:某仓储系统压测时,发现任务分配worker后台定时处理任务时(积压2个已定位波次,每波次10000订单),ta-worker应用后台抛出”组建集合单异常”,错误信息如下:2018-10-22 14:09:29[ schedulerFactoryBean_Worker-1:1936704 ] - [ERROR] com.jd.wms.assign.worker.TaskAssignWorker-: - [TaskAssignWorker] :{}java.lang.OutOfMemoryErro
2020-10-20 22:57:49 249
原创 性能问题诊断-线程篇二(通过单线程改为多线程来优化业务处理耗时)
分享下之前项目性能测试时遇到的各种性能问题及解决思路、方法,欢迎同行交流!经了解,波次定位包含:调用。波次定位时,单波次无积压。采用多线程方式,需注意对。次,且每次调用耗时约。2)波次定位TPS由。
2020-10-20 22:41:39 267
原创 性能问题诊断-Mysql默认配置篇(mysql服务器CPU飚高)
问题描述:在对某仓储系统运单WaybillAddAPI.add接口压测时,发现数据库CPU资源占用为85.05(23%us;62%sy),sys占用较高。问题分析:mysql中大量写入字段为timestamp 类型数据,当time_zone 设置为 system 时,mysql 访问每一行的 timestamp 字段时,都会通过 libc 的时区函数,获取 Linux 设置的时区,在这个函数中会持有mutex,当大量并发SQL需要访问 timestamp 字段时,会出现 mutex 竞争。MySQL 中
2020-10-20 22:31:57 234
原创 MIPS平台UOS系统中使用nmon 监控服务器资源
MIPS平台UOS系统中使用nmon监控服务器资源近日笔者需要为 mips平台UOS系统(国产系统)的服务器资源进行监控,网上找了一圈,没发现有直接可用的适配监控工具。之前一直用习惯了nmon,但nmon文件没法直接用于uos,于是抱着试试的态度,从网上搜集有用信息,最后终于在uos系统中成功运行nmon,分享给大家!具体步骤如下:注:1)服务器需要有访问外网权限; 2)UOS 支持的是 dkpg和apt 包管理方式,支持的安装包格式是 .deb格式,与RedHat的 yum 和rpm管..
2020-10-19 11:51:19 1000
原创 S3服务器文件上传性能测试(s3admin+jmeter)
近日笔者在做项目性能测试时,有一个场景是模拟客户端上传文件到s3服务器(文件服务器)。经了解,可以通过s3cmd命令直接上传文件到s3服务器。经调研,最后使用jmeter扩展插件来实现。说明:1) s3服务器10.95.*.2082)s3admin客户端服务器 10.95.*.72 (需要安装s3admin)具体实现压测步骤:一、在s3admin客户端服务器上安装s3adm...
2020-04-28 14:59:48 2080 1
转载 基于Jmeter的性能压测平台实现(转载)
背景:因部门测试需要及后期性能测试后期建设,急需要开发一个压测平台。前期考察了基于ngrider及jmeter的平台建设,通过组内讨论,最后确定使用jmeter来做压测平台,开发语言java。平时虽然经常使用jmeter,但要用它来实现一个压测平台,还是有点困难(第一次做)。于是想借鉴网上是否有成熟的demo,发现下面这个项目做的比较实用且源码公开,特在此再次分享下。感谢作者无私分享、代码开源...
2020-03-16 19:25:55 781
原创 PostgreSQL数据库性能监控手段之慢SQL、死锁
之前接触PostgreSQL数据库甚少(此前经常使用mysql、db2),直至入职当前某安全公司后,发现数据库都采用PostgreSQL,由于负责性能测试方向,经常需要诊断数据库方面是否存在性能问题,于是整理了PostgreSQL设置慢SQL、查看死锁等常用监控手段。一、慢SQL设置步骤1、笔者以工作中使用的docker为例,PostgreSQL版本为9.5:Postgr...
2019-10-25 14:17:13 2297
原创 msg: Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-m)
说明:因项目测试,需要把测试样本文件上传至10台linux服务器某路径下。考虑使用ansible工具比较合适。于是在其中一台linux机器上安装ansible工具,并配置好ansible参数。在安装ansible工具的Linux机器上,执行。ansible工具安装在这不赘述。
2024-10-24 11:32:57 130
原创 性能测试问题诊断-接口耗时高
参考下图,Latency time - Connection time 值较大(20000ms以上),可以判定时间主要消耗在服务层,需要进一步分析。问题现象:近期发现每晚跑的定时压测任务,压测结果中,各接口耗时变高(原来99耗时20秒)。发现 Latency time 延迟时间较高,Connection time 建立连接时间 较小。Connection time 建立连接时间。Latency time 延迟时间。
2024-09-24 15:03:28 251
原创 An error occurred: Report generation requires csv output format, checkimeter.save.saveservice.output
jmeter的jmx格式的聚合报告转换成html时报错
2024-09-20 17:53:05 256
转载 转载 解决 jmeter An error occurred: Error while processing samples:Mismatch
问题描述:An error occurred: Error while processing samples:Mismatch between expected number of columns:17 and columns in CSV file:14, check your jmeter.save.saveservice.* configuration or check line is complete。
2024-09-20 17:45:39 65
原创 An error occurred:Mismatch between expected number of columns:16 and columns in CSV file:17, check .
jmeter 压测结果生成报告时报错
2024-09-20 17:31:06 286
转载 转载-Jmeter动态吞吐量实现
在容量测试时,“控量”是非常重要的,JMeter 是根据线程数大小来控制压力强弱的,但我们制定的压测目标中的指标往往是吞吐量(QPS/TPS),这就给测试人员带来了不便之处,必须一边调整线程数,一边观察 QPS/TPS 达到什么量级了,为了解决这个问题,JMeter 提供了吞吐量定时器的插件,我们可以通过设定吞吐量上限来限制 QPS/TPS,达到控量的效果。以上吞吐量动态调整的主要思路来源于阿里巴巴本地生活前高级专家吴骏龙的付费文章,但实际上这个功能不算新鲜,只是很多人还不知道而已。
2024-09-19 16:57:03 226
转载 git 将dev分支的代码合并到master
2. git log // 可以看到近期的相关提交日志(提交时候的备注等) 3. git status // 可以看到当前的文件状态 (如xx文件被修改,但未提交等)原文链接:https://blog.csdn.net/qq_38608304/article/details/133642116。2. git push origin master // 将当前的更改推送到远程的master分支上。4. git push origin dev // 将本地修改的代码提交到远程的dev分支上。
2024-07-25 17:12:18 387
原创 Java代码中如何在JSONObject按put顺序排序
编写java代码时,发现在JSONObject 对象中put 一些数据后,输出JSONObject对象信息时,展示的json信息中,排序发生了变化。"message": "压测通过""message": "压测通过"发现data下的对象顺序乱了。
2024-06-19 11:26:38 1256
原创 jmeter5.4.1源码编译(IDEA)问题解决
注:最初使用GRADLE7.6版本,发现还报错。重新下载了新版本8.1.1,然后没问题了。1、更换JDK版本。JDK11 更换为JDK8(具体版本1.8.0_291)2、GRADLE版本及IDEA中配置。2)IDEA中配置GRADLE配置。
2024-04-22 17:29:07 728 3
原创 世界上最值得精读的十大证券书籍
包括如下内容:如何找到最佳的赚钱机会,在去公司参观时应该查看什么、避开什么,如何才能更加有效地发挥经纪人的作用,如何使用年报进行分析,如何利用那些能带来最好收益的其他信息资源,以及如何对待那些经常在股票的技术分析中用到的各种数据(如市盈率、帐面价值,现金流等等)。” 格雷厄姆思想的精华是“完全边际”,费雪的思想的精华是选择数量不多的成长公司股票并长期持有。约翰的一句格言很精彩:“当您走进股票市场,您是在进入一个充满竞争的领域,在这里您自己的评价和见解将会遇到行业中最敏锐的、最坚毅的头脑的挑战。
2024-04-03 15:10:04 2587
原创 json展示curl 请求接口返回结果
发送请求并将返回结果以JSON格式展示,通常需要确保请求的响应本身就是JSON格式。sudo yum install jq # 对于CentOS/RHEL。Linux发行版中,你可以使用包管理器来安装它。这个JSON处理工具来格式化输出。
2024-03-14 11:24:44 912
原创 jmeter采集ELK平台海量业务日志( 采用Scroll)
由于性能测试需要,需采集某业务系统海量日志(百万以上)来使用,做稳定性压测使用。用来按条件获取HTTP请求后返回结果中_scroll_id字段的值,因为下次请求的入参需要_scroll_id字段的值。,例如,以便将一个索引的内容重新索引到具有不同配置的新索引中。
2023-09-12 16:16:49 1362
转载 性能工具之常见流量复制工具(转载)
我们把用户访问系统造成的数据传输定义为流量,那么在用户访问系统的过程中,我们可以把进入和流出的数据复制下来,进行保存,待后续使用,即离线模式,或者转发到一个新的服务器,立即使用,即在线模式。
2023-08-30 15:23:55 1070
nmon-14g-2-omv4000.x86_64.rpm
2020-11-16
UOS系统nmon监控工具安装文件nmon_14i-9_mips64el.deb
2020-10-19
mips平台中nmon监控安装文件nmon-14i-8.nd7.1.mips64el.rpm
2020-10-19
apache-jmeter-5.1.1.zip
2019-07-11
Badboy2.2.5.zip
2019-07-11
Java并发编程实战 (完整书签扫描版)pdf及源码
2017-11-02
import轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发
2010-05-05
深入浅出Oracle:DBA入门、进阶与诊断案例
2010-05-05
EOS 6.0 RichWeb参考手册
2010-04-09
abframe的源文件及所用到的jar包
2009-12-21
上海普元EOS6工作流教程
2009-12-21
上海普元EOS6.0程序员教程
2009-12-21
EOS5.3报表培训教程.pdf
2009-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人