我的 MBR 开始冻结一个多小时,我发现我的内核报告受到限制,例如(这只是 2 秒的示例)
$ sudo fs_usage | | grep -i throttled
12:26:45 THROTTLED 0.015159 kernel_task
12:26:45 THROTTLED 0.015606 kernel_task
12:26:45 THROTTLED 0.016328 kernel_task
12:26:45 THROTTLED 0.014862 kernel_task
12:26:45 THROTTLED 0.014797 kernel_task
12:26:45 THROTTLED 0.015583 kernel_task
12:26:45 THROTTLED 0.014794 kernel_task
12:26:45 THROTTLED 0.014668 kernel_task
12:26:45 THROTTLED 0.014915 kernel_task
12:26:45 THROTTLED 0.014555 kernel_task
12:26:45 THROTTLED 0.014660 kernel_task
12:26:45 THROTTLED 0.015547 kernel_task
12:26:45 THROTTLED 0.015364 kernel_task
12:26:45 THROTTLED 0.015073 kernel_task
12:26:45 THROTTLED 0.014832 kernel_task
12:26:46 THROTTLED 0.015649 kernel_task
12:26:46 THROTTLED 0.016643 kernel_task
12:26:46 THROTTLED 0.014496 kernel_task
12:26:46 THROTTLED 0.015488 kernel_task
12:26:46 THROTTLED 0.014576 kernel_task
12:26:46 THROTTLED 0.015531 kernel_task
12:26:46 THROTTLED 0.015224 kernel_task
12:26:46 THROTTLED 0.015182 kernel_task
12:26:46 THROTTLED 0.015443 kernel_task
12:26:46 THROTTLED 0.015166 kernel_task
12:26:46 THROTTLED 0.015435 kernel_task
12:26:46 THROTTLED 0.015105 kernel_task
12:26:46 THROTTLED 0.015091 kernel_task
12:26:46 THROTTLED 0.015131 kernel_task
12:26:46 THROTTLED 0.015259 kernel_task
12:26:46 THROTTLED 0.014865 kernel_task
12:26:46 THROTTLED 0.015681 kernel_task
12:26:46 THROTTLED 0.014455 kernel_task
12:26:46 THROTTLED 0.015251 kernel_task
12:26:46 THROTTLED 0.015928 kernel_task
12:26:46 THROTTLED 0.015053 kernel_task
12:26:46 THROTTLED 0.014699 kernel_task
12:26:46 THROTTLED 0.015251 kernel_task
12:26:46 THROTTLED 0.014499 kernel_task
12:26:46 THROTTLED 0.015589 kernel_task
12:26:46 THROTTLED 0.015166 kernel_task
12:26:46 THROTTLED 0.015422 kernel_task
12:26:46 THROTTLED 0.018772 nsurlsession
12:26:46 THROTTLED 0.029125 kernel_task
12:26:46 THROTTLED 0.014671 kernel_task
12:26:46 THROTTLED 0.014763 kernel_task
12:26:46 THROTTLED 0.015114 kernel_task
12:26:46 THROTTLED 0.009341 iStat Menus
12:26:46 THROTTLED 0.008501 kernel_task
12:26:46 THROTTLED 0.014090 kernel_task
我已经将风扇控制增加到最大(通过 iStat 菜单),因为我读到它可能与 CPU 温度高有关,但它没有任何区别。仅杀死一些任务有一点帮助。
我知道如何终止任务或重新启动计算机来临时解决问题。不过我更感兴趣什么确切地是内核节流,为什么会发生这种情况(为什么它被限制以及什么阻止它不被限制)以及我可以采取什么行动或如何解除它?也许有一些选项可以让它不那么严格或禁用它,或者进一步降低 CPU 温度可能会有所帮助?
额外细节:
$ uname -a
Darwin MBP.local 15.2.0 Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 x86_64 i386 MacBookPro11,3 Darwin
$ top | head
Processes: 464 total, 19 running, 8 stuck, 437 sleeping, 4157 threads
2016/05/25 12:31:44
Load Avg: 30.72, 39.86, 29.86
CPU usage: 14.86% user, 46.0% sys, 39.12% idle
SharedLibs: 84M resident, 18M data, 7760K linkedit.
MemRegions: 360850 total, 2901M resident, 55M private, 435M shared.
PhysMem: 16G used (8494M wired), 5664K unused.
VM: 1406G vsize, 528M framework vsize, 3900541086(0) swapins, 3913990343(0) swapouts.
Networks: packets: 136234033/128G in, 133429405/73G out.
Disks: 288046480/15T read, 220716626/15T written.
$ macosver -h | tail -n1
ProductVersion 10.11.2
答案1
fs_usage 显示有关文件系统使用情况(以及相关内容)的信息。鉴于此,我怀疑 fs_usage 中的 THROTTLED 表明它是磁盘访问受到限制,而不是 CPU (尽管 THROTTLED 没有明确记录在手册页)。 OSX 降低了空闲应用程序的 I/O 吞吐量,以便为活动应用程序提供更好的性能(请参阅这篇 Ars 文章)所以这不一定是问题。
我认为这里重要的是,这并不是证据,无论怎样,你的 CPU 由于热量而受到限制,这导致了你的挂起。
不过磁盘 I/O 可能值得一看。在大多数传统的 UNIX 中,低磁盘吞吐量可能会导致明显的挂起 - 也许这就是您所看到的 - 但您需要进行更多调查 - 或者我们只能推测。