![为什么上传会占用最大 CPU 资源?](https://linux22.com/image/1301704/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8A%E4%BC%A0%E4%BC%9A%E5%8D%A0%E7%94%A8%E6%9C%80%E5%A4%A7%20CPU%20%E8%B5%84%E6%BA%90%EF%BC%9F.png)
有些奇怪的行为……当发送/上传文件时,我的 CPU 使用率会达到 100% 左右;活动监视器报告“内核任务”是罪魁祸首。我第一次注意到这一点是在 Mail 中发送电子邮件时,但每当我使用时也会发生这种情况任何上传协议:
- 电子邮件附件;
- 使用 Cyberduck 或 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 失控的原因列表,并报告你是否遇到任何问题:)