zoukankan      html  css  js  c++  java
  • 状态变化类故障注入测试指南

     

    1.1.  故障场景

    状态变化类故障包括机器重启、掉电、意外关机、kernel panic、应用意外停止、进程被杀,进程hang死,时间漂移等。

    1.2.  演练目标

    是否能监控发现

    应用是否支持故障自动恢复&资源转移,是否有对应的预案

    故障恢复的时长

    1.3.  模拟手段

    1.3.1.  机器重启

    直接在shell中执行reboot

    reboot

    1.3.2.  机器掉电

    拔掉机器电源(VMware虚拟机在控制终端执行关机操作,ESXI虚拟机在控制终端执行关闭电源操作)

    1.3.3.  机器关机

    直接在shell中执行init 0

    init0

    1.3.4.  kernel panic

    kernel panic用于模拟系统崩溃,在shell中执行如下命令

    echo c > /proc/sysrq-trigger

    其他用法

    # 立即重新启动计算机

    echo "b" > /proc/sysrq-trigger

    # 立即关闭计算机

    echo "o" > /proc/sysrq-trigger

    # 导出内存分配的信息 (可以用/var/log/message 查看)

    echo "m" > /proc/sysrq-trigger

    # 导出当前CPU寄存器信息和标志位的信息

    echo "p" > /proc/sysrq-trigger

    # 导出线程状态信息

    echo "t" > /proc/sysrq-trigger

    # 故意让系统崩溃

    echo "c" > /proc/sysrq-trigger

    # 立即重新挂载所有的文件系统

    echo "s" > /proc/sysrq-trigger

    # 立即重新挂载所有的文件系统为只读

    echo "u" > /proc/sysrq-trigger

    1.3.5.  应用意外关闭

    Kingbase意外停止,bin目录下手动执行

    ./sys_ctl –D xxx/data stop

    1.3.6.  进程被杀死

    kill  pid:

    发送TERM(Terminate,终止)信号

    Kill -9  pid:

    该信号信号不会被发送到目标程序,而是通过内核立即终止这个进程。当一个进程以这种方式终止的时候,它没有机会去做些“清理”工作,或者是保存工作。

    killall processname:

    给匹配特定程序或用户名的多个进程发送信号

    推荐工具:

    blade create process kill --process  processname

    1.3.7.  进程hang住

    #注入

    kill -s SIGSTOP pid

    killall -s SIGSTOP processname

    #恢复

    kill -s SIGCONT pid

    killall -s SIGCONT processname

    推荐工具:

    blade create process stop --process processname

    1.3.8.  磁盘只读

    立即重新挂载所有的文件系统为只读

    echo "u" > /proc/sysrq-trigger

    1.3.9.  时间漂移

    date –s 修改系统时间

    date -s "2020-09-08 10:40:40"

  • 相关阅读:
    [LeetCode] 134. Gas Station Java
    [LeetCode] 22. Best Time to Buy and Sell Stock II Java
    [LeetCode] 55. Jump Game Java
    [LeetCode] 264. Ugly Number II Java
    [LeetCode] 331. Verify Preorder Serialization of a Binary Tree Java
    [LeetCode] 232. Implement Queue using Stacks Java
    java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory的解决办法
    Linux centos 连接网络
    MyEclipse默认编码为GBK,修改为UTF8的方法
    表单
  • 原文地址:https://www.cnblogs.com/mingfan/p/14295645.html
Copyright © 2011-2022 走看看