随笔分类 - 性能测试之路
摘要:索引问题 现象: tps很低,响应时间长,数据库服务器CPU很高,接近100%,应用服务器负载比较低 索引: 索引是针对数据库中一列或多列的值进行排序的一种结构,存储了表的关键字段,使用索引可快速访问数据库表中的特定信息 分析 数据库服务器CPU高,一般都是因为SQL执行效率低导致的,可能有三方面原
阅读全文
摘要:一、开启慢SQL配置 Linux系统在mysql配置文件 /etc/my.cnf 增加 slow_query_log=1 long_query_time=0.1 # 单位秒(100ms) 配置完后重启mysql,systemctl restart mysql 二、慢查询查询是否生效 show var
阅读全文
摘要:安装JProfiler Window: 傻瓜式安装 Linux: 下载地址:https://www.ej-technologies.com/download/jprofiler/files 1、上传安装包,执行命令rpm -ivh jprofiler_linux_9_1_1.rpm 2、tomcat
阅读全文
摘要:线程死锁 定义 线程死锁就是有两个线程,一个线程锁住了资源A,又想去锁定资源B,另外一个线程锁定了资源B,又想去锁定资源A,两个线程都想去得到对方的资源,而又不愿释放自己的资源从而造成一种互相等待,无法执行的情况 现象 1、出现死锁后,tps降为0,压力测试工具无法得到服务器的响应,服务器硬件资源空
阅读全文
摘要:内存溢出: 堆内存溢出 堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值, 就会出现内存溢出OutOfMemory:Java heap space 永久代溢出 -- (解决方案:加大永久代内存) 类的一些信息,如类名、访问修饰符、字段描述、方法描述等,所占空间大于永久代
阅读全文
摘要:Jvm常见参数 -Xms2048m,初始堆大小,建议<物理内存的1/4,默认值为物理内存的1/64(1/64太小,建议1/4) -Xmx2048m,最大堆大小,建议与-Xms保持一致,默认值为物理内存的1/4 (为什么保持一致:初始值1G,最大2G,当内存用了1G的时候,还没到使用上限,可以进行扩容
阅读全文
摘要:线程的五种状态 新建:new 运行:runnable 等待:waitting(无限期等待),timed waitting(限期等待) 阻塞:blocked 结束:terminated 线程转换关系 线程的两种监控方法 1、图形界面的方式:jvisualvm 监控之前先对jvm加监控参数,在tomca
阅读全文
摘要:系统资源监控 操作系统监控 cpu监控:top 命令 内存监控:free -m 命令(内存监控:buffer、cache、swap) 磁盘IO监控:iostat -x -k -d 1 (关注指标:%util,磁盘繁忙度) - (提前按照 sysstat:yum install -y sysstat)
阅读全文
摘要:Prometheus 监控平台部署 Linux 操作系统监控 + Mysql 监控 平台监控原理 环境说明: 本文档中各组件运行的环境为 Ubuntu(64 位操作系统) node_exporter 监控的是 192.168.1.26 机器的操作系统 mysql_exporter 监控的是 192.
阅读全文
摘要:Nginx 安装 Nginx 安装前需要先安装 pcre、openssl、zlib 等模块,手动安装比较繁琐,所以推荐使用yum 进行安装 1、 默认情况下 CentOS7 中没有 nginx 的下载源,先手动添加官方源 rpm -Uvh http://nginx.org/packages/cent
阅读全文
摘要:单项目部署(pinter 项) 前提:数据库及表已经建立好 1、 先将项目放到 Linux 上某个目录下,如/root/app 注意:如果项目是 war 包形式的,需要先创建 pinter 文件夹,然后在文件夹内对 war 包进行解压:unzip pinter.war 2、数据库配置 (数据库已经建
阅读全文
摘要:Linux安装配置JDK 下载:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html 这里使用的是 jdk-8u271-linux-x64.tar.gz 版本 先在Mac上下载
阅读全文
摘要:性能测试目的 测试系统最大处理能力 寻找系统最大的TPS,判断TPS和对应响应时间是否满足预期 测试系统支持最高并发 寻找系统最高能支持多少并发,当系统出现宕机、进程崩溃、报错率持续上升、响应时间超过可忍受范围、程序无响应等情况,即可认为系统达到了可支持的最高并发 性能测试场景 先进行单接口测试 再
阅读全文
摘要:JMETER分布式压测 执行分布式的原理 盗来的图,将就用一下 控制机及执行安装部署JMeter,版本及插件要保持一致(安装好一台,打包给到另一台使用) 关闭每台机器的防火墙(systemctl stop firewalled) 如果是java脚本,将java脚本和相关lib包都放在jmeter目录
阅读全文
摘要:本机命令行执行脚本 cd 脚本目录 jmeter -n -t login.jmx -l /report/result.jtl -e -o /report/result-100 jmeter -n -t 脚本名称.jmx -l report/ -n:命令行执行 -t:指定的脚本 -l:指定生成jtl格
阅读全文
摘要:线程组设置策略 Jmeter两种运行模式 按照运行次数运行:线程组设置循环x次 按照运行时间运行(一直循环到时间结束,执行次数不定) -- 线程组设置循环永远 -- 勾选调度器,设置持续时间,单位秒 线程组和请求设置逻辑 关键逻辑 一个线程组内的多个请求是顺序执行的 不同线程组内的请求是并行执行的
阅读全文
摘要:BeanShell使用 BeanShell是一种完全符合java语法规范的脚本语言,也就是java源代码解释器 有如下几种BeanShell 定时器 BeanShell取样器 BeanShell取样器 调用Java方法有三种: 第一种:jar 包 步骤如下: 在 idea 工具里面调试好算法 打 j
阅读全文