ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

macOS中的dasd进程是什么?CPU占用过高排查与处理指南

macOS中的dasd进程是什么?CPU占用过高排查与处理指南 如果你打开 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 为例假设是 392ps -p 392 -o pid,ppid,user,comm正常输出应该类似PID PPID USER COMM 392 1 system /usr/libexec/dasd注意看三个关键信息USERsystem 或 rootPPID1表示它的父进程是 launchd所有系统守护进程都由 launchd 管理COMM/usr/libexec/dasd只要这三个信息都对得上基本就是系统原装进程。如果输出的是/tmp/...、/Users/你的用户名/...、或者没有路径只有dasd那就要高度警惕。也可以用pgrep快速列出所有同名进程pgrep -fl dasd正常情况下只会出现一个结果/usr/libexec/dasd。如果出现多个不同路径或者路径下带版本号、带数字后缀大概率有问题。3.2 第二步检查代码签名与父进程光看路径还不够因为恶意软件可以把自身放到任意目录。更可靠的方法是校验代码签名苹果官方的系统进程都有合法的签名链。codesign -dvvv /usr/libexec/dasd 21 | 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 机型关机后开机立即按住 CommandOptionPR20 秒左右松手。重置 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 更偏底层资源管理birdiCloud 桌面同步的守护进程负责上传下载运算经常与 dasd 同时活跃都受 iCloud 任务影响cfprefsd管理应用偏好设置的日志和同步如果频繁出错也可能触发后台任务nsurlsessiond负责 URLSession 网络请求的后台传输网络类任务的直接执行者dasd 负责排期这张表最大的价值是帮你在活动监视器里少走弯路。前几天有个朋友跟我说 dasd 占内存很大我远程一看实际上是bird在占内存dasd 只是一个后台调度者。两者名字都短不提前了解确实容易混淆。我在实际排障中还有一个很深的心得90% 的 dasd 高占用问题都不需要像杀毒软件那样“大动干戈”。先用观察法给它几分钟再关掉不需要的后台刷新和自动更新最后用日志找到真正搞事的 App基本就能解决。真正需要警惕的不是任何系统进程本身而是那些路径不对、签名不对、却顶着 dasd 名字的伪装者。平时装软件尽量走官方渠道那些需要关闭系统签名验证或者安装不明来源驱动的东西尽量别碰就不会给自己添堵。
返回列表