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