在Linux中,如果启用了图形界面,由于gnome内存回收机制存在bug(详情请参考链接:https://feaneron.com/2018/04/20/the-infamous-gnome-shell-memory-leak/),一段时间后gnome-shell会占用系统中大量的内存,如下所示:
ps auxwww |grep gnome-shell
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 22522 0.5 48.1 23940220 15854516 ? Sl 1月21 1388:02 /usr/bin/gnome-shell
root 26668 0.6 30.6 15092080 10099800 ? Sl 4月13 838:26 /usr/bin/gnome-shell
通过系统命令重启gdm服务后内存会被释放,问题可以暂时得到解决(注意:重启gdm服务就是重启图形界面,如果图形界面中有运行任何任务,请不要执行本文章中的操作,否则图形界面中运行的任何任务都会中断!!!)。
systemctl restart gdm.service
但是,这只是临时的解决方法,隔一段时间后问题会再次出现。如上面的blog链接所示,gnome的问题可能在3.28的版本中得到解决,如果需要长期用到gnome图形界面,建议尝试升级gnome的版本看问题是否得到完全解决。
如果不需要使用gnome图形界面服务,可以使用以下方法关闭:`
systemctl stop gdm.service
systemctl disable gdm.service
systemctl status gdm.service
systemctl set-default multi-user.target