¿Cuáles son algunos de los conceptos más erróneos acerca de mirar el uso de RAM en el Administrador de tareas?

Esto, desafortunadamente, es un tema muy complejo que requiere una comprensión básica de cómo su instalación de Windows gestiona sus requisitos de memoria y la memoria en general.

Creo que la parte crucial del razonamiento es que necesitas cambiar la forma en que piensas en la RAM. La RAM es, simplemente, el mecanismo de almacenamiento más rápido en la PC , y así es como debe tratarse, eso es todo . Es rápido, por lo que debe contener cualquier cosa que esté usando ahora y, si el espacio lo permite, cualquier cosa que probablemente usará en el futuro inmediato … pero no es un espacio o número glorificado. Lo que es más importante, la memoria de la computadora no se limita a la RAM real : será más que feliz mantener los contenidos no utilizados (pero cargados) en el disco hasta que se vuelvan a solicitar. Lo que es importante es el espacio de confirmación , que también se muestra en el Administrador de tareas (como “Compromiso (GB)”): una vez que desaparece, realmente no tiene memoria y pueden ocurrir cosas extrañas, pero el espacio de confirmación no está limitado por RAM a menos que elimine la capacidad del sistema operativo de usar otro almacenamiento (por ejemplo, apagando el archivo de paginación).

Pero hay más que eso.

En primer lugar, una parte de su RAM siempre está reservada por el Kernel (el núcleo del sistema operativo). Esto sucede porque si desea almacenar algo en la RAM, el administrador de memoria del Kernel debe tener un registro de ello . Más RAM = más registros para mantener = se hace una reserva inicial más grande para asegurarse de que sea posible. En realidad, esto tiene que ver con la forma en que los programas ven su memoria, pero no voy a entrar en detalles aquí. Basta decir que hay toda una ciencia sobre cómo rastrear y administrar la RAM utilizada por los programas.

Segundo: la mayoría de los programas (especialmente los juegos) tienen un nivel mínimo de RAM, por debajo del cual no funcionarán de manera confiable (si es que lo hacen). Mientras cumpla con esta cantidad mínima, el programa podrá cargarse y comenzar. Más allá de eso, realmente depende de cómo se use su RAM en cualquier momento, pero su sistema operativo hará lo mejor que pueda para asegurarse de que lo que sea que esté haciendo en este momento (también conocido como la aplicación en primer plano , o la que usted usa). tener foco en) se le da prioridad sobre todo lo demás. Discutiré esto un poco más tarde.

Tercero: puede asignar la información almacenada en el disco a la memoria sin cargarla realmente en la memoria. Este uso (más allá de lo poco que necesita el Kernel para mantenerlo utilizable) no cuenta para el uso de su memoria, y muchos programas lo emplean con frecuencia.

Cuarto: la memoria se puede compartir . Dos o más programas a menudo usarán la misma biblioteca o recurso, siempre que ninguno modifique el recurso. Seguirán utilizando el mismo espacio compartido hasta que un programa intente modificarlo, en cuyo caso se realizará una copia solo para ese programa , y todos los demás seguirán utilizando la copia compartida anterior; esto se denomina “copia al escribir”.

Quinto: la mayoría de los sistemas operativos existentes emplean alguna forma de almacenamiento en caché avanzado para cargar los datos que ( piensan ) serán más relevantes en el próximo paso o dos. ¿Por qué? Bueno, ya lo mencioné antes, pero permítanme decir rápidamente algo tan simple como puedo:

La memoria RAM vacía es inútil . Simplemente se sienta allí y consume energía.

La razón de esto es que si tiene RAM no utilizada, hay cosas que podría estar haciendo con ella , cosas que podría cargar en ella para acelerar lo siguiente que va a hacer en su lugar. La RAM es mucho más rápida que cualquier almacenamiento persistente: ¿por qué querría esperar a que se cargue algo, si ya puede cargarse cuando lo necesita?

La forma en que la mayoría de los sistemas operativos resuelven esto es manteniendo la parte “no utilizada” de la RAM como caché de precarga . Esta RAM se marca como “Disponible” y cada vez que un programa lo solicite explícitamente, se le dará al programa * y se marcará como “En uso” de la forma habitual, por lo que no hay pérdida asociada con su uso de esta manera.

Algunos programas también realizan sus propias estrategias de almacenamiento en caché / precarga para decidir si pueden ‘salirse con la suya’ cargando más datos por adelantado o manteniendo más datos ‘viejos’ (pero potencialmente reutilizables) durante un tiempo más. Esto es especialmente cierto para todo tipo de servicios en segundo plano que necesitan prepararse para atender consultas durante toda la sesión; a menudo basarán su uso de RAM inicial en la cantidad de RAM instalada.

Además, y quizás lo más importante: el sistema operativo también tiene la capacidad de volcar el contenido de RAM en el disco (en una operación llamada intercambio o paginación, para eso es el archivo de paginación de Windows), y lo hará siempre que haya Contenidos de RAM que no se han utilizado en una cantidad de tiempo predeterminada.

