Ubuntu 17.10持续100% CPU占用问题求助
解决Ubuntu 17.10 CPU持续100%占用的问题
我来帮你一步步排查和解决这个CPU满负载的问题,结合你的硬件配置和提到的几个进程,咱们从精准定位到针对性修复一步步来:
第一步:先精准锁定真正的CPU元凶
有时候直观看到的进程可能只是表象,先通过命令确认细节:
- 打开终端,运行
htop(如果没装,先执行sudo apt install htop),按P键按CPU占用率排序,就能看到持续占比最高的进程,注意观察它的PID和是否有子进程在疯狂消耗资源 - 也可以用
ps aux --sort=-%cpu来生成按CPU降序排列的进程列表,方便快速定位
针对systemd-journald的排查与修复
systemd-journald负责系统日志管理,CPU飙高大多是因为它在疯狂写入重复的错误日志:
- 先看看日志占用的磁盘空间:
journalctl --disk-usage - 实时监控日志流:
journalctl -f,如果看到大量重复报错(比如某个服务循环崩溃),那就是问题根源,先处理那个报错的服务 - 临时缓解日志压力:可以清空旧日志(注意会丢失历史记录),执行
sudo journalctl --vacuum-size=100M;要是想永久限制日志大小,编辑/etc/systemd/journald.conf,把SystemMaxUse=500M和RuntimeMaxUse=200M这两行的注释去掉并设置合适数值,然后重启服务:sudo systemctl restart systemd-journald
处理异常的gdb进程
gdb是调试工具,正常情况下不会持续占用高CPU,大概率是某个程序被错误调试或者gdb自身异常:
- 先查gdb关联的进程:
ps aux | grep gdb,看看它在调试哪个程序 - 如果是意外启动的gdb,直接终止进程:
sudo kill -9 <gdb的PID>(把<>里的内容换成实际的PID) - 如果是某个服务自带的调试进程,检查对应服务的配置,看是不是误开了调试模式导致gdb一直运行
修复rsyslogd高CPU问题
rsyslogd是传统日志服务,可能和systemd-journald存在冲突,或者自身配置有问题:
- 检查配置文件:看看
/etc/rsyslog.conf和/etc/rsyslog.d/下的文件,有没有重复的日志转发规则或者错误的配置项 - 先重启服务试试:
sudo systemctl restart rsyslog,观察CPU是否下降 - 如果不需要rsyslog(毕竟journald已经能管理日志),可以直接禁用它:
sudo systemctl stop rsyslog && sudo systemctl disable rsyslog
针对你的硬件配置的系统优化
你的设备是双核Pentium + 3.8G内存,Gnome 3.26对资源的要求不算低,做这些优化能明显改善流畅度:
- 切换到轻量桌面环境,比如Xfce或者MATE,安装命令:
sudo apt install xfce4,登录时选择Xfce会话即可 - 关闭Gnome的不必要特效:打开「设置」→「外观」→「行为」,关掉「动画」和「透明效果」
- 禁用不必要的开机自启程序:安装「优化」工具(
sudo apt install gnome-tweak-tool),在「启动应用」里关闭不需要的自启项 - 增加swap空间缓解内存压力:
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 让swap永久生效,编辑/etc/fstab,添加一行:/swapfile none swap sw 0 0
补充:冻结时的安全重启
你已经在用REISUB组合键了,再确认下操作:按住Alt+SysRq(也就是Print Screen键),然后依次按R-E-I-S-U-B,每个按键间隔2秒,这样能安全重启系统,避免文件损坏。
内容的提问来源于stack exchange,提问作者Mokuyobi
相关产品推荐
相关产品推荐

