Mac 上 mdsync CPU 占用率高

Mac 上 mdsync CPU 占用率高

David Balaban

Mac 上的 mdsync 是什么?

Spotlight 搜索表面上看起来很简单:你输入,结果就出现了。在底层,macOS 运行着一整套元数据服务来保持这种体验的快速和准确。mdsync 就是这些服务之一。

它与 mdsmds_stores 以及各种构建和维护 Spotlight 搜索索引的 mdworker 进程属于同一个家族。它的作用是跨卷同步和更新元数据,以便 Spotlight 结果与磁盘上实际存储的内容保持一致。

macOS 中的 mdsync 内存使用情况

在当前的 macOS 版本上,这涵盖的不仅仅是内部驱动器。mdsync 通常在以下情况下变得活跃:

  • 插入外部 USB 或 Thunderbolt 磁盘,
  • 连接 APFS Time Machine 目标,或
  • 处理大量、不断变化的数据集。

在第一次索引过程中或在进行重大更改后,mdsync 短暂地浮动到活动监视器的 CPU 列表顶部是正常的。

重点是 mdsync 是一个内置的、由 Apple 签名的组件。它不是恶意软件,也不是随机的第三方服务。大多数时候,它在后台静默地工作。问题始于索引卡住时,或者工作负载太重导致 mdsync 长时间独占 CPU 周期时。

威胁概况
0
1
2
3M
4a
5c
6
7
8
9
10m
11d
12s
13y
14n
15c
16
17
18
19C
20P
21U
22
23
24
25
26
27
28
29
30
31
32
33m
34a
35c
36O
37S
38
39S
40p
41o
42t
43l
44i
45g
46h
47t
48
49/
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71广
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87(
88P
89U
90A
91)
92
93
94
95
96
97
98
99
100
101
102
103m
104d
105s
106,
107
108m
109d
110s
111</td>
112
113s
114t
115o
116r
117e
118s
119,
120
121m
122d
123w
124o
125r
126k
127e
128r
129,
130
131c
132o
133r
134e
135s
136p
137o
138t
139l
140i
141g
142h
143t
144d
145,
146
147p
148h
149o
150t
151o
152a
153n
154a
155l
156y
157s
158i
159s
160d
161,
162
163b
164a
165c
166k
167u
168p
169d
170,
171
172k
173e
174r
175n
176e
177l
178</td>
179
180t
181a
182s
183k
184
185
186
187
188
189
190
191
192
193
194
195M
196a
197c
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222m
223d
224s
225y
226n
227c
228
229
230
231
232
233
234
235
236C
237P
238U
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258m
259d
260s
261y
262n
263c
264
265
266
267
268
269
270
271
272
273M
274a
275c
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293m
294a
295c
296O
297S
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331T
332i
333m
334e
335
336M
337a
338c
339h
340i
341n
342e
343
344
345
346
347
348线
349
350
351
352
353
354
355/
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431C
432P
433U
434
435使
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455S
456p
457o
458t
459l
460i
461g
462h
463t
464
465
466
467
468
469
470
471
472
473S
474p
475o
476t
477l
478i
479g
480h
481t
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496/
497
498T
499i
500m
501e
502
503M
504a
505c
506h
507i
508n
509e
510
511
512
513
514
515
516
517
518
519
520
521m
522a
523c
524O
525S
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540/
541
542P
543U
544A


为什么 mdsync 会导致 Mac 上的 CPU 使用率飙升

在正常情况下,mdsync 醒来做一项工作,处理一批元数据,然后退到一边。在这项工作进行时,CPU 飙升是预期的。当飙升很剧烈并且从未真正消退时,它们就成了一个问题。

Mac 上 mdsync 高 CPU 使用率

