14 junio, 2021

¿Qué es la memoria cableada y cómo liberar memoria en Mac? MacMyths

Mientras leía algunos foros de Apple, encontré una pregunta que la gente hacía mucho. Si bien la mayoría de las respuestas fueron en general correctas, sentí que todas las respuestas carecían de algunos detalles importantes y, como resultado, confundían a las personas aún más. El propósito de este artículo es aclarar esos detalles tanto como sea posible.

Primero, respondamos la primera pregunta del título de la publicación.

¿Qué es la memoria cableada? ?

La memoria cableada en Mac está reservada para el kernel de macOS y sus estructuras de datos, y no se puede paginar. El tamaño normal de la memoria cableada es de alrededor de 2 GB. Las aplicaciones de usuario agregan un promedio de 1 MB por instancia, y demasiados programas en ejecución pueden contribuir a un uso elevado de memoria cableada.

Ahora, profundicemos en más detalles técnicos.

Cuando la Mac de repente se vuelve demasiado lenta, los propietarios de computadoras portátiles comienzan a navegar en foros y aprenden a verificar la pestaña de memoria en el Monitor de actividad.

Ficha Memoria en el Monitor de actividad

La captura de pantalla anterior que hice después de reiniciar la Mac indica que mi Mac tiene 8 GB de memoria física y 2,33 GB están en el depósito de memoria usada. La memoria utilizada entonces consiste en App Memory (1.2GB) y Wired Memory (1.13GB).

¿Por qué la gente pregunta acerca de la memoria Wired?

La memoria cableada es una memoria que no puede comprimirse ni paginarse en las unidades de inicio, por lo que debe permanecer en la RAM. Además, otros procesos no pueden tomarlo prestado.

La frase clave aquí es “no se puede paginar”.

Antes de continuar, permítanme explicar qué es la paginación.

La arquitectura de las computadoras modernas se diseñó en el siglo XX. Cualquier computadora tiene tres partes principales: procesador, RAM (memoria de acceso aleatorio) y almacenamiento (disco, cinta, tarjetas perforadas, etc.).

El procesador trabaja directamente con RAM porque esta última es de miles de veces más rápido que HHD o SSD. Además de la velocidad, hay dos diferencias más entre RAM y HHD:

  • La RAM necesita energía constante. Cuando una computadora se apaga o se reinicia, los datos en la RAM se borran. Los discos duros conservan los datos incluso cuando la computadora está apagada.
  • La RAM es mucho más cara . Por ejemplo, por $ 200 adicionales, puede comprar 8 GB más de RAM o 128 GB más de SSD al comprar una nueva MacBook Pro.

El último punto es significativo. Si la RAM fuera barata, Apple llenaría sus computadoras portátiles con toneladas de memoria, y a nadie le importaría leer este artículo. Pero dado que es más caro que el almacenamiento en disco, los ingenieros informáticos inventaron el intercambio de memoria o la paginación.

Permítanme usar una analogía con la pizarra.
Imagínese, usted trabaja en una nueva empresa que alquila escritorios para parejas en un espacio de coworking. Las comodidades en un ambiente de coworking incluyen café y cerveza ilimitados, Wi-Fi, espacio para guardar bicicletas y una pizarra.

Conversación en la pizarra

Cuando el equipo A necesita hacer una lluvia de ideas sobre la próxima gran cosa, van a la pizarra y comienzan a escribir algunas ideas. Desafortunadamente, solo hay una pizarra en el piso. El equipo B también quiere intercambiar ideas sobre su TNBT, y también necesita algo de espacio en la pizarra.

El equipo A acepta amablemente compartir parte del espacio de la pizarra. Luego viene otro equipo, y otro. Con cada equipo, la cantidad de espacio libre se reduce.

Cuando el área disponible se vuelve demasiado estrecha, los equipos deciden escribir algunas de sus ideas en el papel y limpiar la parte de la pizarra para nuevas ideas. . Cuando necesitan acceder a sus viejas ideas, buscan en documentos anteriores y los copian en la pizarra.

La administración de memoria en los sistemas operativos modernos funciona de manera similar. En este caso, una pizarra es una memoria física que comparten las aplicaciones (equipos). Cuando las aplicaciones solicitan memoria adicional y no hay más espacio libre, el sistema operativo verifica todas las páginas de memoria.

El sistema operativo intenta encontrar las que no se usaron recientemente y las copia en el disco. Las aplicaciones no anotan la memoria no utilizada como en el ejemplo de la pizarra, el sistema operativo lo hace. Cuando la aplicación necesita recuperar esos datos, el sistema operativo los vuelve a leer en la RAM desde el disco.

En teoría, más almacenamiento en el disco que la computadora tiene más RAM se puede extender mediante la paginación. Lo contrario también es cierto, en caso de poco o ningún espacio libre en el disco, el intercambio es casi imposible.

Este maravilloso mecanismo, sin embargo, tiene una flujo significativo: el disco es miles de veces más lento que la RAM. Cuando no hay suficiente memoria, el sistema sigue ingresando y saliendo datos continuamente, lo que provoca la llamada agitación del disco.

En el último caso, la computadora, en lugar de ejecutar programas, sigue moviendo datos, lo que hace que la vida de un usuario sea miserable.

Entonces, ¿qué tiene que ver con la memoria cableada? Continuando con la analogía, imaginando que la administración del coworking decidió bloquear el cuarto de la pizarra y escribir un cronograma de eventos en él. Además, no permitieron que ningún equipo borrara el cronograma.

Más espacio que ocupa la administración, menos espacio en la pizarra que los equipos pueden usar. Más memoria cableada, macOS usa menos memoria que las aplicaciones pueden compartir.

Por cierto, si se preguntaba qué representa Archivos en caché en la primera captura de pantalla , es una memoria que fue utilizada por una aplicación que se cerró recientemente. Es como si el Equipo A decidiera ir a un restaurante cercano a almorzar.

Si para cuando regresan, sus ideas todavía están en la pizarra, pueden comenzar desde donde se fueron. Si no es así, entonces tienen que copiar todo, desde sus papeles a la pizarra.

Los archivos en caché es un mecanismo que usa macOS para acelerar las aplicaciones cerradas recientemente en caso de que un usuario quiera iniciarlas. otra vez. Si mientras tanto, otra aplicación necesita más memoria, el sistema operativo la reclamará de Cashed Files.

Por lo tanto, si ve demasiados archivos en caché, no se preocupe, es lo mismo que memoria libre.

)

Si necesita una prueba, intente seguir en la Terminal:

  • En la aplicación Terminal, escriba sudo purge y presione Enter
  • Escriba la contraseña de administrador

Cuando ejecuté este comando, lo único que cambió en Activity Monitor fueron los archivos en caché: su tamaño se redujo de 1,89 GB a 594 MB.

¿Está bien usar sudo purge? No hay ningún daño porque todo lo que hace es borrar la memoria no utilizada. Pero tampoco hace nada valioso. macOS puede liberar memoria no utilizada cuando las aplicaciones solicitan más.

¿Qué se incluye en la memoria cableada?

Según la documentación de Apple, la memoria cableada es una parte de la memoria reservada para el kernel del sistema operativo y sus estructuras de datos. Los siguientes objetos del kernel pertenecen a la memoria cableada: objetos de memoria virtual, memoria virtual y cachés de búfer de E / S, varios controladores.

Las aplicaciones de usuario no funcionan directamente con el hardware; envían solicitudes a los controladores del kernel y estos, a su vez, realizan operaciones de hardware. Por ejemplo, el navegador de Internet no envía píxeles a la pantalla del MacBook. En cambio, envía solicitudes al controlador de video, que luego cambia los colores de los píxeles en la pantalla.

Sin embargo, las aplicaciones de usuario también pueden influir en la cantidad de memoria cableada que se usa, aunque de manera indirecta.

A continuación se muestra una tabla con algunos (no todos) los tipos de objetos que las aplicaciones de usuario crean indirectamente en la memoria cableada. Tenga en cuenta que los datos de la tabla están desactualizados, pero al menos dan una idea de por qué la memoria cableada cambia cada vez que cargamos o descargamos una aplicación.

Puerto Mach 32 bytes 2 kilobytes más 200 bytes para cada tarea
Recurso Memoria cableada utilizada
Proceso 16KB
Hilo 21 KB
116 bytes
Cartografía
Biblioteca
Región de memoria 160 bytes

Permítanme explicar algunos de los objetos de la tabla en el ejemplo del navegador Google Chrome. Cuando inicié Chrome, creó varios procesos: un Google Chrome y 8 Google Chrome Helpers. La memoria cableada saltó inmediatamente a 1,35 GB.

