如果你打开 Mac 的“活动监视器”,发现一个名字叫 dasd 的进程挂在列表里,CPU 那一栏还时不时往上蹿,甚至风扇都跟着狂转起来,第一反应多半是:这是不是病毒?我第一次遇到时也慌了一下,因为这个进程名太短、太不起眼,没有任何中文注释,唯一能看到的信息就是“系统”用户。后来查了不少资料,又顺手做了几轮实测,才算把 dasd 这哥们儿彻底搞明白。这篇文章就把整个过程写成干货,给同样看到 dasd 的朋友一个清晰交代:它到底是什么、为什么会出现在你眼前、什么时候需要警惕、什么时候根本不用管。
1. 先把这个 dasd 的真实身份搞清楚
1.1 活动监视器里那个不起眼的“系统进程”
你在“活动监视器”的 CPU 或进程列表里看到的 dasd,通常是这样的:进程名只有四个字母,用户显示为“系统”,CPU 占用忽高忽低,有时 0%、有时 80% 甚至 90%,点击它之后,底部路径显示为/usr/libexec/dasd。
第一次见这行路径时,我的反应是:东西藏在系统库的 libexec 目录里,大概率不是普通应用。所以先不要急着按强制退出,因为libexec是 macOS 专门放系统级可执行文件的地方,很多核心守护进程都在这个目录下。
但“大概率是系统文件”不等于“绝对安全”。历史上确实出现过恶意软件伪装成系统进程名的情况,所以我们要做的不是凭名字猜,而是按照正常流程确认它的身份、路径和行为。确认之后你就知道,绝大多数情况下 dasd 只是一个老实干活的系统进程。
1.2 dasd 全称与 macOS 中负责的“后台调度”逻辑
dasd 的全称是Duet Activity Scheduler Daemon,中文可以理解为“双核活动调度守护进程”。它从 macOS 10.10 Yosemite 时代就已经存在,一直延续到今天。
它的核心职责,是调度系统里所有“不那么紧急”的后台活动。你电脑上有大量后台任务,比如:
- App Store 的自动更新
- iCloud 照片、文稿的同步
- Spotlight 索引重建
- Time Machine 的时间点备份
- 各种应用请求的“后台应用刷新”
- 系统维护脚本和日志整理
如果这些任务一拥而上,你的 CPU、磁盘和网络会被瞬间打满,电脑就会卡顿。而且很多任务并不需要立刻完成,比如“凌晨两点某个云盘做增量同步”和“开机就立刻全量同步所有文件”,体验差距非常大。
dasd 就像一个后台调度中枢,它会综合考虑你的电池电量、是否插着电源、最近使用时间、系统默认策略、甚至对你使用习惯的长期学习结果,决定“现在到底该让哪些后台任务开始跑、哪些再等一等”。
这个逻辑听着高级,其实很像公司的行政前台。所有部门都想用会议室,但会议室只有那么几个,前台会根据会议级别、人数、时间紧急程度来排期。dasd 就是那个排期的人,只不过它手里的“会议室”是 CPU、内存、磁盘和网络带宽。
所以,只要你的 Mac 在运行,dasd 就有充分理由存在。它不是一个临时性进程,而是系统底座的一部分,和launchd、WindowServer一样,会长期活在你电脑里。
2. 为什么你的 Mac 上会出现 dasd 进程
2.1 后台任务调度机制:系统在“睡觉”和“醒着”之间做的平衡
很多人有个误解:只要不用电脑,后台就应该什么都不跑。但 macOS 的设计思路恰恰相反,系统会把一堆低优先级任务积攒起来,找一个合适的窗口集中处理,而不是在你用电脑办公的时候突然抢占资源。
举例来说,你中午合上 Mac 半小时,这段时间里 iCloud 可能想上传照片、App Store 可能想下载更新、Spotlight 可能想重建索引。如果没有调度者,这几个任务会同时抢跑,把磁盘和网络全部占满。而有了 dasd,它会把这些任务错开:先让 iCloud 传一部分,等网络空闲一点再让 App Store 下载,索引重建则排到凌晨插上电源的时候。
这种调度还会参考你个人的使用规律。比如系统通过长期观察发现你每天早上九点固定打开邮件,那么一些相对耗时的后台清理工作就会安排在九点之前完成;如果你总是凌晨一点还在用大型软件,dasd 就会把自动更新往后挪,避免和你抢资源。
在“活动监视器”里,你看到 dasd 的 CPU 瞬时升高,往往就是它做决策和触发一批任务的时候。大部分情况下这种升高持续几十秒到几分钟,然后回落。良好的后台调度本身就是 dasd 价值所在,它出现越频繁,说明系统状态越活跃,并不代表有问题。
2.2 哪些日常操作会让 dasd 频繁加班
根据我的实际观察,下面几种场景最容易让 dasd 跑到镜头前刷存在感:
刚开机或刚解锁登录后。系统要重新评估任务队列,把所有暂停的待办事项重新安排,dasd 会有一波明显的忙绿高峰。
系统更新刚装完。macOS 每次大版本升级后,Spotlight、照片分析、聚焦搜索这些服务都要重新处理数据,后台任务量比平时大好几倍,dasd 连续活跃两天都很正常。
iCloud 照片图库全量同步。如果你换了新电脑,或者重新登录了 Apple ID,几十 GB 照片排队上传时,dasd 会不断触发同步后台任务,CPU 和网络双高。
App Store 自动更新堆积。一周没打开“软件更新”,系统会自动把多个应用更新积攒到某个窗口统一执行,dasd 需要协调多个下载任务。
Time Machine 备份时间点到了。Macbook 插上电源、连接硬盘后,系统开始备份时,dasd 会作为调度者参与其中。
第三方软件反复请求后台刷新。有些聊天软件、云盘软件、浏览器助手,每隔几十分钟就请求一次后台运行权限。每一次请求都可能让 dasd 醒来处理,如果 App 写得不够规范,dasd 就会被动反复加班。
如果你发现自己没有做特别操作,但 dasd 持续好几天都处于高占用状态,那就不能简单归为“正常调度”了,需要进入下一步排查。
3. 手里的 dasd 是好人还是伪装者?用三步判断
大多数时候 dasd 是系统进程,但我还是建议你亲手确认一下,尤其当你从不安全的网站下载过软件、或者电脑里装过来路不明的插件时。苹果的签名机制虽然很严,但小心一点总没错。
3.1 第一步:确认真实路径与进程参数
打开“终端”,用ps命令查看进程的完整路径。以活动监视器里显示的 PID 为例,假设是 392:
ps -p 392 -o pid,ppid,user,comm正常输出应该类似:
PID PPID USER COMM 392 1 system /usr/libexec/dasd注意看三个关键信息:
USER:system 或 rootPPID:1,表示它的父进程是 launchd,所有系统守护进程都由 launchd 管理COMM:/usr/libexec/dasd
只要这三个信息都对得上,基本就是系统原装进程。如果输出的是/tmp/...、/Users/你的用户名/...、或者没有路径只有dasd,那就要高度警惕。
也可以用pgrep快速列出所有同名进程:
pgrep -fl dasd正常情况下只会出现一个结果:/usr/libexec/dasd。如果出现多个不同路径,或者路径下带版本号、带数字后缀,大概率有问题。
3.2 第二步:检查代码签名与父进程
光看路径还不够,因为恶意软件可以把自身放到任意目录。更可靠的方法是校验代码签名,苹果官方的系统进程都有合法的签名链。
codesign -dvvv /usr/libexec/dasd 2>&1 | head -20执行后,你会看到一串信息,包含Executable、Identifier、TeamIdentifier等字段。只要命令能正常输出签名信息,且没有提示“code object is not signed at all”,就说明它确实是苹果签名的二进制文件。
再配合查看父进程:
ps -ppid 392 -o pid,comm或者直接看:
ps -p $(pgrep -P 392) -o pid,comm正常情况,dasd 的父进程 PID 是 1,也就是 launchd。如果它的父进程是一个奇怪的 App 或者命令行工具,那说明它不是由系统正常拉起的,这时候必须警惕。
3.3 第三步:观察父进程与登录项,排除伪装进程
如果用上面两步确认了路径和签名都正常,但心里还是没底,可以看看它打开了哪些文件。在终端里:
lsof -p 392 2>/dev/null | head -30系统进程通常会打开一些锁文件、数据库文件、系统库文件,但不会打开用户目录下的可疑文件。如果发现它打开了~/Library/...下的奇怪文件,或者/tmp下的脚本,那就不对劲了。
还可以检查登录项和 LaunchAgent,看看有没有可疑的自启动项。
launchctl list | grep dasd正常情况下执行后不会有输出,因为 dasd 属于系统内置守护进程,不会出现在用户的 launchctl 列表里。如果这里出现了 dasd 相关条目,那说明某个用户级启动代理在用这个名字,这时候要去“系统设置 > 通用 > 登录项”查看,把来路不明的项目移除掉。
另外,macOS 系统自带的“活动监视器”也可以看进程签名状态。在进程详情里,如果“内部”签名类型显示为“已签名”,且团队 ID 是苹果的,那么它就是干净的系统进程。我一直觉得,判断是否恶意,不要只看名字,签名、路径、父进程三者组合起来,可信度才高。
4. dasd 占用资源过高,我该怎么处理
确认了 dasd 是正常系统进程,可它还是长时间飙高 CPU,那就该进入实际排障环节了。这里有一个核心前提:dasd 本身没有“退出”这个操作,你就算在活动监视器里强制退出,launchd 也会一秒内把它拉起来,而且可能导致调度数据库异常。所以我们的目标不是“杀掉它”,而是“让系统减少触发它的后台活动”。
4.1 先别急着 kill,观察几分钟再动手
我踩过的第一个坑,就是看到 dasd CPU 高就立刻去 kill,结果系统卡了一下,进程瞬间重启,CPU 继续高。
真正正确的第一步是观察。先让电脑安静几分钟,不要开大型软件,看看 dasd 的 CPU 占用是持续稳定在某个高位,还是周期性脉冲。很多后台任务在启动的瞬间 CPU 会冲到 80%-90%,但一两分钟后降到 0%,这种就完全不用管。
如果它一直贴着 CPU 占有率排行榜第一名不下来,比如持续 10 分钟以上,再继续排查。
4.2 从系统设置里“减负”:关掉后台刷新与自动更新
首先要关掉的是后台应用刷新。这个功能本意是让应用在后台更新数据,但实际使用中,部分应用会频繁唤醒 daemon。在 macOS Ventura 及以后的系统里,路径在“系统设置 > 通用 > 登录项与扩展 > 后台项目”,你会看到一大堆已经装过的 App 带着开关。
我试过把不需要常驻的 App 全部关掉,只留下输入法、同步盘、安全软件这类真正需要后台运行的,dasd 触发的频率明显降低。重点是关掉那些视频类、阅读类、办公类工具的“后台刷新”,这些 App 根本不需要在后台做多少事,纯属安静期刷存在感。
其次检查“系统设置 > 通用 > 软件更新 > 自动更新”。把“自动安装 macOS 更新”和“自动安装 App 更新”关掉,能让系统少一半无缘无故的调度任务。我更推荐固定一个时间,比如每周手动检查一次更新,这样后台资源可控得多。
再有就是 iCloud 同步。如果你的 iCloud 图库里有大量照片在等上传,可以在“系统设置 > Apple ID > iCloud”里暂时关闭照片同步,或者把同步放在晚上睡觉插电时再做。不是让你永久关掉,而是排查时用来给系统减负。
4.3 用日志找到“幕后推手”
有时候 dasd 高占用不是因为系统本身的调度任务多,而是某个第三方 App 一直在请求后台活动。这时候靠猜效率太低,不如直接看日志。
在终端里用 log stream 实时观察 dasd 的日志输出:
log stream --predicate 'process == "dasd"' --style compact跑一会儿你就会看到一些类似这样的条目:哪个 Client 在请求,任务类型是什么,是否被延后。日志里经常会出现具体 App 的可执行路径。前几天我在一台电脑上看到 dasd 持续高占用,打开日志后发现一条记录反复刷:某个网盘客户端每隔 30 秒就申请一次后台任务,而且请求参数还变化不大。我把那个 App 的后台刷新关掉,dasd 立马安静下来。
如果不想盯着实时日志,也可以看过去一小时的历史日志:
log show --predicate 'process == "dasd"' --last 1h --style compact | grep -E "client|Client|request"注意:日志可能输出很大,最好加 grep 过滤。这一步的核心目标是找出“高占用”背后的调用方是谁。大多数时候你会惊讶地发现,真正忙的不是 dasd,而是某个不肯消停的第三方 App。
4.4 重启、更新与系统层面的最终手段
如果日志里没有明确的第三方 App,关掉后台刷新之后 dasd 依然不正常,那么尝试一次彻底重启。macOS 很依赖长期运行后的缓存状态,很多后台调度卡顿重启就能解决。
重启后如果仍异常,可以考虑这一步顺序:
- 把 Mac 升级到当前系统的最新小幅版本,苹果每年都会修复后台调度相关的 bug。
- 重置 NVRAM(适用于 Intel 机型):关机后开机,立即按住 Command+Option+P+R,20 秒左右松手。
- 重置 SMC(适用于 Intel 机型),具体组合键视机型而定。
- 如果是 Apple Silicon 机型,没有重置 SMC 操作,但可以让 macOS“恢复磁盘文件系统”或者使用“安全模式”启动来验证,关机状态下按住电源键进入启动选项,再按住 Shift 进安全模式,会清空部分系统缓存。
安全模式是个很好的验证手段。在安全模式下,很多第三方扩展不加载,如果 dasd 一下子恢复正常,说明问题出在某个第三方内核扩展或登录项,这时候回到正常模式后去卸载最近装的软件即可。
不过说实话,我遇到的大部分 dasd 高占用问题,走到“关闭后台刷新 + 重启”这一步就已经结束了,真正需要重置 SMC 的非常少。
5. 几个容易踩坑的细节与经验
5.1 dasd 和 Power Nap 的关系
Power Nap 是 Intel 机型上的一项功能,让 Mac 在睡眠状态时也能进行邮件接收、日历更新、照片同步等任务。它和 dasd 的关系很大,因为睡眠状态下系统不会把所有任务都交给 dasd,只会挑选那些低功耗、无害的任务执行。
你如果开着 Power Nap,并且又把 Mac 合盖放在电源上,晚上 CPU 可能时不时被唤醒,dasd 也会跟着出现。这会导致一个“错觉”:明明电脑合上了,风扇也在转,活动监视器里还有 dasd 在跑。很多人在这一块被吓到,以为电脑出毛病了。
解决方案很简单:在“系统设置 > 电池 > 电源适配器”里,把“启用 Power Nap”关掉。苹果芯片机型上相关选项位置可能略有不同,但思路一致。如果你对“睡眠后还在跑后台”这件事非常敏感,关掉 Power Nap 是最直接的安心办法。
5.2 老款 Mac 上 dasd 为什么更显眼
我手头有一台老款 Intel MacBook Pro,和一台 Apple Silicon MacBook Pro,同样的 macOS 版本,老机器上 dasd 出现的频率和占用明显更高。原因不复杂:
第一,老机器 CPU 单核性能弱,后台任务调度对它能造成的负载占比更高,dasd 本身虽然只做调度决策计算,但它的激活频率高到一定程度时,老 CPU 就容易显得“吃力”。
第二,老机器的 SSD 速度可能也慢,后台任务比如索引更新、iCloud 同步产生的 I/O 排队时间更长,系统需要更频繁地让 dasd 做调整,恶性循环。
所以如果你用的是五六年前的 Mac,看到 dasd 明显比室友新 Mac 上更活跃,不必太惊讶。可以先试着给系统“瘦身”:清理磁盘空间到剩余 20% 以上,关掉一些常年驻留但没用的软件,后台活动的排队压力会小很多。
5.3 容易跟 dasd 混淆的同类守护进程
排查的时候,很容易在活动监视器里看到一堆名字很相似的系统进程。我整理了一个容易混淆的对照表,方便你快速定位:
| 进程名 | 实际作用 | 和 dasd 的关系 |
|---|---|---|
| diskarbitrationd | 管理和挂载磁盘、外接存储 | 和磁盘插拔有关,不负责后台调度 |
| assetd | 负责管理和下载系统资源、缓存资源 | 比 dasd 更偏底层资源管理 |
| bird | iCloud 桌面同步的守护进程,负责上传下载运算 | 经常与 dasd 同时活跃,都受 iCloud 任务影响 |
| cfprefsd | 管理应用偏好设置的日志和同步 | 如果频繁出错,也可能触发后台任务 |
| nsurlsessiond | 负责 URLSession 网络请求的后台传输 | 网络类任务的直接执行者,dasd 负责排期 |
这张表最大的价值,是帮你在活动监视器里少走弯路。前几天有个朋友跟我说 dasd 占内存很大,我远程一看,实际上是bird在占内存,dasd 只是一个后台调度者。两者名字都短,不提前了解确实容易混淆。
我在实际排障中还有一个很深的心得:90% 的 dasd 高占用问题,都不需要像杀毒软件那样“大动干戈”。先用观察法给它几分钟,再关掉不需要的后台刷新和自动更新,最后用日志找到真正搞事的 App,基本就能解决。真正需要警惕的不是任何系统进程本身,而是那些路径不对、签名不对、却顶着 dasd 名字的伪装者。平时装软件尽量走官方渠道,那些需要关闭系统签名验证或者安装不明来源驱动的东西,尽量别碰,就不会给自己添堵。