对于 Linux(Ubuntu、Debian 等),不同的桌面环境消耗不同数量的资源(RAM)。 Gnome 和 KDE 往往比 XFCE / LXDE / LXQT 等其他操作系统消耗更多 RAM:
https://unihost.com/help/how-to-choose-linux-desktop-environment-ram-usage/
我想知道如果我不通过桌面环境的 GUI 登录,而仅使用 ssh 与操作系统交互,这些桌面环境的 RAM 使用情况是否仍然会产生影响?
例如,我有一个 Debian Gnome 和一个 Debian XFCE。打开两台机器后,我只使用SSH与它们交互。在这种情况下,它们使用相同数量的 RAM 吗?
答案1
如果没有使用GUI会话,但系统仍然显示GUI用于登录,则只有该GUI登录部分会使用内存。管理此问题的进程大多处于等待状态,因此大多不执行任何操作。如果启用交换(需要考虑的是,如果唯一可用的磁盘是 SSD,则必须防止磨损,无论如何,这个答案与决定这一点无关),当更多内存时,不执行任何操作的部分进程将被交换出变得需要,从而进一步限制 GUI 的内存占用。
回答这个问题:使用 SSH 不会影响当前使用的 GUI 部分。比较是关于当前加载和运行的部分。在典型的 Debian 安装中,选择 Gnome 获取 GDM (Gnome Display Manager) 作为 GUI 登录提示,选择 XFCE 获取 LightDM (轻的显示管理器)用于 GUI 登录提示。我倾向于说 LightDM(以及 XFCE)将使用更少的内存。对于这两种情况,如果存在交换,则大部分内容(不是全部,也不是活动部分,例如显示时间)将被交换,但如果没有交换,所有内容都将保留在物理 RAM 中。
在没有交换的 Debian 12 amd64 VM 中进行测试,通过 SSH 访问,除了提供 SSH 服务和提供 GUI 登录提示或不提供任何其他操作外,用过的几次重新启动free -m
后在虚拟机上测量的内存:echo 3 > /proc/sys/vm/drop_caches
GDM:~ 494-506MB
LightDM:~ 324-331MB
两者都不是(仅控制台):~ 196-214MB
我确信可能会有变化,但总体而言,LightDM(因此意味着选择安装 XFCE)似乎比 GDM 使用更少的内存,因此选择安装 Gnome。
两者均已安装,然后按如下所述进行切换或禁用,然后重新启动。
现在您还可以使用 GDM 启动 XFCE 或使用 LightDM 启动 Gnome 来进一步模糊这一点,但我相信两者都可能会丢失与默认管理器集成的某些部分,例如锁定屏幕或切换用户时必须的问题有待进一步修改。在 Debian 上,如果两者都安装了,则要在它们之间切换(可能不是即时的,而是仅在下次启动时),可以是:
dpkg-reconfigure gdm3
dpkg-reconfigure lightdm
得到提示(在此操作或下面的某些操作之后可能需要重新启动或等效操作)。
不使用此类内存的最佳方法是完全禁用 GUI 的启动:这就是大多数仅服务器系统上所做的事情:即使它们有显卡并且仍然能够在控制台输出上显示,它们通常设置为不显示任何 GUI,其中之一是为了节省资源,尤其是内存。如果这就是您的意图,您现在就可以执行此操作,而无需卸载任何内容,并且稍后仍可以改变主意。在 Debian 上,对于 GDM,此 Debian wiki 对此进行了描述:GDM - 控制 GDM 守护进程:
systemctl set-default multi-user.target
这也适用于 LightDM。
人们仍然可以重新考虑并通过以下任一方式重新启用它们:
systemctl set-default graphical.target
或者只启动其中一个,而不在启动时重新启用它们:
systemctl start gdm
systemctl start lightdm