问题描述:在编写系统程序中,出现bug导致系统CPU负载或者跑满了。导致客户端ssh无法链接上来。
解决办法:优化出问题的程序,设定CPU阔值,超过重启。
监控与重启:
创建监控脚本
1.创建脚本文件: 在根目录下创建一个新的脚本文件,例如 cpu_monitor.sh。
1 | sudo nano /cpu_monitor.sh |
2.编写以下脚本内容,THRESHOLD=90
中90
代表CPU阔值上限为90%,超过就要重启。
1 | #!/bin/bash |
3,保存退出后,执行授予权限:
1 | sudo chmod +x /cpu_monitor.sh |
1 | sudo crontab -e |
添加cron代码内容,每分钟检测一次:
1 | * * * * * /cpu_monitor.sh |
测试
安装 stress-ng
1 | sudo yum install epel-release |
查看服务器为几线程:
1 | nproc |
使用 stress-ng 设置 CPU 负载,如下第一个2
代表两个线程,96
代表是CPU负载接近96%,20s
是定时器时长。
1 | stress-ng --cpu 2 --cpu-load 96 --timeout 20s |
等待一段时间 服务器重启就是成功了。