15.10 中 JPEG 和其他图像的显示速度极慢

15.10 中 JPEG 和其他图像的显示速度极慢

[这个问题被标记为重复(与图形驱动程序有关),但事实并非如此。我有将问题追溯到系统上运行的 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 驱动程序同样会出现此问题。

相关内容