Administrador de memoria y caché del sistema de Windows: paginación, combinación de páginas y escritura diferida
En esta página
Respuesta breve
Sección titulada «Respuesta breve»En esta serie se comprobaron siete parámetros de paginación, combinación de páginas idénticas, montones del kernel y caché de archivos. En Windows 11 25H2 se encontró el código de lectura de cada uno de ellos. La utilidad práctica depende del parámetro y de las condiciones de funcionamiento.
DisablePageCombining desactiva la combinación de páginas en segundo plano: el administrador de memoria deja de realizar esta tarea, pero el consumo de RAM puede aumentar. DisablePagingExecutive mantiene el código de controladores paginable en la memoria física; la utilidad suele ser escasa. Los demás parámetros solo son aplicables a tareas concretas del kernel o de los dispositivos de almacenamiento, o ya tienen valores predeterminados adecuados en 25H2.
Qué se comprobó
Sección titulada «Qué se comprobó»Para cada valor se comprobó:
- la ruta exacta en el Registro y el tipo;
- el valor predeterminado definido por el código de Windows 11 25H2;
- los valores relacionados del mismo subsistema;
- el código de lectura del sistema y el momento de su ejecución;
- las restricciones de rango, la conversión de valores y las unidades de medida;
- el efecto directo y los límites de aplicabilidad.
Además del código de lectura, comprobamos dónde se aplica el parámetro, qué consecuencias tiene su modificación y en qué escenarios puede ser útil. La mera existencia del parámetro no basta para recomendarlo.
Ámbito de la investigación y evidencia
Sección titulada «Ámbito de la investigación y evidencia»- Windows 11 25H2 x64, build
26200.9168. - Los parámetros del kernel se cotejaron con la tabla principal de configuración
ntoskrnl.exey con el código de su aplicación en Memory Manager y Cache Manager. - Los accesos durante el funcionamiento se comprobaron mediante el seguimiento del Registro del sistema. Las lecturas en la fase 0 y al inicio de la fase 1 pueden faltar en un seguimiento de arranque normal: el controlador de seguimiento empieza a registrar más tarde.
- Para los procesos de usuario se comprobó por separado la lectura del valor en
ntdll.dll. ParaHeapDeCommitFreeBlockThresholden 25H2 se encontró la lectura en el kernel, pero los montones de los procesos de usuario no usan este parámetro. - El análisis estático de los componentes del sistema no sustituye la repetición en un PC físico, otra build u otro tipo de dispositivo de almacenamiento.
Parámetros canónicos
Sección titulada «Parámetros canónicos»| Registry path | Value | Type | Default Windows 11 25H2 | Применение |
|---|---|---|---|---|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management |
DisablePagingExecutive |
REG_DWORD |
0 |
Paginación del código paginable de los controladores del sistema |
| тот же путь | DisablePageCombining |
REG_DWORD |
0 |
Combinación en segundo plano de páginas físicas idénticas |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager |
HeapDeCommitFreeBlockThreshold |
REG_DWORD |
0x1000 (4 KB) para kernel heap |
Umbral de decommit de bloques libres del kernel-mode heap |
| тот же путь | ModifiedWriteMaximum |
REG_DWORD |
1 unidad = 1 MB |
Límite superior del modified page writer tras el clamp |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management |
EnableAsyncLazywrite |
REG_DWORD |
2 |
Modo asíncrono de Cache Manager |
| тот же путь | CacheUnmapBehindLengthInMB |
REG_DWORD |
8 MB |
Ventana de unmap por detrás de la lectura secuencial |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
SplitLargeCaches |
REG_DWORD |
0 |
Representación de la cache topology entre processor groups |
DisablePagingExecutive
Sección titulada «DisablePagingExecutive»Qué hace
Sección titulada «Qué hace»Con 0 el administrador de memoria de Windows puede descargar a almacenamiento de reserva las secciones de código del sistema y de controladores que lo permitan. Con 1 el código paginable de los controladores del sistema se mantiene en la memoria física.
El código de lectura se encontró en ntoskrnl.exe en una etapa temprana de la inicialización del kernel. El valor se usa en MmResetDriverPaging, MmPageEntireDriver y al cargar imágenes del sistema. Se aplica antes de que comience el seguimiento normal del Registro por parte del usuario. Para aplicar el nuevo estado se requiere un reinicio.
Valores y restricciones
Sección titulada «Valores y restricciones»0: estado estándar de Windows, la paginación está permitida.1: las secciones paginables de los controladores del sistema se mantienen en la RAM.- El ajuste consume RAM para reducir las cargas posteriores del código del sistema de vuelta a la memoria; el disco en sí no se vuelve más rápido.
Utilidad
Sección titulada «Utilidad»El ajuste evita la descarga y carga posteriores de estas secciones de controladores. No desactiva ningún hilo de CPU comprobador permanente independiente. En un sistema moderno con suficiente volumen de RAM la utilidad suele ser muy escasa: el código puede permanecer mucho tiempo en memoria incluso sin el ajuste. Cuando falta RAM, su retención forzada agrava el déficit de memoria.
La lectura del parámetro y la dirección del efecto del sistema están confirmadas por el código de ntoskrnl.exe.
DisablePageCombining
Sección titulada «DisablePageCombining»Qué hace
Sección titulada «Qué hace»Con 0 el administrador de memoria inicia una tarea en segundo plano que busca y combina páginas físicas idénticas. Con 1 esta tarea no realiza la combinación.
En ntoskrnl.exe se encontró el código de combinación de páginas en segundo plano con la etiqueta de pool MmCb, lo que confirma la existencia del mecanismo.
Valores y restricciones
Sección titulada «Valores y restricciones»0: la combinación de páginas está permitida, estado estándar de Windows.1: la combinación está desactivada.- La desactivación reduce el trabajo en segundo plano del administrador de memoria, pero puede aumentar el consumo de RAM.
Utilidad
Sección titulada «Utilidad»La desactivación es útil si la combinación de páginas crea una carga en segundo plano notable y el sistema tiene RAM libre. Normalmente esta tarea es poco activa, por lo que el efecto es muy pequeño. Con un volumen de memoria limitado, el ahorro de RAM de la combinación es más útil que el tiempo de procesador ahorrado.
El código de lectura y de la tarea en segundo plano está confirmado en ntoskrnl.exe. Microsoft describe la combinación de páginas y el compromiso entre el trabajo del procesador y el ahorro de RAM.
HeapDeCommitFreeBlockThreshold
Sección titulada «HeapDeCommitFreeBlockThreshold»Qué hace
Sección titulada «Qué hace»El valor define el umbral de liberación de memoria asignada (decommit) para un bloque libre del montón del kernel. Con un umbral mayor, estas operaciones para bloques libres grandes ocurren con menos frecuencia.
En Windows 11 25H2 el código de lectura se encuentra en ntoskrnl.exe, y la aplicación del parámetro está relacionada con la función del kernel RtlCreateHeap. En ntdll.dll no se encontró el código de lectura correspondiente para los montones de procesos normales.
Valores y restricciones
Sección titulada «Valores y restricciones»- Valor predeterminado en el código para el montón del kernel:
0x1000(4 KB). 0x40000(256 KB) es un umbral admisible para el montón del kernel.- Documentos históricos de Microsoft describían un escenario user-mode del mismo nombre de versiones antiguas de Windows, por lo que no se puede trasladar automáticamente a Windows 11 25H2.
Utilidad
Sección titulada «Utilidad»Para las aplicaciones normales prácticamente no hay utilidad: sus montones no usan este valor. El parámetro solo puede cambiar la frecuencia de liberación de memoria en el montón del kernel. Sin un problema medido precisamente con él, el efecto esperado es muy pequeño.
La lectura en modo kernel está confirmada en ntoskrnl.exe. El efecto para los procesos de usuario en 25H2 no está confirmado.
ModifiedWriteMaximum
Sección titulada «ModifiedWriteMaximum»Qué hace
Sección titulada «Qué hace»El parámetro define el límite superior para el mecanismo de escritura de páginas modificadas (modified page writer). En el código se usan unidades de 256 páginas, es decir, una unidad equivale a 1 MB.
Normalización en Windows 11 25H2:
0se convierte en1unidad, es decir, 1 MB;- los valores mayores que
0x40se limitan a0x40; - el límite efectivo máximo es de 64 MB, o 16 384 páginas.
El mecanismo comienza la escritura activa aproximadamente al alcanzar una cuarta parte del límite definido. Aumentar el límite cambia el momento de inicio de la escritura y el volumen de páginas modificadas acumuladas. La velocidad del disco en sí no aumenta por ello.
Utilidad
Sección titulada «Utilidad»Con un límite mayor se acumulan más páginas modificadas antes del inicio de la escritura activa. La escritura puede iniciarse con menos frecuencia, pero crecen el volumen de datos aún no guardados y el tamaño de la siguiente porción de escritura. Si no hay un problema concreto con la escritura, deje el valor predeterminado. El límite efectivo está restringido a 64 MB.
El código de lectura, las unidades de medida y la restricción de rango están confirmados en ntoskrnl.exe. El parámetro del mismo nombre de documentos antiguos de Microsoft sobre BitLocker pertenece a otro subsistema; estos documentos no se usan aquí como fuente.
EnableAsyncLazywrite y valores relacionados
Sección titulada «EnableAsyncLazywrite y valores relacionados»Qué hace
Sección titulada «Qué hace»EnableAsyncLazywrite controla la escritura diferida asíncrona de Cache Manager. En el código de 25H2 está definido el valor predeterminado 2: este modo ya está activado.
Valores relacionados del mismo subsistema:
| Value | Default 25H2 | Роль |
|---|---|---|
EnableAsyncLazywrite |
2 |
Modo async lazy-write general |
EnableAsyncLazywriteMulti |
2 |
Modo multi-volume adyacente |
EnablePerVolumeLazyWriter |
2 |
Per-volume lazy writer |
0 desactiva la escritura diferida asíncrona. Para 1 se requiere el modo de un controlador de escritura diferida independiente en cada volumen. 2 activa el modo asíncrono sin este requisito. Cache Manager relee los valores al trabajar con la configuración de volúmenes.
Utilidad
Sección titulada «Utilidad»La escritura explícita de 2 repite la configuración estándar de Windows 11 25H2 y no mejora nada adicionalmente. El ajuste es adecuado ante todo para diagnóstico: el valor 0 permite desactivar el mecanismo activo por defecto.
La lectura se observó en el seguimiento del sistema y está confirmada en ntoskrnl.exe. El valor predeterminado 2 está confirmado por el código y por una descripción independiente de los parámetros del Registro elaborada a partir de resultados de ingeniería inversa.
CacheUnmapBehindLengthInMB
Sección titulada «CacheUnmapBehindLengthInMB»Qué hace
Sección titulada «Qué hace»El parámetro define la distancia en megabytes tras la cual Cache Manager libera las vistas en caché que quedaron por detrás de la posición actual de lectura secuencial.
El código de lectura y aplicación del parámetro se encuentra en ntoskrnl.exe y se invoca al mapear y leer la caché. El parámetro se refiere a la lectura secuencial de archivos grandes; no desactiva toda la caché de archivos.
Valores y clamp
Sección titulada «Valores y clamp»0o un valor mayor que128es sustituido por el código por8.- Rango de trabajo:
1..128MB. - Default del código:
8MB. - Las unidades del Registry value son precisamente MB, no bytes.
Utilidad
Sección titulada «Utilidad»El parámetro solo tiene sentido para tareas especializadas de lectura secuencial de archivos grandes. Con una ventana mayor, el mapeo de la caché por detrás de la posición actual se conserva más tiempo; con una menor, se libera antes. Para el trabajo normal es adecuado el valor estándar 8 MB; la utilidad del ajuste manual suele ser escasa.
El código de lectura, aplicación y restricción de rango está confirmado en ntoskrnl.exe. No se encontró documentación pública moderna de Microsoft para este parámetro interno.
SplitLargeCaches
Sección titulada «SplitLargeCaches»Qué hace
Sección titulada «Qué hace»Con 0 la API de descripción de la topología de caché devuelve una única entrada para la estructura correspondiente que abarca varios grupos de procesadores. Con 1 las entradas se dividen por grupos de procesadores.
El código de lectura se encuentra en ntoskrnl.exe. El parámetro se usa al procesar la relación RelationCache en KeQueryLogicalProcessorRelationship.
Solo cambia la descripción de la topología que devuelve la API del sistema. Los bloques físicos de memoria asignados no se dividen, y la probabilidad de falta de un bloque contiguo por sí sola no disminuye.
Valores y restricciones
Sección titulada «Valores y restricciones»0: valor predeterminado.1: dividir las entradas de topología por grupos de procesadores.- El efecto práctico es posible ante todo en sistemas con varios grupos de procesadores, normalmente con más de 64 procesadores lógicos.
- En un sistema normal de un solo grupo no hay efecto.
Utilidad
Sección titulada «Utilidad»El parámetro solo es necesario para programas que solicitan la topología de caché en una máquina con varios grupos de procesadores. No cambia el funcionamiento de la caché ni la asignación de memoria. Para un ordenador de sobremesa normal no hay utilidad.
El código de lectura y aplicación está confirmado en ntoskrnl.exe. El valor y la finalidad se cotejaron con la descripción pública de ingeniería inversa KiSplitLargeCaches.
Utilidad general
Sección titulada «Utilidad general»| Параметр | Практическая оценка |
|---|---|
DisablePagingExecutive |
Normalmente aporta muy poca utilidad, manteniendo más código en RAM |
DisablePageCombining |
Útil con una carga confirmada de combinación de páginas en segundo plano y un gran margen de RAM |
HeapDeCommitFreeBlockThreshold |
Actúa solo en el kernel; para las aplicaciones normales no hay utilidad práctica |
ModifiedWriteMaximum |
Cambia las condiciones de escritura de las páginas modificadas; sin un problema detectado deje el valor estándar |
EnableAsyncLazywrite |
El valor estándar 2 ya activa el mecanismo; la escritura repetida no mejora nada |
CacheUnmapBehindLengthInMB |
Ajuste de lectura secuencial; los 8 MB estándar son adecuados para el trabajo normal |
SplitLargeCaches |
Cambia la descripción de la topología para varios grupos de procesadores; en un sistema normal no hay efecto |
Qué está confirmado y qué no se midió
Sección titulada «Qué está confirmado y qué no se midió»Están confirmados las rutas, los tipos, los valores predeterminados, el código y el momento de lectura de los parámetros indicados arriba, así como las restricciones de rangos. Los resultados se refieren a Windows 11 25H2 build 26200.9168. El comportamiento puede diferir con otra actualización de Windows, volumen de RAM, tipo de dispositivo de almacenamiento o topología de CPU.
Cómo repetir la parte dinámica de las observaciones — véase Cómo comprobarlo por tu cuenta.
Restauración del estado
Sección titulada «Restauración del estado»Para revertir, devuelva los valores estándar de los parámetros o elimine las entradas opcionales. Parte de los valores se aplican en el siguiente arranque de Windows.
La investigación y las herramientas usadas en ella pertenecen al desarrollador de BoosterX, por lo que el desarrollador tiene un interés directo en los resultados. La metodología y los límites de aplicabilidad se describen en este artículo; las conclusiones pueden comprobarse con datos abiertos y las fuentes públicas enumeradas a continuación.
Fuentes públicas
Sección titulada «Fuentes públicas»- Memory combining, Microsoft Learn: finalidad de page combining y el trade-off CPU/RAM, comprobado el 2026-09-01.
- Registry key that controls device driver and system code pagination to disk, Microsoft archive: semántica de
DisablePagingExecutive, comprobado el 2026-09-01. - HeapDeCommitFreeBlockThreshold, KB315407, documentación histórica de Microsoft: antiguo escenario user-mode y umbral de 256 KB, comprobado el 2026-09-01.
- Windows system configuration descriptions, descripción pública de RE de
SplitLargeCaches, comprobado el 2026-09-01.
Las afirmaciones sobre el código se comprobaron mediante análisis estático de los componentes del sistema de Windows 11 25H2. El código descompilado, los desplazamientos, los seguimientos originales y los materiales internos no se publican.
Fuentes públicas comprobadas: 2026-09-02.
Historial de cambios
Sección titulada «Historial de cambios»- 2026-09-20: añadido el descargo de responsabilidad sobre el conflicto de intereses y el enlace a la comprobación independiente de las observaciones dinámicas en la metodología.
- 2026-09-02: primera publicación; confirmados las rutas, los defaults, los clamps y el código de lectura de los parámetros, añadidos los límites de la utilidad práctica.
