01 2019 档案

摘要: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 向前走。 编辑
摘要:性能监控是性能测试过程中非常重要的一个环节,当在压测过程中出现性能瓶颈时,需要综合详细的监控数据对问题进行分析。整个系统架构中的每一个环节都需要做监控(压力机、网络、各中间件、各服务器硬件资源等)。性能监控做好了,就能帮助你快速的定位问题,找到系统的性能瓶颈。 操作系统级别监控 cpu监控 Top命 阅读全文
posted @ 2019-01-17 22:27 向前走。 编辑
摘要:测试脚本编写 新建一个folder命名为lib,用于存放依赖包 把以下jar全部拷进lib下,并build path 找开发要 真正要测试的以jar包形式存在的代码的类, 打开看一下 放到lib并build 所以说,要测试Dubbo框架下的接口,lib下要导入Dubbo框架的jar,还有需要测试的接 阅读全文
posted @ 2019-01-16 23:06 向前走。 编辑
摘要:Zookeeper部署 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 zookeeper的配置 阅读全文
posted @ 2019-01-16 22:00 向前走。 编辑
摘要:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 Dubbo是框架,并不是像http那种传输协议 传统系统间通信方式: 系统A和系统B之间耦合性非常大,系统A配置文件里面基本会把系统B的所有接口写进去, 阅读全文
posted @ 2019-01-15 21:51 向前走。 编辑
摘要:系统中使用了缓存+数据库,通用读取数据规则1、先从缓存读数据,如果有,直接返回数据;2、如果没有,去数据库中读,然后再插入到缓存中,再返回数据 Mysql+Redis+Tomcat环境整合 1、修改PerfTeach/WEB-INF/classes/redis-config.properties2、 阅读全文
posted @ 2019-01-14 22:05 向前走。 编辑
摘要:常用命令dbsize:查看redis中的kv数量 keys *:查看redis中所有的keyset key_1 v_1:新增一个key_1,包含v_1get key_1:查看key_1中的内容del key_1:删除key_1 quit:退出flushdb:清空redis中的数据save:将当前re 阅读全文
posted @ 2019-01-13 23:29 向前走。 编辑
摘要:由于redis服务端是单线程实现的,因此只能占用CPU的单核,为了充分利用CPU资源,可以在一台服务器上同时启动多个redis-server实例 首先删除之前的rdb、aof文件 注释掉3个save appendonly改为no 配置方法: 每个实例创建一个conf文件 修改每个conf文件中的端口 阅读全文
posted @ 2019-01-13 23:28 向前走。 编辑
摘要:redis:非关系型数据库,内存数据库,no-sql典型, 数据存放在内存中,一断电或者关闭就没有了 mysql、oracle、sqlserver···是关系型数据库,数据存放在磁盘中 一个Redis的每秒钟的读写大概在5万tps左右,当使用多个Redis布置集群后,性能相当强悍 redis安装方法 阅读全文
posted @ 2019-01-12 00:37 向前走。 编辑
摘要:由于单纯用tomcat只能通过ip+端口号的形式访问,这样只能访问一个tomcat,而真实项目中又不可能只用一两个tomcat,所以就需要Nginx来进行分配访问请求, Nginx本身性能非常好,据官网介绍,每秒支持50Wtps Nginx只是负责转发请求,不处理逻辑, Nginx还有一个做一作用, 阅读全文
posted @ 2019-01-11 00:03 向前走。 编辑
摘要:在正常工作中,mysql应该部署到 一台独立的服务器上,不与tomcat共用服务器,由于成本原因,现部署到一起 为避免出错引起麻烦,先备份: 一:环境清理:先卸载系统自带的mysql 停止mysql:service mysql stop 1、查找以前是否装有mysql:命令:rpm -qa|grep 阅读全文
posted @ 2019-01-10 00:16 向前走。 编辑
摘要:一个tomcat性能有限,所以需要部署等多个tomcat 单实例部署与windows下类似,项目包放到webapp目录下,启动bin目录下的startup.sh即可启动命令:./startup.sh启动并实时监控日志:./startup.sh & tail -f ../logs/catalina.o 阅读全文
posted @ 2019-01-06 02:32 向前走。 编辑
摘要:一:参数优化 1,控制台取样间隔的设置,在jmeter/bin/jmeter.properties文件中修改 summariser.interval=10,默认为30s,最低可修改为6s 2,Jvm参数优化 bin目录下,vi jmeter,修改HEAP的size大小,默认512M,可以设置成102 阅读全文
posted @ 2019-01-06 00:24 向前走。 编辑
摘要:一台压力机产生得压力是有限的,尤其是jmeter,java本来性能就不是很好,并发特别多的时候,jmeter的性能会急剧下降,正常的接口,若单台压力机,超过1000并发以后,jmeter的性能就不怎么行了 所以需要多个压力机,即多个机器部署jmeter产生压力 分布式测试步骤:系统HOSTS文件中进 阅读全文
posted @ 2019-01-05 23:44 向前走。 编辑
摘要:控制台日志,只能看出整体的数据,若只是测单接口,这个最好用,但若有多个接口时,无法分别展示,所以需要换另外一种报表 四种方式来获取Jmeter的结果报表 一、在GUI模式下跑Jmeter的脚本,用tps插件实时展示图表 二、在命令行模式下跑Jmeter的脚本,生成的jtl文件,在GUI界面的聚合报告 阅读全文
posted @ 2019-01-03 00:06 向前走。 编辑
摘要:修改环境变量后就不用每次手动输入路径,省时省事,减少命令长度和出错率 按Ctrl+L可进行翻页,翻页到最后一行,此处有java的环境变量 添加jmeter的目录和bin目录 此时,虽修改成功,但是并未生效,需要source一下 在任何目录下输入jmeter有GUI那个提示即说明配置成功 打印变量 此 阅读全文
posted @ 2019-01-02 22:48 向前走。 编辑

点击右上角即可分享
微信分享提示