侧边栏壁纸
博主头像
七哥的技术博客

You got a dream, you gotta to protect it!

  • 累计撰写 85 篇文章
  • 累计创建 76 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

ubuntu节点卡死问题分析

admin
2025-03-02 / 0 评论 / 0 点赞 / 13 阅读 / 0 字

最近几天,ubuntu 节点每天都出现 cpu 过载的情况,从监控上看是 apt-check 导致的

ubuntu 有两个 timer: apt-daily.timer 和 apt-daily-upgrade.timer,会不定时自动检查更新和下载

终端 ssh 登录 ubuntu 节点,手动运行 apt update,终端直接卡死了

搜索了下,有说删掉 /etc/apt/source.list.d 目录和 apt clean 后就正常了,但是操作 apt update 还是一样卡死

谷歌提示说,APT在执行时会产生锁,如果上次的update,或者软件安装等操作异常退出,可能会导致锁无法释放

手工删除以下的锁和定时任务

rm -rf /var/lib/apt/lists/lock
rm -rf /var/cache/apt/archives/lock
rm -rf /var/lib/dpkg/lock
rm -rf /var/lib/dpkg/lock-frontend

rm -rf /var/lib/apt/lists/*
rm -rf /var/lib/dpkg/lock*

rm -rf /etc/cron.daily/apt
rm -rf /etc/cron.daily/apt-compat

再执行清除

apt clean
apt autoclean

并通过下面这两个命令查看还有哪些服务,将这些服务全部禁用

systemctl list-unit-files | grep aptsystemctl list-unit-files | grep unattended

20250401085516

sudo systemctl disable --now apt-news.service 
sudo systemctl disable --now apt-daily.service
sudo systemctl disable --now apt-daily-upgrade.service
sudo systemctl disable --now apt-daily.timer
sudo systemctl disable --now apt-daily-upgrade.timer
sudo systemctl disable --now unattended-upgrades
sudo systemctl disable --now packagekit.service
sudo systemctl disable --now motd-news.service

sudo systemctl mask apt-news.service 
sudo systemctl mask apt-daily.service
sudo systemctl mask apt-daily-upgrade.service
sudo systemctl mask apt-daily.timer
sudo systemctl mask apt-daily-upgrade.timer
sudo systemctl mask unattended-upgrades
sudo systemctl mask packagekit.service
sudo systemctl mask motd-news.service

删除 packagekit 服务 sudo apt remove --purge packagekit

修改 /etc/apt/apt.conf.d/20auto-upgrades 文件内容为

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

/etc/default/motd-news 文件的 ENABLED=1 改为 ENABLED=0

彻底阻止 apt 自动更新

echo 'APT::Periodic::Enable "0";' | sudo tee /etc/apt/apt.conf.d/99disable-auto-update

配置后,系统将不会再自动执行 apt-get update,只有手动运行 sudo apt-get update 时才会检查更新

0

评论区