[这个问题被标记为重复(与图形驱动程序有关),但事实并非如此。我有将问题追溯到系统上运行的 VMware Workstation 12。此问题是由暂停和恢复 VMware Workstation 引发的。
自从升级到 Kubuntu 15.10(从 14.04 LTS)以来,一些显示 JPEG 和 PNG 文件的程序很长时间运行。例如,1.5 MB 的 JPEG 过去可以立即显示,但现在需要 10 多秒才能显示在屏幕上。2 MB 的文件则需要 20 多秒。
这是在一台非常快的计算机上(12 核、SSD、32 GB RAM)。
受影响的程序包括:
- 显示(来自 Imagemagick 6.8.9-9)
- eog(GNOME 图像查看器 3.16.3)
- geeqie(版本 1.2)
不受影响的项目包括:
- 瘸子
- 十五
- Chrome(如果我输入“chrome IMG_3123.JPG”)
示例文件:
$ ls -l IMG_3123.JPG
-rw-r--r-- 1 smith users 1562373 Sep 12 07:14 IMG_3123.JPG
当我跑步时:
$ display IMG_3123.JPG
显示图像需要 10 秒。在 Kubuntu 14.04 下,花费的时间不到 1 秒。
笔记:如果我重启,问题就消失了。但过了一段时间,问题又出现了。
我也看到了其他 GUI 应用程序随机缓慢比如 Chrome。这让我怀疑这个问题是否与图形驱动程序有关?还是一些常用库?
我的图形信息是:
$ sudo lshw -class display
*-display
description: VGA compatible controller
product: GK107 [GeForce GT 640]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nouveau latency=0
resources: irq:46 memory:fa000000-faffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:e000(size=128) memory:fb000000-fb07ffff
所以我正在运行 nouveau 驱动程序,但我很确定我也在 Kubuntu 14.04 中运行 nouveau。
更新:
我试过安装 nvidia 专有驱动程序然后重启。我在启动时看到了一个新的错误:
Kubuntu 15.10
. . . .
EDAC sbridge: ECC is disabled. Aborting.
EDAC sbridge: Couldn't find mci handler
重启完成后,我无法使用图形登录屏幕登录。我输入密码后立即返回登录屏幕。/var/log/syslog 中的错误显示:
Nov 23 15:35:04 myhost systemd[1]: Started Session c4 of user smith.
Nov 23 15:35:04 myhost console-kit-daemon[2945]: (process:10614): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Nov 23 15:35:04 myhost gdm[2819]: GdmDisplay: display lasted 0.044295 seconds
Nov 23 15:35:04 myhost console-kit-daemon[2945]: (process:10623): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Nov 23 15:35:04 myhost console-kit-daemon[2945]: GLib-CRITICAL: Source ID 121 was not found when attempting to remove it
Nov 23 15:35:08 myhost gnome-session[3177]: GLib-GObject-CRITICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Nov 23 15:35:09 myhost gnome-session[3177]: gnome-session[3177]: GLib-GObject-CRITICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
所以我卸载了 nvidia 驱动程序并重新启动,系统恢复正常。
我尝试安装其他版本的 nvidia 驱动程序,但出现了同样的问题,所以我仍然没有解决方案。
更新 2:
好吧,这很奇怪。问题又出现了,JPEG 需要 20 秒才能打开。我关闭了 VMware Workstation (12.0.1),它正在运行几个 Windows VM 作为客户机,问题立即停止。这与内存无关,因为在关闭 VMware 之前我还有 28GB 的可用 RAM。
答案1
您正在使用 Nouveau 驱动程序,使用 Ubuntu 软件中心“附加驱动程序”部分中提供的某个图形驱动程序可能会获得更好的效果。
我把这个问题标记为“如何安装其他驱动程序”的重复,它应该能让你顺利完成整个过程。我提醒你也阅读一下如何卸载 nvidia 驱动程序首先,请注意,当更新发行版(例如从 Ubuntu 14.04 到 Ubuntu 15.10)时,最好先禁用专有图形驱动程序!
答案2
仅当 VMware Workstation 运行客户操作系统时才会触发此问题。它已通过以下方式解决在内核中禁用透明大页面。我注意到这一点是因为当问题发生时,三个不同的进程都达到了 100% CPU 利用率(或更高):
- 图形程序(例如 geeqie 或 display)
- vmware-vmx(VMware Workstation 客户机)
- 库格帕吉德
读Dan Ritter 对 khugepaged 和 transparent hugepages 的精彩描述。
所以,问题与显卡驱动程序无关。nvidia 和 nouveau 驱动程序同样会出现此问题。