当前位置:网站首页>线上突然查询变慢怎么核查
线上突然查询变慢怎么核查
2022-08-10 23:47:00 【闲猫】
目录
系统架构
- 网络
- 对中间件的竞争
- 后端服务本身慢
- 竞争DB本身
- DB查询慢
网络层面
网络丢包,重传
如果涉及双数据中心,或者多中心办公场景,就会有这种情况。
可以长时间ping测试丢包情况。
网卡满 比如大字段
使用dstat命令测试网络拥堵情况
网络链路变长
涉及系统集成,涉及老系统,如果调用链路长会导致此类问题。
如果有cat这类分布式链路追踪系统,可以看,否则不怎么好搞
受到IO影响
如果数据库服务 可能有备份服务导致的磁盘IO,CPU,内存被大量占用,导致查询变慢。本质是其他服务占用了“主服务”资源导致。
后端服务如果大批量写文件会导致磁盘IO抢占,导致操作慢
核查:
- 使用top检查CPU,内存占用的进程
- 如果是后端服务,查询线程占用内存情况,top -Hp PID
- 用linux dstat验证IO读写情况
CPU/MEM
CPU和内存 一般都是其他服务被占用导致
服务
资源抢占
比如redis锁,DB连接 等。这类如果并发高就会导致大量线程处于等待状况。
检查:
- jstack 输出java栈
- jmap dump快照,使用jvisualvm,jprofiler,mat等工具分析
FullGc
频繁FullGC会造成服务卡顿,CPU占有率升高
检查:
- 用jstat -gcutil pid 查看gc数量和时间
- 使用dump文件分析 可能的内存泄露
数据库
没有走索引
随着数据库变多,如果正好某个查询条件没有走索引,查询会比较慢。
检查:
- 查看慢sql
- 查看执行计划explain
并行更新同一条数据
常见的秒杀场景:数据库并发执行update,更新同一行的动作会被其他已经持有锁的会话堵住,并且需要要进行判断会不会由于自己的加入导致死锁
数据分布不均
a=11,10条数据
a=21,10W数据,查询自然不同
查询不合适
select *** from tt limit 10000000,10;
这类需要先找到10000000条,然后往后找10条
调整为:
select * from tt where id >= 10 limit 10;
表设计有问题
varchar(2000) text
调整:
- 纵向拆分,将varchar 2000 这种字段拆分到另一个表
innodb 刷脏页
InnoDB引擎采用Write Ahead Log(WAL)策略,即事务提交时,先写日志(redo log),再写磁盘。为了提高IO效率,在写日志的时候会先写buffer,然后集中flush buffer pool 到磁盘。 这个过程 我们称之为刷脏页。
这个过程中就有可能导致平时执行很快的SQL突然变慢。
边栏推荐
- Activiti7子流程之Call activity
- call,apply,bind指定函数的this指向详解,功能细节,严格和非严格模式下设定this指向
- 后疫情时代,VR全景营销这样玩更加有趣!
- Web-based meal ordering system in epidemic quarantine area
- Design and Realization of Employment Management System in Colleges and Universities
- Promise in detail
- How to determine how many bases a number is?
- HGAME 2022 Final Pokemon v2 writeup
- 图像识别和语义分割的区别
- IEEE的论文哪里可以下载?
猜你喜欢
VR全景+安全科普教育,让学生们提高安全意识
SQL injection base
IEEE的论文哪里可以下载?
Excel English automatic translation into Chinese tutorial
7. yaml
【C语言篇】表达式求值(隐式类型转换,算术转换)
李彦宏拆墙交朋友,大厂“塑料友情”能否帮百度啃下硬骨头?
[C language articles] Expression evaluation (implicit type conversion, arithmetic conversion)
高校就业管理系统设计与实现
Web-based meal ordering system in epidemic quarantine area
随机推荐
14. Thymeleaf
iNFTnews | In the Web3 era, users will have data autonomy
sqlmap combined with dnslog fast injection
10. Notes on receiving parameters
英文文献阅读时,如何做笔记?
深度学习 Transformer架构解析
Kubernetes你不知道的事
LENS CRA和SENSOR CRA匹配问题解析
【C语言篇】操作符之 位运算符详解(“ << ”,“ >> ”,“ & ”,“ | ”,“ ^ ”,“ ~ ”)
App regression testing, what are the efficient testing methods?
【C语言篇】表达式求值(隐式类型转换,算术转换)
web 性能提升(将持续更新……)
Web-based meal ordering system in epidemic quarantine area
电脑桌面删除的文件回收站没有,电脑上桌面删除文件在回收站找不到怎么办
[C language articles] Expression evaluation (implicit type conversion, arithmetic conversion)
C语言篇,操作符之 移位运算符(>>、<<)详解
基于SSM实现手机销售商城系统
【C语言】数据储存详解
Special class and type conversion
15. 拦截器-HandlerInterceptor