CPU 调度非常慢,总执行时间和实际 CPU 时间之间存在很大差异 - 启用 Ubuntu 全盘加密

CPU 调度非常慢,总执行时间和实际 CPU 时间之间存在很大差异 - 启用 Ubuntu 全盘加密

诚然,我目前正在运行一个不超过五年的版本,并且系统的速度不会快得令人难以置信。然而,与此同时,我观察到的运行时间非常慢,这促使我提出这个问题,看看是否可以采取一些措施来解决这个问题。

例如,我只是解压一个 tarball,尽管它很大(~15GB),整个过程耗时约 2.5 小时,实际 CPU 时间约 9 分钟。相比之下,创建这个 tarball 大约只需要几分钟。同样,创作是在一台相当熟练的机器上进行的,但 2.5 小时似乎太慢了。

作为第二个例子,构建一个特定的项目(在 adept 机器上)只花费了 19 秒,其中 17 秒是实际的 CPU 时间。相比之下,同样的过程花费了近 9 分钟(在这台速度较慢的机器上),实际 CPU 时间仅约 14 秒。如下所示,实际 CPU 时间非常相似,只是总执行时间才是问题所在。

Adept Machine

real    0m19.245s
user    0m15.809s
sys     0m0.908s

Current Machine

real    8m37.500s
user    0m11.175s
sys     0m3.969s

我将两台机器之间的不公平比较仅作为参考点。没有什么特别令人惊奇的地方熟练的机器,只是比较新而已。当前机器有 4 GB RAM;熟练的机器有相当多的内存,因为它是服务器,但实际使用的内存只有 2 GB。没有磁盘 I/O,上述性能发生在机器空闲时。

一般来说,Ubuntu 的运行速度比应有的速度要慢得多,经常会冻结一段时间然后再恢复。打开任务往往也需要花费大量时间 - 对于像 Eclipse 这样简单的任务,可能需要 20-30 秒;浏览器也可能需要 5-10 秒。

  • 乌班图 14.04——启用全盘加密
  • 核心 i-7 860 @ 2.8Ghz
  • WD2500JS 7200RPM SATA 3Gbps 8MB 缓存

太棒了;为什么总执行时间和实际CPU时间有如此巨大的差距?我使用的磁盘并不慢。很难相信磁盘是造成如此巨大差异的根源。也许这是第一代 i7?


根据评论反馈进行更新:

  • 尝试过tar -t,但等了 6 分钟后我就把它杀了。总 CPU 时间:用户空间 3 秒。
  • taf -tf实际上将输出传递到终端并更改 的输出iostat,但只有 20-30 Kb/s。
  • 系统日志中没有有关文件系统损坏或磁盘超时的错误消息
  • 与 不同的是iostat,当列出内容并将其重定向到iotop时,实际上会给出结果并显示 80-90% IO 和 30-40 MB/s 。tar/dev/null

相关内容