Arreglar el alto uso de CPU de mds y mdworker en Mac
Los procesos llamados mds, mds_stores o mdworker pertenecen a la indexación de
metadatos y búsqueda de Spotlight. Un pico tras una actualización, migración,
restauración o un cambio grande de archivos es normal, pero mdutil -s por sí solo no
te dice si hay un reindexado en curso y no hay una duración fija de una hora. Diagnostica
el disparador y el avance antes de reconstruir el índice o excluir datos.
Qué son mds y mdworker
Son el motor de indexación de Spotlight. mds (servidor de metadatos) coordina el índice, mds_stores gestiona la base de datos y los procesos mdworker hacen el escaneo real de los archivos para que su contenido y metadatos se puedan buscar. Cuando el índice está al día, se quedan en reposo. Cuando algo lo deja desactualizado, se activan y recorren tus archivos: es el CPU que ves.
Por qué se dispara
Spotlight reindexa cuando cambian muchos archivos de golpe:
- Tras una actualización o migración de macOS, cuando gran parte del disco es nuevo.
- Tras mover o copiar muchos datos, por ejemplo al restaurar archivos o clonar un disco.
- Tras conectar un volumen externo o de red nuevo que aún no se ha indexado.
- Cuando una carpeta llena de archivos cambia muy rápido, como al terminar una descarga grande.
Comprueba si la indexación está activada:
mdutil -s /
"Indexing enabled" es el estado normal, no un informe de progreso. Relaciona un CPU
sostenido de mdworker con la actividad de disco de Activity Monitor y con cambios
recientes de archivos. Si el trabajo avanza, deja el Mac encendido y déjalo terminar.
Árboles de código grandes, almacenes de correo, volúmenes externos, almacenamiento
lento y sincronización que se repite sin parar pueden alargar el trabajo.
Cuando no se calma
Si la actividad no baja, primero detén la app que reescribe archivos y desconecta un volumen externo sospechoso. Excluir una carpeta en System Settings > Spotlight > Search Privacy reduce el costo de indexación a cambio de perder resultados de Spotlight en esa carpeta. Úsalo para árboles de build generados, discos virtuales o archivos que de verdad nunca buscas, no como exclusión general de Home o del disco de arranque.
Cuando faltan resultados de búsqueda o el índice está claramente atascado, Apple documenta una reconstrucción con la misma lista de privacidad: agrega el disco o la carpeta afectados, espera un momento y luego quítalos. La guía de reconstrucción de Spotlight actual llama al botón Search Privacy o Spotlight Privacy, según la versión de macOS. Spotlight vuelve a indexar el elemento cuando lo quitas de la lista. Una reconstrucción repite a propósito trabajo costoso, así que es un paso de reparación, no la primera respuesta a un CPU alto normal.
Por dentro: el índice y qué fuerza una reconstrucción
Spotlight mantiene un índice invertido, un mapa de palabras y metadatos a los archivos
que los contienen, en un almacén oculto .Spotlight-V100 en cada volumen. Cuando un
archivo cambia, el mecanismo FSEvents del kernel avisa a mds, que entrega el archivo a
un mdworker, que carga el plugin importador (.mdimporter) del tipo de archivo para
extraer texto y metadatos. Una edición normal es barata. Una reconstrucción completa es
cara porque hay que reimportar los archivos elegibles. Algunas actualizaciones,
migraciones y restauraciones disparan un reindexado grande, pero el alcance varía. Las
exclusiones de privacidad solo reducen trabajo si renuncias a buscar en ese subárbol,
por eso deben ser estrechas y deliberadas.
Dónde ayuda un monitor
Activity Monitor o la vista Status de Mole pueden identificar a Spotlight como dueño del CPU y del disco. La pregunta más difícil es si su trabajo viene de un cambio finito o de un directorio que no deja de cambiar. La actividad reciente y un aislamiento controlado responden eso; forzar el cierre de un worker no.
Un diagnóstico repetible
Confirma que la indexación está activada, relaciona el CPU con la actividad de disco y los cambios recientes de archivos, y espera cuando el progreso sea plausible. Aísla una carpeta o un volumen que cambia una y otra vez si la actividad persiste. Excluye solo datos que no necesitas buscar; reconstruye con Search Privacy solo cuando los resultados o el comportamiento del índice demuestren que hace falta. No mates a los workers como estrategia de limpieza.