Procesos de Google en Activity Monitor

Cada línea del Monitor de actividad es un proceso: una instancia de aplicación. Cada proceso es una colección de subprocesos y los subprocesos realizan un trabajo real en la computadora. Si los datos de la Tabla 1 fueran actuales, podríamos contar que el proceso de Google Chrome agregó 16 KB para almacenar los datos del proceso, más 46 21 KB = 966 KB para los subprocesos.

Chrome es una aplicación interesante. Cada vez que abre una nueva pestaña, se inician ayudantes adicionales. Cada ayudante es un proceso separado, y cada proceso genera numerosos hilos.

Cuando abrí una pestaña, la cantidad de ayudantes de Chrome saltó de 8 a 16. Después de abrir una segunda pestaña, la cantidad de ayudantes aumentó a 24, y después de la tercera a 26. Después de abrir tres pestañas, el tamaño de la memoria cableada aumentó a 1,61 GB.

Como puede ver, cada proceso aumenta indirectamente la memoria cableada porque macOS tiene que registrar esos hilos en algún lugar .

Y esto no es todo. Si bien Apple afirma que la memoria cableada está reservada para el kernel y algunos objetos que describen los procesos del usuario, algunas aplicaciones pueden acceder directamente a la memoria cableada.

Por ejemplo, si alguna vez usó software de virtualización como Parallels Desktop o VMWare, debes saber que usan la memoria cableada directamente para mejorar el rendimiento.

Si piensas en esto, tiene mucho sentido. Los marcos virtuales están diseñados para actuar como máquinas reales, de modo que el sistema operativo que se ejecuta en su interior pueda manejar la memoria como siempre lo hace. Por ejemplo, si ejecuta la máquina virtual macOS en Mac, macOS creará su versión de memoria cableada dentro de VM.

Después de investigar un poco en la Guía de programación del kernel, descubrí que las aplicaciones pueden asignar memoria en el kernel llamando a la función kmem_alloc_wired en lugar de la función normal alloc .

Ahora, ¿qué significa todo esto en la práctica?

Cómo liberar memoria en Mac

Hay dos razones principales para el alto uso de la memoria cableada:

1) Algunas aplicaciones modifican el kernel y usan la memoria cableada deliberadamente. Algunos ejemplos son los controladores y las aplicaciones que funcionan a nivel del kernel, como los antivirus o las máquinas virtuales. Si, por ejemplo, hay algunos widgets en el control de la misión, apague los que no necesite.

En el caso de las máquinas virtuales, el remedio es limitar la configuración de la memoria. Por ejemplo, si la máquina virtual de Windows está configurada para usar 8 GB de RAM, bájela a 4 GB.

2) Cuando hay demasiadas aplicaciones activas, todavía usan RAM. A diferencia de Windows, donde al hacer clic en el botón de cierre se descarga la aplicación, en macOS, la aplicación continúa en la memoria. Puede saberlo con un pequeño punto debajo del icono en el Dock.

Iconos en el Dock

Utilice la combinación de teclas Comando y Q para salir de la aplicación por completo. Si algunas aplicaciones aún permanecen en la memoria, reiniciar la computadora a veces puede solucionar el problema.

Y finalmente, el uso elevado de memoria cableada no siempre es una señal de un problema. En el siguiente ejemplo, la memoria utilizada era de casi 31 GB en una Mac de 32 GB, y la memoria cableada representaba la mayor parte de la utilizada (26,61 GB).

Mucha memoria cableada

Sin embargo, mire el lado izquierdo de la captura de pantalla: Presión de memoria. La sección Presión de memoria en el Monitor de actividad puede tener uno de 3 colores como un semáforo: verde, amarillo y rojo. Si el color de la presión de la memoria es rojo, entonces se necesita más RAM. En caso de que esté verde, entonces hay suficiente memoria para la carga actual.

Cableado la memoria no se libera inmediatamente cuando se cierra una aplicación. Se borra mediante un proceso de recolección de basura que puede llevar algún tiempo, y durante este tiempo el tamaño de la memoria cableada puede ser demasiado alto.

Recursos:

  • Guía de programación del núcleo
  • Memoria y memoria virtual
  • Cómo utilizar el Monitor de actividad en tu Mac
  • Directrices de rendimiento de uso de memoria

Crédito de la imagen: Flikr