背景:
某项目使用oracle 19c+AIX系统,底层存储是磁阵,数据库主机(光模块)通过光纤交换机(光模块)连接磁阵(光模块)。性能压测过程中发现业务断流的情形,且根据测试人员反馈,写和读都有此问题,且不止一个业务有此问题(可以排除业务设计问题),具体看下图:
根据缅甸性能测试断流的经验,可以从IO和网络方面入手排查(数据库归档开启)。
某项目性能测试问题排查_Joyce.Du的博客-CSDN博客
1、长ping排查网络是否有瞬时延迟
数据库主机和业务主机互ping,发现断流时间点的ping并无延迟,且延迟基本在0.2ms以内,暂时排除网络问题
2、IO问题排查
(1)检查redo切换的时间点是否与断流时间一致
检查redo切换的时间点:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
set lines 400 pages 999 long 999
SELECT b.SEQUENCE#,b.FIRST_TIME,a.SEQUENCE#,a.FIRST_TIME,round(((a.FIRST_TIME-b.FIRST_TIME)* 24)* 60,2) FROM v$log_history a,v$log_history b WHERE a.SEQUENCE#= b.SEQUENCE#+ 1 AND b.THREAD#= 1 ORDER BY a.SEQUENCE# ;
发现与测试人员描述的4:57分后每5分钟断流一次能对上,从而确认是IO问题
(2)性能压测过程中监控nmon IO是否100%
性能压测过程中nmon监控IO,发现hdisk33和hdisk17两块盘会偶尔有100%的情况,且当时的吞吐量并不大
且IO busy 100%的时间点与业务断流的时间点差不多吻合,而IO吞吐量并不高,且此两块盘正好是redo和arch盘,怀疑是磁阵链路问题
(3)检查系统日志
errpt -aj
发现fscsi3有link error和disk operation error的报错,从而怀疑是fscsi3这条磁阵链路问题
3、检查交换机链路
(1)数据库主机列出所有链路
lsdev -Cc driver | grep fscsi
(2)数据库主机检查fsc3状态
fcstat fcs3
(3)光交上检查链路口是否online
fabriclog -s
发现6口是P0(the port is offline),但是switchshow是正常的
(4)尝试禁掉offline光交的6口,再次测试
禁掉之后再测压测,不再出现io 100%持续几秒的情形,最高达到80%左右,且业务端反馈不再有断流
(5)检查6口的状态
sfpshow 6
发现光衰异常,发光为0,光交跟磁阵连接的端口发光异常,导致多路径轮询到这条链路的时候失败卡住,影响了IO。先将此口disable,后续建议现场换ocssansw2的第6口到flash900磁阵的光纤线,不行的话需要换掉光模块。