Linux 有啥工具可以监控程序的 cpu 使用率太高的时候自动 restart?

2019-01-04 17:40:53 +08:00
 yuyuyu

监控某个程序 cpu 占用很高并且持续一段时间后自动傻吊重启?

3448 次点击
所在节点    Linux
15 条回复
zou2699
2019-01-04 17:51:57 +08:00
ps aux 获取 cpu 占用率和 pid,一个小脚本就行了
owenliang
2019-01-04 18:01:53 +08:00
本质是 cpu 太高还是 cpu 温度太高?
sunnyadamm
2019-01-04 18:37:18 +08:00
写个脚本挂后台跑就行了
Lax
2019-01-04 21:36:15 +08:00
monit supervisor,入门级高可用部署标配
deweixu
2019-01-04 21:42:53 +08:00
crontab
top
reboot
loading
2019-01-04 21:45:34 +08:00
本来 99%,结果一个判断的 crontab 来了,100%,条件满足,重启。
congeec
2019-01-04 21:54:59 +08:00
@loading 每次启动 htop 某个 cpu 核心都会飙到 100%
metrxqin
2019-01-04 22:05:40 +08:00
不去探究 CPU 太高的原因,反倒想到这个怪招,真的相当佩服。
workwonder
2019-01-04 22:20:06 +08:00
@metrxqin 从运维角度很合理啊,总不能保证程序不出意外,但又不得不用。
cuixiao603
2019-01-04 22:20:48 +08:00
@metrxqin 感觉楼主操作很奇怪,看你说的明白奇怪在哪里了
so1n
2019-01-04 22:48:21 +08:00
写个脚本判断就可以啦,最好重启时记录下进城情况已经其他内存等,以后容易分析问题
est
2019-01-04 22:50:03 +08:00
没人说 cgroup ? 2333
openbsd
2019-01-05 00:46:14 +08:00
LS 各位大神怕是错误理解了 restart...... LZ 你需要 Docker
Flasky
2019-01-05 01:00:00 +08:00
楼主应该说的是程序 restart 吧?哪有系统频繁 restart 的
kernel
2019-01-05 11:35:03 +08:00
我的桌面 load 太高提示的小程序:

#!/usr/bin/env python
import subprocess
import re
import os
import sys
import datetime

uptime_output = subprocess.check_output(['uptime']).decode()
loads = tuple(map(float, re.search(r'load average: ([.\d]+), ([.\d]+), ([.\d]+)', uptime_output).groups()))
print('system load:', loads)
throttle = float(sys.argv[1])
if all(load > throttle for load in loads):
os.system('notify-send -i emblem-system "Load Alert" "[{}] {}"'.format(
datetime.datetime.now().strftime('%H:%M:%S'), loads))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX