为什么 Xorg 占用了这么多内存和 CPU?

为什么 Xorg 占用了这么多内存和 CPU?

在发生大规模硬盘故障后,我最近重新安装了 Ubuntu 11.04 Natty。

现在,出于某种原因,compiz 和 Xorg 决定开始逐 GB 地消耗我的 RAM 和 CPU,这是一个有趣的想法。开始时数量正常,但很快就膨胀到 1-2+GB,并开始占用我的大部分 CPU。这种情况以前从未发生过,但我的硬件实际上没有改变。唯一的区别是我干净地安装了 11.04,而之前我从 10.10 升级而来。

例如:昨晚重启了我的电脑。唯一运行的程序是 Transmission。今天早上回来时 - Xorg 占用了 1.5GB RAM 和超过 50% 的 CPU。没有运行或安装任何其他程序。我根本没有激活任何花哨的 Compiz 插件。怎么回事?

我在 4x AMD Athlon(tm) II X4 640 处理器上运行 11.04,处理器有 8GB RAM。我使用的是集成的 ATI Radeon HD3300 GPU 和 AMD Catalyst 11.5 驱动程序 - 但这个问题也出现在 11.4 和内置的 fglrx 驱动程序上。

如果需要的话,我可以提供任何其他日志或系统信息。

答案1

TL;DR 尝试拔掉你的 USB 集线器(以及可能的其他 USB 设备)

我的 Xorg 并没有消耗太多 CPU,但在计算机启动大约一天内,内存就膨胀到了 1.2 GB。解决这个问题的唯一方法是硬重启。在尝试禁用 NVidia 驱动程序、切换到 cinnamon、切换到 gdm 并最终踢掉该死的东西(这只是为了让我感觉好些)后,我注意到,当我在某些 gdm/lightdm 服务重启期间切换到控制台 tty(ALT + F1 或 F2,...,F6)时,屏幕上会滚动出现很多错误消息。请注意,我只是切换到 ALT + F1,我还没有登录。

消息报告说我的 USB 电视调谐器卡未正确初始化。这些消息不断滚动,好像系统陷入了无限循环,不断尝试初始化电视卡(当然每次都失败)。正如预期的那样,一旦我断开 USB 电视卡,消息就会停止,但令我惊讶的是 Xorg 也停止了膨胀。为了确保万无一失,我重新连接了 USB 电视调谐器,错误消息出现了,Xorg 再次开始占用内存,就像一辆在加油站加油的 SUV。

但是,就在村民(又名 ubuntu 用户)准备砸碎他们的故障 USB 设备并用石头砸坏故障 USB 设备供应商时,情况突然发生了转折。实际上,造成所有这些麻烦的并不是 USB 电视卡。电视卡只是症状,而不是问题的根源。情节变得复杂起来……

之前使用过这款电视卡,没有出现任何意外,因此我仔细查看了有关电视卡的错误消息。还有一行抱怨 USB 集线器的 USB 端口,我就是在那里插入电视卡的。嗯,我刚买了这个集线器。所以我尝试将电视卡直接插入主板上的 USB 端口。一切正常!没有错误消息,也没有 Xorg 膨胀。所以最后实际问题是这样的:

由于 USB 设备的初始化错误,Xorg 消耗内存(在我看来,这是一个严重的错误)。由于很多人报告 ubuntu 12.04 中的 Xorg 存在问题,我建议您也查看一下您的 USB 设备。我的电视卡插入新的 USB 集线器时无法初始化,这导致了问题。将其插入主板上的单独 USB 端口解决了该问题。

PS:USB 集线器很可能与 Linux 不兼容,或者应该更换为具有自己的电源适配器的集线器,而不是由计算机的 USB 总线供电(请参阅USB 集线器无法正常工作 Ubuntu 12.04)。当我将网络摄像头插入集线器时,它也无法工作。如果将其插入主板上的 USB 端口,它确实可以工作。但请注意,当我将其插入 USB 集线器时,dmesg会报告网络摄像头已被正确识别和初始化(尽管cheese只给我一个黑色图像),并且由于没有错误消息,Xorg 不会填满计算机的内存。

PPS 我邀请心烦意乱的村民们聚集在独眼蒂姆的谷仓外面,把他们坏掉的 USB 集线器扔进一个盛大的节日篝火里。当火堆起来时,我们也会把 USB 集线器供应商也扔进去。每个人都有免费啤酒!哈哈哈哈(低沉的笑声)

:-)

答案2

如果您在 Classic 环境中使用 Compiz,请尝试安装 Compiz Fusion Icon 并选择适当的选项进行窗口管理器集成...

默认设置为:

  • 康比兹
  • 元城
  • 虚拟服务器

还存在以下选项:

  • 间接渲染

康比兹包括拥有自己的窗口管理器并且与硬件传感器配合得更好,以防使用“非错误设置”的“选定/启用/禁用插件/设置”CompizConfig 设置管理器

元城虚拟服务器分别针对GNOME(经典)Xfce

不过,根据 Compiz 的配置集和硬件供应商的选择,它可能会带来非常不同的结果。

Compiz Fusion Icon 只是允许快速重新启用管理器,但它不是解决方案,在我看来,只是一个好的测试工具......


从其他解决方案中也许使用更新的流明传感器

http://lm-sensors.org/

由于你的系统已升级反对有些司机并不“并驾齐驱”:)

一些驱动程序通过使用旧的传感器库从具有错误值的硬件传感器读取数据...例如,风扇速度加倍等。

升级时要小心流明传感器并坚决、谨慎地完成此过程!


答案3

我在使用 Kubunutu 11.10 时也遇到了类似的问题。我通过禁用花哨的效果解决了这个问题。我还添加了一个用于 xorg 更新的 ppa (https://launchpad.net/~ubuntu-x-swat/+archive/x-updates) 但这对我来说没什么区别。

我的问题可能是由于 Matrox 驱动程序不受 11.10(内核版本 3)支持。

答案4

您的 xorg 中存在内存泄漏,如果您不发布来自 /var/log/ 的 xorg 日志和主文件夹中的用户 xorg 错误(使用显示隐藏文件来查找它),就很难准确判断问题是什么。

我能给你的最佳建议是重新安装一个可以运行的 Ubuntu 版本。先用 USB 记忆棒或 CD ROM 尝试一下,让它运行一段时间。试着找到最佳状态并坚持下去。

相关内容