为何 kernel_task 这个进程写入数据量这么大

2017-02-06 16:33:10 +08:00
 349865361

为何 kernel_task 这个进程写入数据量这么大,几天没关机而已

4218 次点击
所在节点    macOS
3 条回复
hoythan
2017-02-06 16:50:03 +08:00
没毛病,我 1T 都看到过
IgniteWhite
2017-02-07 00:50:15 +08:00
"为什么心脏的血流量这么大,我不放心呢"
ThinkCenter
2017-02-07 01:49:38 +08:00
zhihu 有解答

https://www.zhihu.com/question/34315121/answer/58327634


1 , kernel_task 这可视为内核的进程表现,实际上它并非一个实际的进程,而是一堆内核线程的组合。包括调度线程,虚拟内存管理,以及各类你看不到的内核线程。所以这个读写量非常正常的。比如它写点 log ,写点缓存,开点 FIFO , PIPE 之类,搞点 Buffer 。所以跟内核有关的一堆线程读写最后统计都会落实到它身上,对于它你只能干瞪眼,没有办法去控制。

2 , systemstastd 系统状态监控与统计,如果你不服的话,去打开 /var/db/systemstats 文件夹欣赏一下就明白了。另外,这个可以关闭,具体方法我不教你,你可以去 Google ,如果你不 Google 也没关系,我只能认为你懒。

3 , launchd 系统除了 kernel_task 外的老二进程,也是用户态的第一个进程,相当于 Unix/Linux 的 init 进程。换句话说,它启动了各项系统服务,它让你能登录到 OS X 的桌面,也是它给你的软件提供了各项启动控制。不服的话,去看 /System/Library/LaunchDaemons /System/Library/LaunchAgents /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents 你看看他会读取多少东西,然后启动多少东西

4 , cfpresfsd 系统偏好设置控制进程,所有的系统的,三方软件的偏好设置,最后都是由它读取或写回磁盘的。比如一个 App 有一个偏好设置 是一个 checkbox , check 上就是 我操,不 check 就是我不操,软件为什么能记住到底操不操呢?就是靠它与磁盘上存储的偏好设置文件同步。你说它离不厉害?你资不资次它?

5 , nsurlstoraged 与 nsurlsessiond 是两口子,他们是干嘛的呢?以前啊,没个软件都会联网获取数据或上传数据,系统没法控制他们。现在为了能够实现更好的电源管理,更好的让系统节能,这两个东西就出来了,软件需要上传下载数据,可以直接讲请求提交给系统,系统就会发给这两个进程,这样系统就能控制在合适的时间合适的地点来上传下载数据,软件也不用干瞪眼等着这些数据,它可以直接退出。等到需要的数据搞定,系统会告诉这个软件,睡你麻痹,起来嗨。就是这样的。

我有一个乞丐版 rmbp, 128GB SSD ,用了 2 年半,日均开机 6 小时左右, smart 磨损健康度还剩 94%, smart 监控软件说还能能使 n 多年,每 1 个小时 kernel task 就写好几百兆到 1GB ,至今没问题,楼主如果硬盘大于 128GB ,就更耐磨了。不怕。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/338488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX