linux排查jvm内存占用过高的步骤 (linux服务器内存占用过高)

有时候会遇到服务器内存占用过高的情况,这时候有必要进行内存使用情况排查,找到具体是哪些进程拖垮了系统内存。

一、查看系统内存使用情况

# free -h
或
# free -m
或
# free

linux查看占用内存高的线程,Linux内存占用率60%怎么解决

该项可查看系统总体内存使用情况。

二、查看内存占用TOP10

//查看内存占用Top10
# ps aux | head -1;ps aux | grep -v PID |sort -rn -k +4 | head -10
//查看内存占用Top20
# ps aux | head -1;ps aux | grep -v PID |sort -rn -k +4 | head -20

linux查看占用内存高的线程,Linux内存占用率60%怎么解决

该项可查看占用内存较大的进程,此处占用内存较大的为gnome-shell。

三、查看gnome-shell进程内存使用情况

//查看gnome-shell内存占用情况
# ps auxwww | grep gnome-shell

命令"ps auxwww | grep gnome-shell"的结果会显示与gnome-shell相关的进程信息。这些信息通常包括进程的PID(进程ID)、用户、CPU使用率、内存使用率、启动时间、控制终端(TTY)以及命令行等信息。

具体来说,每一列的含义如下:

  • USER:运行进程的用户。
  • PID:进程的唯一标识符。
  • %CPU:进程占用的CPU使用率。
  • %MEM:进程占用的内存使用率。
  • VSZ:进程使用的虚拟内存大小(以KB为单位)。
  • RSS:进程使用的物理内存大小(以KB为单位)。
  • TTY:进程的控制终端。如果进程没有控制终端,这一列通常是?。
  • STAT:进程的状态,如R(运行中)、S(休眠)等。
  • START:进程的启动时间。
  • TIME:进程使用的总CPU时间。
  • COMMAND:启动进程的命令或命令行。

四、临时解决gnome-shell内存占用过高

# systemctl restart gdm.service

五、永久关闭gnome-shell图形界面

# systemctl stop gdm.service
# systemctl disable gdm.service
# systemctl status gdm.service
# systemctl set-default multi-user.target
  • systemctl stop gdm.service

该命令用于停止gdm.service。执行此命令后,gnome显示管理器将不再运行,这通常意味着你将退出图形界面并可能进入命令行界面。但是,即使你停止了gdm.service,系统可能仍然有其他的显示管理器或服务在运行。

  • systemctl disable gdm.service

该命令用于在系统启动时禁用gdm.service。这意味着你手动启动系统并进入图形界面,gdm.service也不会自动启动。如果你想在系统启动时完全避免使用图形界面,这个命令会很有用。但是,这不会停止当前正在运行的gdm.service实例,你需要先使用systemctl stop命令来停止它。

  • systemctl status gdm.service

该命令用于查看gdm.service的当前状态。它会显示服务是否在运行、是否已启用(在系统启动时是否会自动启动)、服务的描述信息、服务的配置文件位置、服务的进程ID(如果正在运行)等等。

  • systemctl set-default multi-user.target

该命令用于设置系统的默认目标为multi-user.target。multi-user.target是一个多用户模式的目标,它不启动图形界面,通常用于服务器或需要最小化启动的系统。设置此目标后,即使你手动启动图形界面,系统重启后也会进入多用户模式,而不是图形界面。