摘要: Jvm垃圾回收机制一、垃圾回收对象根搜索算法:判断对象存活还是非存活的算法根对象:栈内存中直接引用的对象二、垃圾回收算法1.标记-清除算法特点:标记完成后,统一回收缺点:会产生大量不连续的内存碎片2.标记-压缩算法特点:标记后将存活对象移动到一起,清除以外的内存老年代使用此算法3.复制算法 特点:将 阅读全文
posted @ 2023-06-27 17:10 常疯大虾 阅读(13) 评论(0) 推荐(0) 编辑
摘要: JVM内存溢出原理一.堆内存溢出 1.原因堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值2.报错报错类型:OutOfMemory:Java heap space 3.解决程序出差,代码问题,优化代码二.永久代溢出 1.原因类的一些信息,如类名、访问修饰符、字段描述、方 阅读全文
posted @ 2023-06-27 17:09 常疯大虾 阅读(43) 评论(0) 推荐(0) 编辑
摘要: JVM内存结构分析1.JVM内存定义Jvm是Java虚拟机,是提供Java代码运行的虚拟环境,每一个java程序运行时,都有自己的一个jvm2.JVM组成JVM有3大核心区域:栈内存:线程私有,主要用于存放基本数据类型和对象的引用(变量)。通过-Xss文件配置参数堆内存:线程共享,主要用于存放数组和 阅读全文
posted @ 2023-06-27 17:08 常疯大虾 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 数据库连接池问题定位与分析 一.环境准备 1.编写脚本 2.执行压测 3.打印快照 二.问题定位 1.在快照中,搜索是否存在BLOCKED 或者 TIMED_WAITING字段 2.查看TIMED_WAITING日志中是否存在,跟自身业务相关的日志信息 3.检查是否存在getconnection的关 阅读全文
posted @ 2023-06-27 17:05 常疯大虾 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 联合索引问题定位与分析一.配置联合索引二.联合索引生效规则最左侧生效原则1.不生效情况Age在联合索引的第左侧,where字句中,没有用到age所以联合索引不生效2.部分生效情况Email在联合索引的最左侧,slq语句中有email字段,email生效3.联合索引都生效Sql语句中where字段与联 阅读全文
posted @ 2023-06-27 17:01 常疯大虾 阅读(16) 评论(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 常疯大虾 阅读(19) 评论(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 常疯大虾 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 代码优化1.使用对象池减少对重复对象的创建,比如tcp链接、数据库链接、多线程2.调整连接数,连接池、数据库链接数、tomcat、nginx连接数3.利用缓存技术增加缓存、本地缓存(tomcat内存之中,不走网络)、redis缓存4.串行改并行,即单线程改多线程5.同步改异步,使用场景:本次调用接口 阅读全文
posted @ 2023-06-27 16:56 常疯大虾 阅读(24) 评论(0) 推荐(0) 编辑
摘要: Sql语句优化1.在where及order by后的字段,添加索引。避免全表扫描。一般不要超4个2.避免索引失效:避免where字句中对字段进行null值判断,避免where字句中对字段进行函数或者表达式的操作避免where字句中对字段进行左右模糊查询3.查询语句避免*,减少内存使用4.用union 阅读全文
posted @ 2023-06-27 16:56 常疯大虾 阅读(19) 评论(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 常疯大虾 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 性能瓶颈定位思路整体思路:从前到后,从表象到内部1.首先排查压力机自身的问题,如CPU、内存、网络、脚本2.监控中间件的访问日志,观察相应时间耗时,出现在哪一个环节。Tomcat、nginx、apache、mysql3.排查网络问题,监控压力机到后端服务器的网络是否出现瓶颈4.监控服务端的所有机器( 阅读全文
posted @ 2023-06-27 16:54 常疯大虾 阅读(59) 评论(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 常疯大虾 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 搭建skywalking监控平台一.平台建构二.环境搭建注意核对系统时间是否正确Datentpdate pool.ntp.org1.在任意目录新建一个docker-compose的目录cd /homemkdir docker-compose2.在docker-compose的目录下,新建一个dock 阅读全文
posted @ 2023-06-27 16:33 常疯大虾 阅读(132) 评论(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 常疯大虾 阅读(38) 评论(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 常疯大虾 阅读(158) 评论(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 常疯大虾 阅读(93) 评论(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 常疯大虾 阅读(642) 评论(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 常疯大虾 阅读(77) 评论(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 常疯大虾 阅读(74) 评论(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 常疯大虾 阅读(129) 评论(0) 推荐(0) 编辑