# 应用服务器磁盘io慢导致卡顿

# 问题描述

客户反馈升级后出现打开部分表单响应变慢问题,通过环境检查工具进行扫描,并根据检查结果调整修改效果不明显。

# 排查步骤

# 第一步:检查系统监控数据

登录OA系统管理员账号后台,系统维护,系统监控

检查jvm内存使用率(堆内存老年代 使用率、峰值)

gc时间,次数(根据运行天数判断,是否正常)

数据库连接池大小,峰值数;活动线程数

检查结果:正常

# 第二步:实时抓取慢请求dump分析

  1. 打开2个浏览器(或无痕模式)登录2个协同账号(包含一个系统管理员账号,一个复现问题的账号)
  2. 系统管理员账号,进入系统维护,系统监控,多次点击底部 Thread Dump 按钮,打开3~5个标签页
  3. 通过另一个账号实时复现问题(建议开启F12,抓取慢请求),同时依次刷新打开的 Thread Dump 标签页(注意在转圈过程刷新)
  4. 抓取完成后,根据F12抓的的慢请求接口,到ThreadDump页面搜索,找到对应的堆栈线程号,查看这几个dump页面中该线程执行阻塞的堆栈
  5. 根据堆栈看出,该线程执行都是卡在写io上,可能磁盘有性能问题

dump如下(H-67):

1725358990259.png

1725358999750.png

1725359008473.png

capability日志 1725359061946.png

# 第三步:检查磁盘性能

1、查看磁盘io性能

windows下可以通过资源管理器查看

linux下可通过iostat命令查看

一般机械硬盘io响应时间在15ms左右,磁盘队列应低于1

2、通过工具或命令实际测试磁盘读写性能

3、注意检查是否存在其他软件或进程大量占用io导致磁盘读写慢(备份、安全扫描等)

通过以上方法判断发现:磁盘吞吐量在几MB/s~十几MB/s时,其io响应时间在50ms以上,磁盘队列频繁超过1

磁盘io性能异常参考图

1725526194881.png

# 解决方法

建议更换固态硬盘

创建人:wangyxyf
修改人:wangyxyf、het