本技术涉及计算设备,尤其涉及一种操作系统死锁复位的测试方法及计算设备。
背景技术:
1、操作系统死锁是指多个进程或线程互相等待对方持有的资源,导致它们都无法继续执行的一种情况。操作系统出现死锁异常后,能否自动执行正常的复位流程,是检测操作系统容错性一个重要标准。业界标准一般是至少连续万次复位成功。
2、相关技术在每次测试操作系统死锁复位的过程中,控制设备(又称为控制机)向计算设备(又称为执行机)发送死锁指令,以使计算设备触发死锁以及复位,控制设备在向计算设备发送死锁指令后,轮询确认计算设备是否复位成功,并在确定复位成功时,向计算设备发送测试命令,以获知计算设备的操作系统复位信息是否满足预设条件,从而确定本次测试是否操作系统死锁复位成功。
3、但是,相关技术中的方法,一方面,控制设备和计算设备之间的网络环境的波动会影响测试结果,导致测试结果准确率低;另一方面,需要控制设备管控计算设备,导致资源占用多;又一方面,控制设备需要不断轮询确认计算设备是否复位成功、发送测试命令以及发送死锁指令,只能通过同步阻塞的方式执行测试过程,导致测试效率低。也就是说,相关技术中的方法,存在测试结果准确率低、占用资源多以及测试效率低的技术问题。
技术实现思路
1、本技术实施例提供一种操作系统死锁复位的测试方法及计算设备。提高了操作系统死锁复位测试结果的准确率、避免占用额外的资源,并能够提高测试效率。
2、第一方面,本技术实施例提供一种操作系统死锁复位的测试方法,方法包括:
3、触发操作系统死锁;
4、在操作系统启动的systemd初始化阶段,获取操作系统日志中记录的操作系统复位信息;
5、确定操作系统复位信息是否满足预设条件;
6、在操作系统复位信息满足预设条件的情况下,更新复位次数;
7、确定更新后的复位次数是否达到预设复位次数;
8、在更新后的复位次数达到预设复位次数的情况下,确定操作系统通过死锁复位测试。
9、本实施例的有益效果:在触发操作系统死锁后,可以在操作系统启动的systemd初始化阶段,开启一次新的测试过程——获取操作系统日志中记录的操作系统复位信息,确定操作系统复位信息是否满足预设条件,在操作系统复位信息满足预设条件的情况下,更新复位次数,确定更新后的复位次数是否达到预设复位次数,在更新后的复位次数达到预设复位次数的情况下,确定操作系统通过死锁复位测试。本技术实施例的方法,无需额外的控制设备,可以在操作系统死锁复位后,自动继续进行测试过程,保证了测试不中断,实现了单机测试场景下连续自动化测试操作系统死锁复位。提高了测试结果的准确率,避免了占用额外的资源,提高了测试效率。
10、在一种实现方式中,操作系统复位信息包括死锁类型;在操作系统复位信息满足预设条件的情况下,更新复位次数,包括:
11、在死锁类型为目标死锁类型的情况下,更新复位次数;其中,死锁类型为硬锁定类型或者软锁定类型,目标死锁类型为硬锁定类型或者软锁定类型。
12、本实现方式的有益效果:在每次测试过程中,从两个方面对操作系统的死锁自愈能力进行衡量,分别为操作系统在死锁后是否能自动复位,以及操作系统是否能准确识别到死锁类型。在操作系统自动复位后,可以确定系统日志中记录的死锁类型是否为目标死锁类型,以确定操作系统是否能准确识别到死锁类型。在确定死锁类型为目标死锁类型的情况下,确定本次测试过程中,操作系统死锁复位成功,因此,可以更新复位次数。
13、在一种实现方式中,方法还包括:
14、在死锁类型不为目标死锁类型时,确定操作系统未通过当次死锁复位测试。
15、本实现方式的有益效果:在操作系统自动复位后,在确定死锁类型不为目标死锁类型的情况下,可以确定操作系统未通过当次死锁复位测试。
16、在一种实现方式中,方法还包括:
17、在更新后的复位次数未达到预设复位次数的情况下,触发操作系统死锁。
18、本实现方式的有益效果:在更新后的复位次数未达到预设复位次数的情况下,确定需要继续对操作系统进行测试,可以触发操作系统死锁,以开启下一次测试操作系统死锁复位的过程。
19、在一种实现方式中,复位次数存储于持久化设备中。
20、本实现方式的有益效果:复位次数可以存储于持久化设备(掉电不丢失数据)中,以实现复位次数的持久化,从而在下次执行测试时能继续正确对复位次数进行计数。
21、在一种实现方式中,触发操作系统死锁,包括:
22、在目标死锁类型为硬锁定类型的情况下,生成硬锁定类型的死锁条件,并触发操作系统硬锁定;或者,
23、在目标死锁类型为软锁定类型的情况下,生成软锁定类型的死锁条件,并触发操作系统软锁定。
24、本实现方式的有益效果:在目标死锁类型为硬锁定类型的情况下,可以通过生成硬锁定类型的死锁条件的方式,触发操作系统硬锁定。在目标死锁类型为软锁定类型的情况下,可以通过生成软锁定类型的死锁条件,触发操作系统软锁定。通过上述方式,可以帮助开发或测试人员主动触发操作系统死锁,而不必被动等待操作系统偶现死锁问题,提高了测试效率。
25、在一种实现方式中,方法还包括:
26、在操作系统复位信息不满足预设条件的情况下,确定操作系统未通过当次死锁复位测试。
27、本实现方式的有益效果:在操作系统复位信息不满足预设条件的情况下,可以直接确定操作系统未通过当次死锁复位测试,以实现了测试结果的快速获取,提高了测试效率。
28、在一种实现方式中,在触发操作系统死锁之前,方法还包括:
29、接收控制设备发送的测试软件包;测试软件包用于触发操作系统执行死锁复位的测试。
30、本实现方式的有益效果:在计算设备和控制设备通信连接的集群测试场景下,可以接收控制设备发送的测试软件包。其中,该测试软件包用于触发操作系统执行死锁复位的测试。相较于相关技术中,控制设备需要通过同步阻塞的方式,向计算设备发送死锁指令、确认指令以及测试命令,导致相关技术中的测试方法存在测试结果准确率低、占用资源多以及测试效率低的问题而言,本技术中,控制设备只需要向计算设备发送测试软件包,不参与计算设备测试操作系统死锁复位的过程,可以处理其他事务,提高了资源利用率,降低了测试耗时,简化了测试流程,节省了网络带宽,提高了测试效率。
31、在一种实现方式中,在确定操作系统通过死锁复位测试之后,方法还包括:
32、向控制设备发送反馈指令;反馈指令用于指示操作系统通过死锁复位测试。
33、本实现方式的有益效果:在计算设备和控制设备通信连接的集群测试场景下,控制设备在向计算设备发送测试软件包后,无需参与计算设备测试操作系统死锁复位的过程,可以直接等待计算设备发送的反馈指令,反馈指令用于指示操作系统通过死锁复位测试。相较于相关技术中,控制设备需要通过同步阻塞的方式,向计算设备发送死锁指令、确认指令以及测试命令,导致相关技术中的测试方法存在测试结果准确率低、占用资源多以及测试效率低的问题而言,本技术中,计算设备和控制设备之间的交互为异步非阻塞,且控制设备不参与计算设备测试操作系统死锁复位的过程,可以处理其他事务,后续直接基于计算设备发送的指示操作系统通过死锁复位测试的反馈指令,即可确定操作系统通过死锁复位测试。提高了资源利用率,降低了测试耗时,简化了测试流程,节省了网络带宽,提高了测试效率。
34、第二方面,本技术实施例提供一种操作系统死锁复位的测试装置,包括:
35、死锁触发模块,用于触发操作系统死锁;
36、死锁复位服务模块,用于在操作系统启动的systemd初始化阶段,调用测试脚本模块;
37、测试脚本模块,用于获取操作系统日志中记录的操作系统复位信息;
38、测试脚本模块,还用于确定操作系统复位信息是否满足预设条件;
39、测试脚本模块,还用于在操作系统复位信息满足预设条件的情况下,更新复位次数;
40、测试脚本模块,还用于确定更新后的复位次数是否达到预设复位次数;
41、测试脚本模块,还用于在更新后的复位次数达到预设复位次数的情况下,确定操作系统通过死锁复位测试。
42、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
43、在一种实现方式中,操作系统复位信息包括死锁类型;测试脚本模块,具体用于:
44、在死锁类型为目标死锁类型的情况下,更新复位次数;其中,死锁类型为硬锁定类型或者软锁定类型,目标死锁类型为硬锁定类型或者软锁定类型。
45、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
46、在一种实现方式中,测试脚本模块,还用于:
47、在死锁类型不为目标死锁类型时,确定操作系统未通过当次死锁复位测试。
48、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
49、在一种实现方式中,
50、测试脚本模块,还用于在更新后的复位次数未达到预设复位次数的情况下,调用死锁触发模块;
51、死锁触发模块,用于触发操作系统死锁。
52、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
53、在一种实现方式中,复位次数存储于持久化设备中。
54、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
55、在一种实现方式中,死锁触发模块,具体用于:
56、在目标死锁类型为硬锁定类型的情况下,生成硬锁定类型的死锁条件,并触发操作系统硬锁定;或者,
57、在目标死锁类型为软锁定类型的情况下,生成软锁定类型的死锁条件,并触发操作系统软锁定。
58、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
59、在一种实现方式中,
60、测试脚本模块,还用于在操作系统复位信息不满足预设条件的情况下,确定操作系统未通过当次死锁复位测试。
61、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
62、在一种实现方式中,还包括:
63、收发模块,用于接收控制设备发送的测试软件包;测试软件包用于触发操作系统执行死锁复位的测试。
64、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
65、在一种实现方式中,
66、收发模块,还用于向控制设备发送反馈指令;反馈指令用于指示操作系统通过死锁复位测试。
67、本实施例提供的操作系统死锁复位的测试装置,可以执行上述方法实施例所示的技术方案,其有益效果类似,此处不再赘述。
68、第三方面,本技术实施例提供一种计算设备,计算设备安装有进行死锁复位测试的操作系统;计算设备包括存储器和处理器;
69、存储器与处理器耦合;
70、存储器用于存储计算机指令;
71、处理器用于执行计算机指令,以使计算设备实现第一方面的操作系统死锁复位的测试方法。
72、本技术实施例提供的计算设备,可以执行上述方法实施例中的技术方案,其有益效果类似,此处不再进行赘述。
73、第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现第一方面的操作系统死锁复位的测试方法。
74、本技术实施例提供的计算机可读存储介质,可以执行上述方法实施例中的技术方案,其有益效果类似,此处不再进行赘述。
75、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时用于实现第一方面的操作系统死锁复位的测试方法。
76、本技术实施例提供的计算机程序产品,可以执行上述方法实施例中的技术方案,其有益效果类似,此处不再进行赘述。
1.一种操作系统死锁复位的测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的测试方法,其特征在于,所述操作系统复位信息包括死锁类型;所述在所述操作系统复位信息满足所述预设条件的情况下,更新复位次数,包括:
3.根据权利要求2所述的测试方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的测试方法,其特征在于,所述方法还包括:
5.根据权利要求1-4任一项所述的测试方法,其特征在于,
6.根据权利要求1-5任一项所述的测试方法,其特征在于,所述触发所述操作系统死锁,包括:
7.根据权利要求1-6任一项所述的测试方法,其特征在于,所述方法还包括:
8.根据权利要求1-7任一项所述的测试方法,其特征在于,在触发所述操作系统死锁之前,所述方法还包括:
9.根据权利要求8所述的测试方法,其特征在于,在确定所述操作系统通过死锁复位测试之后,所述方法还包括:
10.一种计算设备,其特征在于,所述计算设备安装有进行死锁复位测试的操作系统;所述计算设备包括存储器和处理器;
