摘要: Jvm垃圾回收机制一、垃圾回收对象根搜索算法:判断对象存活还是非存活的算法根对象:栈内存中直接引用的对象二、垃圾回收算法1.标记-清除算法特点:标记完成后,统一回收缺点:会产生大量不连续的内存碎片2.标记-压缩算法特点:标记后将存活对象移动到一起,清除以外的内存老年代使用此算法3.复制算法 特点:将 阅读全文
posted @ 2023-06-27 17:10 常疯大虾 阅读(32) 评论(0) 推荐(0)
摘要: JVM内存溢出原理一.堆内存溢出 1.原因堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值2.报错报错类型:OutOfMemory:Java heap space 3.解决程序出差,代码问题,优化代码二.永久代溢出 1.原因类的一些信息,如类名、访问修饰符、字段描述、方 阅读全文
posted @ 2023-06-27 17:09 常疯大虾 阅读(85) 评论(0) 推荐(0)
摘要: JVM内存结构分析1.JVM内存定义Jvm是Java虚拟机,是提供Java代码运行的虚拟环境,每一个java程序运行时,都有自己的一个jvm2.JVM组成JVM有3大核心区域:栈内存:线程私有,主要用于存放基本数据类型和对象的引用(变量)。通过-Xss文件配置参数堆内存:线程共享,主要用于存放数组和 阅读全文
posted @ 2023-06-27 17:08 常疯大虾 阅读(61) 评论(0) 推荐(0)
摘要: 数据库连接池问题定位与分析 一.环境准备 1.编写脚本 2.执行压测 3.打印快照 二.问题定位 1.在快照中,搜索是否存在BLOCKED 或者 TIMED_WAITING字段 2.查看TIMED_WAITING日志中是否存在,跟自身业务相关的日志信息 3.检查是否存在getconnection的关 阅读全文
posted @ 2023-06-27 17:05 常疯大虾 阅读(146) 评论(0) 推荐(0)
摘要: 联合索引问题定位与分析一.配置联合索引二.联合索引生效规则最左侧生效原则1.不生效情况Age在联合索引的第左侧,where字句中,没有用到age所以联合索引不生效2.部分生效情况Email在联合索引的最左侧,slq语句中有email字段,email生效3.联合索引都生效Sql语句中where字段与联 阅读全文
posted @ 2023-06-27 17:01 常疯大虾 阅读(38) 评论(0) 推荐(0)
摘要: 数据库索引问题定位与分析 一.数据库服务器添加慢查询配置 1.my.cnf文件添加监控慢查询配置 cd /etc/my.cnf vi my.cnf 添加如下配置: slow_query_log=1 long_query_time=0.01 2.重启数据库服务器 systemctl restart m 阅读全文
posted @ 2023-06-27 17:00 常疯大虾 阅读(34) 评论(0) 推荐(0)
摘要: 数据库架构优化一.分库分表1.整除取余比如有user有10个库,每个库有100张表userid=100087存放的数据库和表格的路径100087%10=7 第7个库10087%100=87 第87张表2.根据id最后1位和两位插入数据库和表Id的最后1位为数据库的位置Id的最后两位为表格的位置二.读 阅读全文
posted @ 2023-06-27 16:57 常疯大虾 阅读(34) 评论(0) 推荐(0)
摘要: 代码优化1.使用对象池减少对重复对象的创建,比如tcp链接、数据库链接、多线程2.调整连接数,连接池、数据库链接数、tomcat、nginx连接数3.利用缓存技术增加缓存、本地缓存(tomcat内存之中,不走网络)、redis缓存4.串行改并行,即单线程改多线程5.同步改异步,使用场景:本次调用接口 阅读全文
posted @ 2023-06-27 16:56 常疯大虾 阅读(71) 评论(0) 推荐(0)
摘要: Sql语句优化1.在where及order by后的字段,添加索引。避免全表扫描。一般不要超4个2.避免索引失效:避免where字句中对字段进行null值判断,避免where字句中对字段进行函数或者表达式的操作避免where字句中对字段进行左右模糊查询3.查询语句避免*,减少内存使用4.用union 阅读全文
posted @ 2023-06-27 16:56 常疯大虾 阅读(35) 评论(0) 推荐(0)
摘要: Mysql慢查询现象、原因、排查思路一.Mysql慢查询表现1.Tps很低2.相应时间很长3.应用服务器cpu使用率很低4.Mysql数据库服务器使用率很高二.Mysql慢查询原因1.数据未加索引2.数据库索引未生效3.Sql语句不够优化三.Mysql慢查询问题排查思路1.检查是否添加索引2.找到接 阅读全文
posted @ 2023-06-27 16:55 常疯大虾 阅读(755) 评论(0) 推荐(0)
摘要: 性能瓶颈定位思路整体思路:从前到后,从表象到内部1.首先排查压力机自身的问题,如CPU、内存、网络、脚本2.监控中间件的访问日志,观察相应时间耗时,出现在哪一个环节。Tomcat、nginx、apache、mysql3.排查网络问题,监控压力机到后端服务器的网络是否出现瓶颈4.监控服务端的所有机器( 阅读全文
posted @ 2023-06-27 16:54 常疯大虾 阅读(129) 评论(0) 推荐(0)
摘要: K8s安装方法 一.环境准备 1.master和node主机准备 最好是纯净的系统,特别是不能有安装docker 2.上传kainstall-centos.sh和1.20.6_centos7.tgz上传至master机器的任意目录下 3.对kainstall-centos.sh添加可执行权限: ch 阅读全文
posted @ 2023-06-27 16:37 常疯大虾 阅读(351) 评论(0) 推荐(0)
摘要: 搭建skywalking监控平台一.平台建构二.环境搭建注意核对系统时间是否正确Datentpdate pool.ntp.org1.在任意目录新建一个docker-compose的目录cd /homemkdir docker-compose2.在docker-compose的目录下,新建一个dock 阅读全文
posted @ 2023-06-27 16:33 常疯大虾 阅读(171) 评论(0) 推荐(0)
摘要: 普罗米修斯搭建nginx_exporter监控 一、被监控宿主机下,创建监控项目配置文件 1.在/etc/nginx/conf.d,目录下创建件sub_status.conf文件(docker安装放映射地址目录) cd /root/docker/nginx/conf.d touch sub_stat 阅读全文
posted @ 2023-06-27 15:22 常疯大虾 阅读(112) 评论(0) 推荐(0)
摘要: 普罗米修斯搭建redis监控 一、被监控宿主机下载redis容器 执行命令 docker run -d -p 9121:9121 oliver006/redis_exporter --redis.addr redis://ip:port --redis.password 'password' 二、p 阅读全文
posted @ 2023-06-27 15:21 常疯大虾 阅读(264) 评论(0) 推荐(0)
摘要: 搭建mysql_exporter监控 一、安装mysql_exporter 1.执行命令 docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="root:password@(mysql ip:port)/" prom/mysqld-exporter 二、pr 阅读全文
posted @ 2023-06-27 15:18 常疯大虾 阅读(108) 评论(0) 推荐(0)
摘要: Docker容器监控一.docker命令监控容器docker stats containerid二.Prometheus监控docker容器1.设置权限mount -o remount,rw '/sys/fs/cgroup'2.建立软连接ln -s /sys/fs/cgroup/cpu,cpuacc 阅读全文
posted @ 2023-06-27 15:13 常疯大虾 阅读(743) 评论(0) 推荐(0)
摘要: 搭建node_exporter监控一.被监控宿主机,下node_exporter容器执行命令:docker run -d -p 9100:9100 -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/rootfs:ro prom/node-export 阅读全文
posted @ 2023-06-27 15:12 常疯大虾 阅读(132) 评论(0) 推荐(0)
摘要: 搭建grafana 一.安装grafana 1.在普罗米修的宿主机上docker安装grafana docker run -d -p 3000:3000 grafana/grafana 2.浏览器访问grafana 宿主机ip:3000 账号和密码:admin 二、配置prometheus数据源 1 阅读全文
posted @ 2023-06-27 15:11 常疯大虾 阅读(136) 评论(0) 推荐(0)
摘要: 搭建prometheus 一.更新系统时间 1.下载ntp工具 yum install -y ntp 2.更新系统时间 ntpdate pool.ntp.org 二、安装prometheus 1.在普罗米修斯宿主机创建映射文件 mkdir -p /root/prometheus touch prom 阅读全文
posted @ 2023-06-27 15:10 常疯大虾 阅读(156) 评论(0) 推荐(0)
摘要: 普罗米修斯介绍 1.普罗米修斯监控平台由3部分组成 (获取数据)Exporter:监控程序,负责收集数据。针对不同的监控目标,官方有不同的exporter程序 mysql_exporter:获取mysql数据 node_exporter:获取操作系统数据 (存储数据)Prometheus:时序数据库 阅读全文
posted @ 2023-06-27 15:08 常疯大虾 阅读(247) 评论(0) 推荐(0)
摘要: Windows安装jprofiler 一.windows安装和激活 1.首页默认,直点击下一步 2.同意授权 3.进入注册页面 4.在注册页面输入用户和密钥 5.打开注册机,点击generate生成账号和密钥 6.把license key输入到步骤一中的密钥框,公司名字可以顺便写 7.直接点击下一步 阅读全文
posted @ 2023-06-27 14:59 常疯大虾 阅读(2307) 评论(1) 推荐(0)
摘要: Java线程监控 一.Jstasck 1.查找进程 ps -ef | grep tomcat-oa 2.使用jstack监控 jstack 2429 二、jvisualvm 1.tomcat应用环境配置 1.1 tomcat环境配置 修改tomcat中,catalina.sh文件 cd /usr/s 阅读全文
posted @ 2023-06-27 14:58 常疯大虾 阅读(163) 评论(0) 推荐(0)
摘要: Nmon图像化监控工具一、nmon工具环境准备1.上传nmon工具到任意目录2.给nmon改名3.给nmon工具授可执行权限二、nmon使用方法执行命令:./nmon -ft -s 5 -c 1000-ft:以文件方式保存数据-s:每5秒监控一次-c:监控多少次三、nmon数据转化1.下载数据Kil 阅读全文
posted @ 2023-06-27 14:57 常疯大虾 阅读(395) 评论(0) 推荐(0)
摘要: 超级监控工具dstat 1.安装 dstat是一个全能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新 。dstat非系统自带的三方监控工具,必须有python才能安装 yum install -y dstat 2.使用方法 dstat -tclmnds --disk-uti 阅读全文
posted @ 2023-06-27 14:54 常疯大虾 阅读(113) 评论(0) 推荐(0)
摘要: 内存+磁盘+网络监控 一、free -m命令内存监控 1.free使用方法 free以字节显示 free -m 以兆显示 2.数据解读 Total:表示系统总内存大小,used+free+buff/cache=total Used:表示已经使用的内存大小 Free:表示空闲的内存大小 Buff:表示 阅读全文
posted @ 2023-06-27 14:54 常疯大虾 阅读(105) 评论(0) 推荐(0)
摘要: Top命令监控操作系统资源默认是按CPU倒序排列,如果想按照内存的排序展示,按大写M,如果想在切换回CPU排序,按大写的P重点关注指标:load average:平均负载,代表过去一段时间内,cpu处理需要处理的任务数量。后表数字分别代表,1分钟、5分钟、10分钟cpu需要处理的任务数平均值us:代 阅读全文
posted @ 2023-06-27 14:51 常疯大虾 阅读(346) 评论(0) 推荐(1)
摘要: 破解工具使用方法一、注意事项(工具下载完成之后,安装破解之前先断网)1.安装成功navicat15之后,一定不要打开navicat应用程序。2.下载破解工具之前,一定要关闭所有的杀毒软件和防火墙。3.使用破解工具之前,一定要断开网络。二、破解方法1.打开破解工具,按照步骤生成注册码。2.打开navi 阅读全文
posted @ 2023-06-27 14:47 常疯大虾 阅读(5383) 评论(1) 推荐(0)
摘要: jmeter测试dubbo接口 一.Windows环境通过jdbc给lottery接口造用户测试数据 1.将mysql-connector-java-5.1.22-bin.jar放到D:\apache-jmeter-5.5\lib\ext目录下 2.在测试计划中,添加mysql-connector- 阅读全文
posted @ 2023-06-27 11:01 常疯大虾 阅读(469) 评论(0) 推荐(0)
摘要: Jmeter中通过beanshell调用jar包实现加密一.添加beanshell前置处理器由于请求接口时,会传加密参数。加密过程会在请求之前完成,所以需要使用前置处理器中beanshell preprocessor二.在测试计划中添加jar包路径三.编写beanshell脚本1.定义一个beash 阅读全文
posted @ 2023-06-27 10:54 常疯大虾 阅读(289) 评论(0) 推荐(0)
摘要: Jmeter中通过beanshell调用java文件实现加密一.添加beanshell前置处理器由于请求接口时,会传加密参数。加密过程会在请求之前完成,所以需要使用前置处理器中beanshell preprocessor二.编写beanshell脚本1.定义一个beashell变量:phoneNum 阅读全文
posted @ 2023-06-27 10:53 常疯大虾 阅读(266) 评论(0) 推荐(0)
摘要: 上游接口提供多个数据,Foreach控制器遍历全部 一.使用场景 获取用户列表数据,全部登录 二.Foreach使用方法 1.编写获取用户接口脚本 Json提取器,提取所有用户名。因为会被登录接口调用,所以需要定义变量名称 2.编写用户登录接口脚本 线程-添加-逻辑控制器-foreach控制器 输入 阅读全文
posted @ 2023-06-27 10:52 常疯大虾 阅读(66) 评论(0) 推荐(0)
摘要: jmeter中if控制器使用方法一.If控制器用途当一个需要实现满足一定条件才执行时,则可以使用if控制一个线程组由查询库存接口和购买接口构成,需求当库存大于500才购买商品二.If控制器的使用方法1.编写查询商品库存接口脚本使用函数助手ramdon函数对sku_id进行参数化,因为sku_id会被 阅读全文
posted @ 2023-06-27 10:51 常疯大虾 阅读(1060) 评论(0) 推荐(0)
摘要: Jmeter中跨线程调用变量 一.Jmeter中线程运行规则 1.各个线程组是完全独立的,每个线程组是不同的业务,互不影响 2.线程组中的每个线程也是完全独立 3.线程组中的每个线程,都是从上往下执行,完成一轮循环后,继续下一轮循环 4.存在业务流或者接口之前存在依赖关系的放同一个线程组 5.set 阅读全文
posted @ 2023-06-27 10:50 常疯大虾 阅读(436) 评论(0) 推荐(0)
摘要: Jmeter测试签名接口一.了解签名规则1.常见的签名规则:业务数据+当前时间戳2.签名方式:md5(大部分)二.接口信息1.Ip和端口号:10.196.104:80802.接口路径:/pinter/com/userInfo3.请求类型:post4.数据类型:json5.请求参数:{ "phoneN 阅读全文
posted @ 2023-06-27 10:49 常疯大虾 阅读(217) 评论(0) 推荐(0)
摘要: Jmeter测试tcp接口 一.tcp接口结构 Tcp接口:只有ip和port 传参数据类型根据开发定义的类型 需要添加一个ascii码的十进制字节结束符,tcp才会关闭 二.Tcp接口环境搭建 在testfan-tcp-server.jar目录下,启动cmd命令行,输入:java -jar tes 阅读全文
posted @ 2023-06-27 10:48 常疯大虾 阅读(745) 评论(0) 推荐(0)
摘要: Jmeter测试dubbo接口 一.dubbo插件准备 1.把jmeter-plugins-dubbo-2.7.4.1-jar-with-dependencies.jar包放在D:\apache-jmeter-5.5\lib\ext目录 2.重新打开jmeter客户端 在线程组-添加-取样器-dub 阅读全文
posted @ 2023-06-27 10:47 常疯大虾 阅读(731) 评论(0) 推荐(0)
摘要: Jmeter测试websocket接口一.Websocket接口原理1.打开网页:从http协议,升级到websocket协议,请求简历websocket连接2.服务器返回建立成功成功3.客户端向服务端发送匹配请求4.服务端选择一个客服上线5.服务器返回客服id6.客户端向服务器发送消息7.服务器推 阅读全文
posted @ 2023-06-27 10:46 常疯大虾 阅读(1325) 评论(0) 推荐(0)
摘要: Jmeter测试基于soap协议的websevice接口一.Webservice接口结构二.Jmeter测试webservice接口方法1.输入请求参数2.添加http 信息头,定义客户端接受得数据类型3.调试脚本 阅读全文
posted @ 2023-06-27 10:44 常疯大虾 阅读(100) 评论(0) 推荐(0)
摘要: 寻找tps性能拐点 一、准备脚本 1.在本地电脑调试jmeter压测脚本 2.上传到压测机jmeter所在的服务器 二、执行压力测试 1.执行压测脚本 jmeter –n –t xianchengzuse.jmx 2.记录业务压测数据 三、监控服务器性能指标 1.监控CPU top命令 2.监控内存 阅读全文
posted @ 2023-06-27 10:41 常疯大虾 阅读(204) 评论(0) 推荐(0)
摘要: 性能脚本error报错问题排查一、脚本运行过程中报错1.在windows系统jmeter中,给测试脚本添加查看结果树,添加保存错误日志信息第一步,给文件取名error.xml第二步,仅错误日志第三步,点击配置,全部勾选2.把linux系统中保存的error日志文件,导入到windows系统jmete 阅读全文
posted @ 2023-06-27 10:39 常疯大虾 阅读(97) 评论(2) 推荐(0)
摘要: 非GUI模式执行jemter压测 一、上传脚本 把在windows下调试好的脚本上传的Linux系统/home目录下。注意:只留测试脚本,屏蔽其他监控组件,比如:查看结果树、聚合报告、监听器等 二、执行脚本 1.输入命令执行脚本:jmeter -n -t case.jmx -l case.jtl - 阅读全文
posted @ 2023-06-27 10:35 常疯大虾 阅读(217) 评论(0) 推荐(1)
摘要: Jmeter分布式压测 一、环境准备 1.克隆虚拟机 2.在所有linux系统/etc/hosts文件中增本机的ip和主机名 Vi /etc/hosts 添加ip地址和主机名 3.检查每台压力机是否都有安装,jdk和jmeter 4.把执行的脚本文件,上传到主压力机的/home目录下,参数文件放在每 阅读全文
posted @ 2023-06-27 10:33 常疯大虾 阅读(173) 评论(0) 推荐(0)
摘要: jmeter中使用jdbc插件写sql构造测试数据 一.创建jdbc连接配置 1.项目的数据库配置文件中查看连接配置 2.配置元件-jdbc connection configuration 填写配置信息 二.创建goods数据 1.添加goods_id计数器 起始值:查看数据库 2.添加jdbc 阅读全文
posted @ 2023-06-27 10:30 常疯大虾 阅读(366) 评论(0) 推荐(0)
摘要: 通过接口构造测试数据 一.使用计数器 1.添加和设置计数器 点击配置元件-计数器 Starting value:起始值 递增:1 Maximum value:最大值 引用名称:c_user_id 2.计数器变量引用 ${c_user_id} 线程数:10 循环:1000 二.上传至jmeter服务器 阅读全文
posted @ 2023-06-27 10:17 常疯大虾 阅读(41) 评论(0) 推荐(0)
摘要: tomcat查看日志 一、增加统计时间(tomcat——>数据库) 1.进入到项目的tomcat的server.xml目录 cd /usr/src/tomcat-oa/conf 2.编辑server.xml 在末尾pattern添加 %T 3.杀死项目tomcat进程,重启项目 Kill -9 pi 阅读全文
posted @ 2023-06-27 10:15 常疯大虾 阅读(2654) 评论(0) 推荐(0)
摘要: tomcat部署多项目 在实际工作过程中,由于公司资源限制,可能存在多个项目部署在一台服务器上 一、tomcat环境部署 1.复制一个tomcat容器 复制:cp -r apache-tomcat-8.5.38 tomcat-oa 改名:mv apache-tomcat-8.5.38 tomcat- 阅读全文
posted @ 2023-06-27 10:14 常疯大虾 阅读(442) 评论(0) 推荐(0)
摘要: tomcat部署单项目 一、上传tomcat压缩包和项目jar包 1.上传tomcat到任意目录 比如:/usr/src 解压tomcat压缩包 2.上传项目包到任意目录 比如:/usr/src 二、部署项目到tomcat上 1.先将项目包放到 tomcat 的 webapps 目录下,并且解压 2 阅读全文
posted @ 2023-06-27 10:13 常疯大虾 阅读(72) 评论(0) 推荐(0)
摘要: 查看nginx日志 一、查看nginx访问日志 1.查看nginx中项目日志存放路径 cd /etc/nginx/conf.d cat oa.conf 2.在项目nginx中,查看访问日志 cd /var/log/nginx tail -f oa.access.log 二、增加统计时间 此处统计的是 阅读全文
posted @ 2023-06-27 09:54 常疯大虾 阅读(5934) 评论(0) 推荐(0)
摘要: nginx部署静态项目 一、安装nginx 1.安装nginx官方源 centos默认没有nginx官方安装源 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarc 阅读全文
posted @ 2023-06-27 09:52 常疯大虾 阅读(154) 评论(0) 推荐(0)