典型的触发因素包括:

  • 新的或重建的 Spotlight 索引
    在 macOS 升级、全新安装或完全重置 Spotlight 之后,系统必须重新索引所有内容。在拥有大容量卷的机器上,mdsync 及其兄弟进程可能会在一段时间内保持高 CPU 使用率,直到工作完成。
  • 巨大的外部或 Time Machine 驱动器
    数 TB 的 SSD、媒体存档和 Time Machine 目标是持续活动的典型来源。Spotlight 不仅可能尝试索引实时数据,还可能尝试索引快照历史记录,这可能会让 mdsync 忙碌数小时。
  • 不断变化的数据
    开发者项目、虚拟机映像、大型照片或视频库以及云同步文件夹会产生不断的写入。Spotlight 试图保持其对这些数据的视图为最新,而 mdsync 被拉入以保持元数据与现实一致。
  • 损坏或有问题的 Spotlight 索引
    如果 Spotlight 索引损坏,或者如果特定文件混淆了元数据导入器,Spotlight 可能会不断重试。结果看起来像一个循环:mdsync 反复处理相同的数据集而没有取得进展,CPU 使用率保持很高。
  • 第三方软件干扰
    备份工具、杀毒实用程序、同步客户端和不断接触大量文件的“清理”应用程序会放大 Spotlight 的工作负载。两三个这样的工具堆叠在一起很容易将 mdsync 和相关进程推向超速状态。
  • 恶意软件或 PUA 的副作用
    这是最不常见的情况,但不应被忽视。一些 Mac 威胁会产生异常的文件系统活动,重复删除文件,或模仿系统进程名称。在这些情况下,mdsync 的高 CPU 使用率可能是更广泛问题的症状,而不是根本原因。

当发生明显的事情时——例如大的操作系统更新或新驱动器的第一次连接——短暂的飙升是正常的。危险信号是没有明确解释且持续数小时或数天的高 CPU 使用率。


检查清单上的首批修复

在你诉诸更严厉的措施之前,值得进行的一组快速检查。这些通常可以解决问题,或者至少缩小问题范围。

  1. 确认 mdsync 确实是罪魁祸首
  • 打开 访达
  • 选择 前往 > 实用工具
  • 打开 活动监视器
  • 点击 CPU 标签并按 % CPU 排序。
  • 在顶部附近寻找 mdsyncmdsmds_storesmdworker
  1. 如果 mdsync 短暂飙升然后回落,那是典型的索引。如果它一直粘在列表顶部,请继续。
  2. 询问现在是否预期会有索引
    考虑最近发生了什么变化:
  • 你升级或重新安装了 macOS 吗?
  • 你创建了一个新的用户帐户吗?
  • 你连接了一个新的或非常大的外部驱动器吗?
  1. 如果答案是肯定的,你可能只需要让 Spotlight 完成它的工作:
  • 将你的 Mac 连接到电源。
  • 保持盖子打开,让它保持唤醒状态一段时间。
  • 定期观察 活动监视器 以确认 CPU 使用率随着时间的推移呈下降趋势。
  1. 重新启动 Mac
    重启会清除卡住的 Spotlight 作业并关闭可能触发重复索引的应用程序。
  • 打开 Apple 菜单并选择 重新启动…
  • 重启后,再次打开 活动监视器,看看 mdsync 的表现是否更好。
  1. 断开非必要的外部驱动器
    如果连接了多个 USB 或 Thunderbolt 卷,其中一个可能会产生不成比例的索引工作负载。
  • 访达 中,点击你不需要立即使用的每个外部卷旁边的 推出 图标。
  • 一旦驱动器从边栏消失,拔掉它。
  1. 如果 mdsync 在移除特定驱动器后平静下来,你就找到了主要嫌疑人。
  2. 在安全模式下测试
    安全模式只加载必要的系统扩展,并有助于揭示第三方干扰。
  • 在 Apple 芯片的 Mac 上
    • 关闭 Mac。
      • 按住 电源 按钮直到出现启动选项。
      • 选择你的启动磁盘,按住 Shift,然后点击 在安全模式下继续
  • 在基于 Intel 的 Mac 上
    • 重新启动并立即按住 Shift
      • 当看到带有红色 安全启动 的登录窗口时松开按键。
  1. 登录,让系统空闲一会儿,然后检查 活动监视器。如果 mdsync 在安全模式下看起来正常,那么第三方组件可能导致了该问题。

如何修复 Mac 上的 mdsync 高 CPU 使用率(手动步骤)

以下步骤旨在减少 mdsync 正在做的不仅要工作,识别可能的冲突,并排除让 Spotlight 忙碌的冒名顶替者或辅助进程。按顺序执行它们,并在每组更改后检查 CPU 行为。

第 1 步:通过活动监视器强制退出 mdsync 一次

