Linux:手动构建模拟内核故障

Linux:手动构建模拟内核故障

在root权限中执行以下命令即可:

echo 1 > /proc/sys/kernel/sysrq;echo c > /proc/sysrq-trigger

如果是VMWare,将出现:

Linux:手动构建模拟内核故障_第1张图片
点击“确定”后通常会自动重启虚拟机。

更快更方便的模拟内核故障,可以自己在VMWare中创建虚拟机然后构建。(不需要跑机房)


命令说明:

1.echo 1 > /proc/sys/kernel/sysrq

是为了开启内核的SysRq功能。

SysRq = Magic System Request Key。

2.echo c > /proc/sysrq-trigger

echo c > /proc/sysrq-trigger 是模拟输入 c 这个键触发SysRq功能。

echo c > /proc/sysrq-trigger 支持很多不同的键,其中 c 参数指代故意让系统崩溃:

Crashes the system without first unmounting file systems or syncing disks attached to the system.


为什么要模拟内核故障?

做后台软件的时候需要考虑内核故障时业务流量中断的问题。

模拟内核故障,或者掉电等,可以观察到在这些异常情况下后台软件对上层业务“通信”质量的保证情况。

PS:

内核故障或掉电时,和手动宕停系统差异很大:

手动宕停操作系统,对于操作系统来说是“有序的”,操作系统可以“优雅地”关闭,做一些各级别(内核服务级、用户软件级等)各类的反注册操作。

内核故障或者掉电,对于操作系统来说是“无序的”,是突然的,操作系统不能“优雅地”关闭,此时,无法做反注册类的操作。

在网络通信时差异尤其明显。

好的后台软件,在其宿主机和目的主机通信出现异常(例如目的主机内核故障或掉电)时,也应当尽可能为上层业务保证更高的平台级通信质量,更低的通信故障时间,减少业务异常损失。

你可能感兴趣的:(NETWORK,LINUX)