随笔分类 -  性能测试

摘要:如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行分析,会无法分析,如果要强制进行分析,造成的最后结果是内存泄漏,即无法分析,所以需要通过其他途径来保 阅读全文
posted @ 2019-02-17 00:05 向前走。 编辑
摘要:下载地址:https://sourceforge.net/projects/ngrinder/files/ ngrinder工作原理:这里的controller就是ngrinder平台 部署(以windows为例): 把下载下来的ngrinder-controller.war重命名为ngrinder 阅读全文
posted @ 2019-02-15 23:36 向前走。 编辑
摘要:工作步骤: 1、开发提交代码SVN/Git 2、代码编译、打war包 3、上传war包到服务器 4、重启web服务器 5、开始测试/自动化测试 6、发测试结果 Jenkins工作: 1、开发提交代码Git 2、Jenkins拉取代码,自动化编译,打包 -- 插件 3、Jenkins自动上传war包 阅读全文
posted @ 2019-02-14 23:57 向前走。 编辑
摘要:在liunx压力机进行压测的时候,可以在widows下开一个jmeter,只进行监控用,不产生压力,监控效果和dstat差不多 jmeter安装客户端插件 把工具放到服务端任意目录并解压,我这里放到了server目录下 windows下bat,liunx下sh 启动一下 jmeter创建一个空的ht 阅读全文
posted @ 2019-02-13 22:53 向前走。 编辑
摘要:Linux 中模拟延时和丢包的实现 使用ifconfig命令查看网卡 Linux 中使用 tc 进行流量管理。具体命令的使用参考 tc 的 man 手册,这里简单记录一下使用 tc 模拟延时和丢包的命令。 ping出来的最小单位为1毫秒,在执行压测之前,最好用压力机ping一下服务器,如果延迟很高, 阅读全文
posted @ 2019-02-13 22:07 向前走。 编辑
摘要:1、项目具体需求,及业务场景:关注真实用户会是怎样的一个业务场景,确定用户的用户习惯。 2、指标:响应时间在多少以内,并发数多少,tps多少,总tps多少,稳定性交易总量多少,事务成功率,交易波动范围,稳定运行时长,资源利用率,测哪些交易,哪些接口,测试哪些场景。 3、环境:生产环境服务器数量,测试 阅读全文
posted @ 2019-01-29 23:12 向前走。 编辑
摘要:性能瓶颈定位整体思路,从前到后,从表象到内部 1,首先排除压力机的性能情况,包括cpu、内存 2,应用服务器的硬件指标,cpu,内存,网络IO(ethtool eth0),磁盘IO,如果发现某台机器的这四项中的任何一项到达瓶颈,那么这台机器在这一方面就到达瓶颈了 3,其他服务器,比如数据库服务器,依 阅读全文
posted @ 2019-01-29 23:10 向前走。 编辑
摘要:mysql结构简介 1,慢查询 查看某个变量的值,一般是看配置:show variables like '%slow%'; 查看当前某个参数的状态值,一般是动态的,而且是在命令行下查看:show global status like '%long_query%'; 使用配置查看:具体配置在上上篇里面 阅读全文
posted @ 2019-01-29 00:21 向前走。 编辑
摘要:联合索引:一个索引同时作用于多个字段 联合索引的最左前缀: A、B、C3个字段--联合索引 这个时候,可以使用的查询条件有:A、A+B、A+C、A+B+C,唯独不能使用B+C,即最左侧那个字段必须匹配到 联合索引最左前缀如果匹配不到,会造成索引失效,对性能影响非常大,所以联合索引的顺序很重要 看一下 阅读全文
posted @ 2019-01-28 23:33 向前走。 编辑
摘要:MYSQL 慢查询使用方法MYSQL慢查询介绍分析MySQL语句查询性能的问题时候,可以在MySQL记录中查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。MYSQL自带的慢查询分析工具mysqldumpslow可对慢查询日志进行分析:主要功能是, 统计sql的执行信息,其中 阅读全文
posted @ 2019-01-27 23:23 向前走。 编辑
摘要:性能测试是基于大量数据的,而进行性能测试之前肯定没那么多数据,所以就要自己准备数据 数据构造方法: 1.业务接口 -- 适合数据表关系复杂 -- 优点:数据完整性比较好2.存储过程 -- 适合表数量少,简单 -- 优点:速度最快3.脚本导入 -- 适合数据逻辑复杂 -- 自由度比较高4.数据量级 - 阅读全文
posted @ 2019-01-27 19:39 向前走。 编辑
摘要:使用Jprofiler监控分析案例 一、cpu负载过高:http://localhost:8080/PerfTeach/CpuTopServlet?id=1 cpu消耗高的可能原因1、使用了复杂的算法,比如加密、解密2、压缩、解压、序列化等操作3、代码bug,比如死循环 dstat监控起来,先看一下 阅读全文
posted @ 2019-01-27 00:05 向前走。 编辑
摘要:Jprofiler是一个重量级的工具,需要分别在服务器和windows都装客户端,会损耗性能,用于发现问题后排查问题,而不是常规的监控 JPROFILER工具下载地址:http://www.ej-technologies.com/download/jprofiler/fileslinux下安装:rp 阅读全文
posted @ 2019-01-26 22:31 向前走。 编辑
摘要:一、线程死锁 线程死锁就是有两个以上的线程,一个线程锁住了资源A,又想去锁定资源B,另外一个线程锁定了资源B,又想去锁定资源A,两个线程都想去得到对方的资源,而又不愿释放自己的资源从而造成一种互相等待,无法执行的情况 接口:http://localhost:8080/PerfTeach/DeadSe 阅读全文
posted @ 2019-01-26 22:29 向前走。 编辑
摘要:堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space 永久代溢出 如果发生,则是在初始化的时候,空间太小,解决办法,扩大空间类的一些信 阅读全文
posted @ 2019-01-24 23:39 向前走。 编辑
摘要:垃圾回收-GC 三个问题 哪些内存需要回收? 什么时候回收? 如何回收? YoungGC和FullGC: 新生代引发的GC叫YoungGC 老年代引发的GC叫FullGC FullGC会引起整个Jvm的用户线程暂停,待垃圾回收完毕后,才继续运行 引用的定义:如果reference类型的数据中存储的数 阅读全文
posted @ 2019-01-23 00:01 向前走。 编辑
摘要:Java内存管理机制 Java采用了自动管理内存的方式Java程序是运行在Jvm之中的Java的跨平台的基于Jvm的跨平台特性内存的分配和对象的创建是在Jvm中用户可以通过一系列参数来配置Jvm Jvm运行时区域 做性能测试经常接触到的三个地方:方法区、虚拟机栈、堆 jvm主要内存结构(简化版): 阅读全文
posted @ 2019-01-21 23:44 向前走。 编辑
摘要:1.top命令top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 2 阅读全文
posted @ 2019-01-19 00:40 向前走。 编辑
摘要:线程的五种状态 * 新建:new * 运行:runnable * 等待:waitting(无限期等待),timed waitting(限期等待) * 阻塞:blocked * 结束:terminated 线程的两种监控方法一,jvisualvm,图形界面的方式 监控之前先对jvm加监控参数,在tom 阅读全文
posted @ 2019-01-19 00:36 向前走。 编辑
摘要:一、综合性的监控工具:vmstat vmstat命令综合了CPU、进程、内存、磁盘IO等信息,后面一般跟一个数字,代表多长时间刷新一次(秒)命令:vmstat 1 swap: si:SwapInput,从内存往磁盘(swap空间)写数据 so:SwapOutput,内存从磁盘(swap空间)读数据 阅读全文
posted @ 2019-01-18 00:20 向前走。 编辑