这不会删除进程——如果需要,macOS 会重新启动它。但这可以打破卡住的循环。

  • 通过 访达 > 前往 > 实用工具 打开 活动监视器
  • 点击 CPU 标签。
  • 在列表中选择 mdsync
  • 点击活动监视器窗口左上角的 停止 (⛔) 图标。
  • 在出现的对话框中,点击 强制退出

mdsync - 强制退出

如果 mdsync 立即跳回 CPU 列表的顶部并停留在那里,请将其视为更深层次的东西——例如损坏的 Spotlight 索引或嘈杂的卷——仍在起作用的迹象。

第 2 步:为启动磁盘重建 Spotlight 索引

如果索引运行感觉没完没了,强制 Spotlight 扔掉旧索引并建立一个新索引是下一个合乎逻辑的步骤。

  • Apple 菜单打开 系统设置
  • 转到 Siri 与 Spotlight(或 Spotlight,取决于你的 macOS 版本)。
  • 点击 Spotlight 隐私(或名称类似的按钮)。
  • 点击 + 按钮并添加你的启动磁盘(例如,Macintosh HD)。
  • 确认你要阻止 Spotlight 搜索此磁盘。
  • 等待大约一分钟。
  • 在列表中选择同一个磁盘,然后点击 按钮将其从 Spotlight 隐私中移除。

mdsync - 重建 Spotlight 索引

Spotlight 现在将从头开始重建索引。预计 mdsync 和相关进程会再次飙升一段时间,但 CPU 使用率最终应该会逐渐减少,而不是永久保持高位。

第 3 步:排除重量级或很少搜索的位置

你不需要 Spotlight 索引你拥有的每个卷和归档。排除庞大或嘈杂的位置可以显著减少 mdsync 必须工作的强度。

  • 停留在 系统设置Spotlight 隐私 部分。
  • 点击 + 按钮。
  • 添加诸如 Time Machine 备份目标、大型外部媒体库、虚拟机文件夹以及备份或同步工具使用的文件夹等位置。
  • 重复直到添加了所有非必要位置。
  • 关闭 系统设置

mdsync - 排除重量级或很少搜索的位置

从此时起,Spotlight(以及因此 mdsync)忽略这些路径,这可以显着降低索引负载。

第 4 步:检查 Time Machine 和其他备份工具

Time Machine 和第三方备份应用程序会产生大量文件系统活动。当它们的数据被索引时,元数据服务也会变得忙碌。

  • 打开 系统设置 并选择 Time Machine
  • 检查备份磁盘列表并移除任何你不再定期使用的磁盘。
  • 如果你使用其他备份应用程序,请打开它们的设置并检查它们存储数据的位置以及运行频率。
  • 在可能的情况下,仅当你打算运行备份时才连接备份磁盘,而不是一直让它们连接着。

第 4 步:检查 Time Machine 和其他备份工具

进行这些调整后,让 Mac 运行几个备份周期,然后再次检查 活动监视器,看看 mdsync 的 CPU 使用率是否更加温和。

第 5 步:在看起来“嘈杂”的卷上运行急救

如果特定的内部或外部磁盘始终与高 mdsync 使用率同时发生,它可能有让 Spotlight 感到困惑的文件系统问题。

  • 应用程序 > 实用工具 打开 磁盘工具
  • 在边栏中,选择 内部 下的启动磁盘。
  • 点击工具栏中的 急救
  • 确认你要运行急救并等待检查和修复完成。
  • 对任何似乎触发 mdsync 飙升的外部磁盘重复相同的程序。
  • 所有检查完成后,重新启动你的 Mac。

第 5 步:在看起来“嘈杂”的卷上运行急救

干净的文件系统为 Spotlight 提供了一个更可预测的可索引结构,并可以防止让 mdsync 忙碌的重复重试。

第 6 步:通过终端暂时暂停 Spotlight 索引(高级)

如果你需要立即缓解——例如,为了在使用电池时完成工作——你可以在系统范围内暂停索引。这会让 Spotlight 搜索在禁用期间不完整。

  • 应用程序 > 实用工具 打开 终端
  • 输入以下命令:
    sudo mdutil -a -i off
  • Return
  • 出现提示时输入你的管理员密码,然后再次按 Return

这将停止所有已挂载卷的索引,并应该会迅速降低 mdsync 的 CPU 使用率。当你准备好重新打开索引时,运​​行:

sudo mdutil -a -i on

第 6 步:通过终端暂时暂停 Spotlight 索引

