Identificar/resolver cuellos de botella de memoria

La verdad es que la causa más común de esos cuellos de botella es la falta de memoria, aumentarla siempre viene bien 🙂


Windows Server 2003 divide la memoria en paginada y no paginada. La RAM paginada es la memoria virtual donde tenemos un rango de direcciones de memoria completo y que está disponible para todas las aplicaciones. Windows lo lleva a cabo dándole a cada aplicación un rango de memoria privado llamado espacio de memoria virtual y mapeándola hacia la memoria física


La RAM no paginada no usa este tipo de configuración. Los datos que se emplazan dentro deben permanecer en élla y no pueden ser escritos o recuperados desde el disco. Por ejemplo, estructuras de datos que usan las rutinas de interrupción o las que previenen los conflictos de multiprocesador.


El sistema de memoria virtual combina la memoria física, el archivo de caché del sistema y el disco para el sistema de almacenamiento y recuperación. El sistema almacena el código del programa y sus datos en el disco hasta que se necesitan, y entonces los mueve a la memoria física. Aquél código o aquéllos datos menos usados se escriben en el disco. Sin embargo, cuando un equipo no dispone de suficiente memoria, el código y datos se escriben/recuperan con mayor frecuencia desde el disco, ralentizandose y provocando un cuello de botella.


Uno de los mejores indicadores de la existencia de un cuello de botella de memoria son los fallos de página, que ocurren cuando los datos de un programa no se encuentran en el espacio de trabajo de la aplicación (parte de la memoria física que ve el programa) o almacenados en la memoria física y deben recuperarse desde el disco.  Si dichos errores se producen con una tasa superior a 5 por segundo es un indicador claro del cuello de botella.


Los contadores de rendimiento de memoria nos servirán para determinar si la memoria está causando cuellos de memoria en el sistema.


Los contadores son de dos tipos, el primero es un contadores de medida o tasa que muestran una media de lo contado y el segundo un contador instantáneo, que muestra la medida más reciente.



  • Páginas/segundo: Número de páginas solicitadas que no están disponibles en RAM y fueron accedidas desde el disco o se escribieron en el disco para hacer hueco en la RAM para otras páginas. Una medida continuada superior a 5 por segundo es mal indicador.

  • Bytes disponibles: Cantidad de memoria física disponible. Normalmente el valor es bajo ya que Windows Disk Cache Manager usa memoria extra para su trabajo. Sin embargo, si el valor está por debajo del 5% de continuo es un indicador de un excesivo paginamiento.

  • Bytes asignados: Cantidad de memoria virtual que está asignada hacia parte de la memoria física para almacenamiento de espacio de paginamiento. Si la cantidad es mayor que la memoria física, se necesita más memoria RAM.

  • Pool Nonpages Bytes: Cantidad de RAM en el sistema de area de memoria no paginada, espacio adquirido por los componentes del sistema operativo para sus tareas. Un aumento de la cantidad sin un aumento de la actividad significa algún proceso en ejecución inconsistente, debería comprobarse y ser detenido.

  • Page Faults/sec: Número de veces que una página virtual no se encontró en la memoria. Si supera las 5 de manera continuada significa que demasiada memoria ha estado destinada para una aplicación e insuficiente para el servidor.

En el administrador de tareas, usar el contador de uso de memoria PF. Este contador enseña la cantidad de paginación usada por el sistema. Un incremento constante indica que algún proceso tiene la memoria ocupada.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *