解决VPS间歇性CPU占用过高

解决

通过创建定时任务,触发docker stats 命令,可以解决长期占用CPU 100% 的问题,虽然没有从根源上去杜绝问题的再次发生,但是目前也只得如此。全部来自 ChatGPT 。目前运行了几天,效果非常好。而且不用担心定时任务给VPS带来的运行负担,资源负载可以忽略不计。微乎其微。

创建脚本

首先创建脚本 /usr/local/bin/docker-stats-ping.sh ,给脚本执行权限,放在 /usr/local/bin 是因为这是本地执行脚本的标准路径,不会被系统升级覆盖。

创建 systemd 服务

创建 systemd 服务docker-stats-ping.service ,一次性任务,不需要持续运行,这个服务被设计为可以被定时器定时触发执行。

创建 Timer 定时器

创建 Timer 定时器docker-stats-ping.timer , systemd 的定时器机制 systemd timer ,比 cron 更现代、支持秒级精度、日志记录和依赖管理。下面定时任务的效果是,系统启动 30 秒后第一次运行,每隔 10 秒运行一次,每次定时触发服务对象。

启用并启动定时器

强制 systemd 自身重新执行,重载 systemd 配置,确保新加的 .service.timer 被识别,立即启用并启动定时器。

检查是否成功

查看是否每 10 秒都在触发一次 docker stats 脚本。确认 docker stats 是否真的每次都在执行。

THE END