重新启用索引后,最好让 Mac 连接电源并空闲一段时间,以便 Spotlight 可以以受控的方式赶上进度。

第 7 步:从命令行重置 Spotlight 的索引(高级)

如果图形重建没有帮助,通过终端完全重置可以解决更深层次的 Spotlight 索引损坏。

  • 再次打开 终端

运行以下命令以擦除并重建启动卷的索引:

sudo mdutil -E /

  • 如果其他卷看起来有问题,请重复该命令并替换它们的挂载点(例如,/Volumes/ExternalDisk)。
  • 命令完成后重新启动你的 Mac。
  • 让 Mac 连接电源并保持唤醒状态,以便它可以不间断地重新索引。

这种更彻底的重置通常会让 Spotlight 和 mdsync 处于更健康的状态,代价是一次性的索引会话,在大型磁盘上可能需要一些时间。

检查 mdsync 问题的恶意软件或 PUA 方面

大多数 mdsync CPU 飙升是索引的平凡副作用。尽管如此,如果高 CPU 使用率与其他警告信号同时发生,情况就会发生变化。如果你注意到以下情况,请仔细观察:

  • 持续的浏览器重定向或不需要的搜索引擎;
  • 声称你的系统被感染的攻击性弹出广告;
  • 系统设置 中未知的配置文件;
  • 你不记得安装过的奇怪的登录项或启动代理。

广告软件和潜在不需要的应用程序倾向于产生持续的文件系统和网络活动,重复创建和删除文件,并篡改浏览器设置。所有这些都增加了 Spotlight 必须跟踪的背景噪音,使 mdsync 比应有的更忙。

一些威胁还会模仿系统进程名称以混入其中。虽然 mdsync 本身是合法的,但你要确保系统上没有其他组件滥用资源或试图利用其活动。在此阶段运行信誉良好的安全工具来扫描广告软件、PUA 和其他威胁不仅是合理的步骤。


将来如何防止 Mac 上的 mdsync CPU 飙升

一旦你稳定了 mdsync 和 Spotlight,一些做法将有助于保持这种状态:

  • 保持 macOS 更新
    系统更新定期包括针对 Spotlight 和元数据相关错误的静默修复。及时安装它们是从这些改进中受益的简单方法。
  • 对 Spotlight 索引的内容有选择性
    避免索引庞大的归档、很少使用的外部卷或不断变化但从不需要出现在搜索中的文件夹。使用 Spotlight 隐私列表将索引集中在你实际搜索的内容上。
  • 避免堆叠太多的后台实用程序
    同时运行多个杀毒工具、备份应用程序和“清洁器”会产生重叠的工作负载。使用更少、选择更好的工具,而不是一次性将所有东西都扔给系统。
  • 明智地管理备份磁盘
    让 Time Machine 做它的工作,但在特定的备份窗口连接备份磁盘,而不是 24/7 连接着它们,特别是如果它们保存了数年的快照。
  • 调查持续的风扇噪音
    如果你的 Mac 莫名其妙地发热且噪音大,请打开 活动监视器 并找出罪魁祸首。早点修复资源占用者比在热应力数小时后修复更容易。

总结

mdsync 是 Spotlight 和其他 macOS 组件跟踪文件方式的组成部分。偶尔的 CPU 飙升是维护快速、系统范围搜索索引的成本,特别是在重大更改后或涉及大容量卷时。

只有当这些飙升变成持续的高 CPU 使用率状态,导致你的 Mac 慢如蜗牛时,它们才会成为真正的问题。通过确认 mdsync 在做什么,重建和调整 Spotlight 索引,检查外部和 Time Machine 驱动器,并使用信誉良好的安全工具排除恶意软件,你几乎总是可以让这个进程恢复到其通常的、不显眼的行为。

关键是区分健康的后台索引和明显卡住的循环。一旦你做出了这种区分,控制 mdsync 和 Mac 的性能就变成了有条不紊、可管理的步骤的问题。

常见问题

1. mdsync 是否意味着我的 Mac 感染了病毒?

2. mdsync 高 CPU 使用率应该持续多久?

3. 在活动监视器中强制退出 mdsync 安全吗?

4. 我可以永久禁用 mdsync 吗?

5. 为什么每当我插入特定驱动器时 mdsync 都会导致 CPU 飙升?

这篇文章有帮助吗?请评价这个。