Como puede ver, no es tan claro como se le puede hacer creer. De hecho, puede hacer que el Administrador de tareas le muestre muchas otras métricas de rendimiento de todos los programas, como conjuntos privados, memoria de trabajo, tamaño de confirmación (que incluye datos que no están actualmente en la RAM), páginas de entrada / salida y similares.

El Administrador de tareas es una herramienta de informes muy compleja, pero muchos de sus detalles están inicialmente ocultos , lo que hace que parezca que los pocos datos que ve allí son los más relevantes en todo momento. Este es un error muy, muy común.

Permítanme visualizar todo esto en pasos simples (simplificados):

  • Cada vez que carga un programa que exige grandes cantidades de RAM, el sistema operativo primero le dará toda la RAM disponible. No se consumirá ningún requisito de datos que ya pueda satisfacerse con las asignaciones de memoria compartida (si ya está en RAM) y las asignaciones de disco (cuando en realidad no es necesario cargarlo en la RAM) (aunque contará para los contadores de rendimiento del programa )
  • Si su programa requiere más, una vez que se agote el espacio RAM disponible (o poco antes), el sistema operativo verificará toda la memoria que se ha distribuido en el disco y le dará eso (dado que ya está en el disco, simplemente se puede liberar de la RAM, y el sistema operativo se preocupará por eso cuando el propietario de esos datos llame.
  • Si su programa aún exige más , el sistema operativo considerará qué datos no está utilizando en este momento, pero cuáles no se han paginado, y buscará esos datos de acuerdo con algún algoritmo ** para darle la RAM lo que necesita (este es el momento en el que lo que sea que esté haciendo en este momento tiene prioridad sobre todo lo demás, cuando los recursos se agotan).
  • A medida que exija más y más, el sistema operativo necesitará intercambiar más y más contenido reciente que podría usarse en cualquier momento , lo que a menudo conduce a una paliza ***. Solo ahora ha llegado al límite de cuánto puede manejar su PC al mismo tiempo .

Solo una vez que se haya utilizado todo el espacio de intercambio, y casi toda la RAM esté en uso por las aplicaciones que está utilizando, el sistema operativo comenzará a quejarse de que tiene muy poca memoria con la que trabajar, y que debe cerrar algunos programas para liberar un poco de memoria Y con razón, porque esta es una condición peligrosamente inestable : si la próxima demanda de memoria proviene del Kernel y no se cumple, el sistema simplemente podría fallar ****.

La idea de administrar (e informar) el uso de memoria dentro de la PC no es simple, no importa cómo se mire.

En conclusión: la idea errónea más común sobre la RAM y mirarla a través del Administrador de tareas (o cualquier otra herramienta de informe de uso de memoria) es que la cantidad simple de RAM utilizada / libre es un buen indicador de la cantidad de RAM que necesita realizar una tarea. Es una guía, pero nunca sabrá si su PC realmente puede manejarlo o no antes de probarlo.


* No hay ningún costo asociado con borrarlo, ya que los programas necesitan borrar su propia memoria antes de hacer referencia de todos modos , podría haber venido de cualquier parte y podría contener cualquier cosa.

** Lo más simple podría ser “por último tiempo de acceso”: los recursos que no se han utilizado durante más tiempo se descargan primero en el disco.

*** Thrashing es un fenómeno que ocurre cuando su PC intenta usar más datos de los que tiene RAM al mismo tiempo : cargará el conjunto A, hará algo con él, luego cambiará el conjunto A por el conjunto B, hará algo con eso , y luego cambie el conjunto B por el conjunto A nuevamente … etc. Esto empeora cuanto más RAM está tratando de usar en exceso.

**** Apple macOS emplea una estrategia interesante en la que simplemente congelará el programa solicitando la mayor cantidad de memoria y exigirá que cierre algo hasta que se le permita continuar. Supongo que esto es mejor que simplemente permitir que ese programa se bloquee por sí solo, pero se convierte en un problema cuando el programa que se congela es en realidad la mayor carga de recursos en el sistema , y permitirle completar su trabajo sería la forma óptima de liberar acumular la mayor cantidad de recursos (la mayor ganancia posible) en el menor tiempo. Esto es especialmente cierto en el caso de software intensivo en gráficos como edición de video NLE (Final Cut Pro X viene a la mente …).

Para ser sincero, no hay nada de malo en mirar el administrador de tareas para averiguar el uso de la memoria. Todo el uso que muestra es exacto.

Claro que hay cosas como “Precargar porciones de aplicaciones de uso común”. Por lo tanto, usar más RAM de la necesaria, pero esto hace que la “Experiencia del usuario” sea mucho mejor en teoría, no estoy seguro de si funciona en realidad.

Seamos honestos, la RAM no es muy costosa. No es tan malo recoger la “cantidad estándar de RAM” de 8 GB. También siempre recomiendo comprar 2 palos porque cualquier marca decente viene con una garantía de por vida. Entonces, si un palo falla o está mal, entonces puede RMA el malo y todavía tener un sistema en funcionamiento.

Piense en la RAM como un grupo de agua y en todos los programas como usuarios de agua … si tiene un grupo lo suficientemente grande, todo funciona bien si no, entonces pagefile y maneje Thrashing (informática) – Wikipedia.

Espero que responda tu pregunta.