为什么上传会占用最大 CPU 资源?

为什么上传会占用最大 CPU 资源?

有些奇怪的行为……当发送/上传文件时,我的 CPU 使用率会达到 100% 左右;活动监视器报告“内核任务”是罪魁祸首。我第一次注意到这一点是在 Mail 中发送电子邮件时,但每当我使用时也会发生这种情况任何上传协议:

  • 电子邮件附件;
  • 使用 Cyber​​duck 或 FireFTP(在 Firefox 内)的 FTP;
  • 同步 Evernote(怀疑这也是 FTP?);
  • 通过命令行访问 FTP ( ftp -u)

知道为什么会发生这种情况吗?或者如何阻止它?

(OSX Lion 10.7.2、Macbook Pro 2.4 Core Duo;定制包括 Growl 和 Quicksilver)

更新:输出的第一行来自top -o cpu

PID    COMMAND      %CPU  TIME     #TH  #WQ  #PORT #MREG
0      kernel_task  122.3 20:13.81 73/4 0    2     1907

更新 2:刚刚决定使用 wifi 而不是 USB 3G 调制解调器来尝试一下……问题就消失了!FTP 上传期间的五个样本给出:

$ top -l 5 -stats pid,command,cpu,th | grep kernel_task
0      kernel_task      0.0  71/2
0      kernel_task      2.2  71/3
0      kernel_task      2.1  71/2
0      kernel_task      2.1  71/2
0      kernel_task      2.2  71/2

因此问题似乎出在使用 USB 调制解调器上传时...但找到解决方案还是不错的!

答案1

好的,我们继续...

这可能与 I/O 有关,因为我很难相信 ftp 命令会消耗如此多的内核时间。
虽然较大的网络传输速率可能是造成这种情况的原因,但在像这样的 CPU 上,在达到 100% 的 CPU 利用率之前,您应该可以每秒发送几十个 Mo。

看一看这里得到导致 kernel_task 失控的原因列表,并报告你是否遇到任何问题:)

相关内容