# 服务器到数据库网络波动导致OA系统使用卡顿
# 问题描述
OA偶发出现使用卡顿,涉及多人大范围
# 前期排查
区域运维负责人已协助使用环境检测工具扫描并补充索引,但问题依旧
# 分析步骤
1. 检查oa系统管理员后台——系统维护——系统监控,确认jvm堆内存等数据正常,full gc时间没有增涨,活动数据库连接数正常等
2. 能够固定复现的情况下,手动导dump分析,这里因无法固定复现,需要通过先检查capability日志确认是否后端接口慢
找客户提供一个复现了问题的账号名,以及大致的出现时间(dengp)
这个账号在08:47:26 H-54线程的一个请求耗时61秒(这里找这个线程是由于,dump工具1分钟运行1次,在请求开始到返回期间,正好运行了1次dump工具)
3. 分析dump日志
dump日志显示这个堆栈卡在等待数据库返回响应(最好能找卡的时间长的,有多个连续的dump,且卡的堆栈在同一个地方来判断在这个堆栈卡了很久),大致猜测就是数据库执行sql耗时很了56秒还未返回(建议多找几个验证)
4. 排查数据库
确定是数据库慢后,导对应时间的awr报告分析
top sql执行耗时中可以看到,没有执行超过2秒的sql,总时长排名最低的是48秒,可以确定上述线程卡在数据库超过56秒的,不是sql执行慢导致,而可能是网络或其他因素导致oa没收到数据库返回
检查数据库服务器和oa服务器上均有安恒安全软件,同时资源管理器中,windows defender防火墙不停的扫描oa和数据库文件,oa服务器上 ping 数据库地址偶发也有丢包和高延迟
5. 其他
另外根据awr报告显示,建议增加sga配置至24G,可以进一步降低物理读消耗
创建人:wangyxyf
修改人:het