¿El cambio de registro DisablePagingExecutivo tiene algún efecto real?

9

En una serie de máquinas en el pasado, en diferentes versiones de Windows (2000, XP y sin Vista), he habilitado DisablePagingExecutivo para intentar mejorar el rendimiento. En cada caso, y he tenido mucha memoria, y especialmente en el caso actual. Sin embargo, después de habilitar este ajuste de registro y reiniciar, he verificado el administrador de tareas después de un tiempo, y todavía muestro una gran parte del kernel paginado en el disco, a pesar de que tengo 2 GB de memoria física libre.

¿Alguien ha usado este ajuste con éxito? ¿Siempre? Tal vez estoy viendo el indicador incorrecto cuando reviso el administrador de tareas (pestaña Rendimiento -> sección "Memoria del kernel"), pero me gustaría evitar que Windows pagine todo lo que pueda en el disco, especialmente teniendo en cuenta la cantidad de memoria proporcionada en escritorios en estos días. Parece que debería existir una opción de "No paginar en el disco a menos que haya una presión de memoria extrema". ¿Existe alguna?

SqlRyan
fuente

Respuestas:

13

Hay una enorme cantidad de confusión en Internet con respecto a esta función. La configuración afecta solo a una parte del núcleo conocida como ejecutiva, y luego solo a las partes que son paginables. Hay otras partes del núcleo que no se ven afectadas por esta configuración.

La paginación del núcleo funciona de la misma manera que cualquier otra paginación. El código y los datos a los que se accede con frecuencia se mantendrán en la RAM, mientras que el resto permanecerá en el disco, donde pertenece. El sistema no eliminará ninguna porción del núcleo de la RAM a menos que haya encontrado un mejor uso para él. Microsoft ha dedicado una enorme cantidad de investigación y pruebas a los sistemas de paginación.

En el contexto del núcleo "No paginado" significa código y datos que nunca se pueden paginar bajo ninguna circunstancia. "Paginado" significa código y datos que PUEDEN ser paginados si es necesario. La cantidad de IS paginada es imposible de saber desde el Administrador de tareas. En primer lugar, una parte del código que se paginó nunca se leyó del disco porque aún no era necesario. No se accede con frecuencia a todo el núcleo. No debe esperar que los números paginados y no paginados se vean afectados por la configuración en cuestión.

Nota: cuando el código se paginó, normalmente no se copia en el archivo de paginación. Esto no es necesario, ya que simplemente se puede volver a cargar desde los archivos originales. Esto se aplica a la mayoría del código, no solo al kerenl.

Con una cantidad razonable de RAM, la configuración no hará prácticamente nada. Simplemente evita que el sistema pagine los datos que de todos modos no quería distribuir.

Larry Miller
fuente
4

No estoy seguro si se da cuenta de esto, pero las fallas de página son el mecanismo que Windows usa para cargar el código ejecutable. Entonces, por ejemplo, una DLL se asigna a la memoria virtual, y luego se usan fallas de página para realizar la carga real desde el disco según sea necesario. El archivo de paginación no está involucrado en esto.

Por lo tanto, mucho de lo que piensas como "paginado en el disco" podría ser cosas que estaban en el disco en primer lugar.

Will Dean
fuente
No me di cuenta de eso, y tiene sentido, aunque no creo que responda a mi pregunta. Si desactivo la paginación del kernel de Windows, ¿por qué mi administrador de tareas continúa diciéndome que el 75% está paginado (un total de 400 MB con 275 MB paginado)? Esto tampoco responde a mi pregunta sobre por qué Windows parece paginar tanto cuando todavía hay varios GB de RAM libres.
SqlRyan
1
Está leyendo 'paginado' como 'memoria grabable que ha sido paginada', mientras que en el contexto de la memoria del núcleo, 'paginado' significa 'podría ser paginado' y 'no paginado' significa 'nunca será paginado -fuera'. Esto último es importante para la programación de KM cuando necesita memoria en circunstancias en las que el sistema de localización no puede funcionar (interruptores de manejo, por ejemplo).
Will Dean
En el contexto de los términos que está utilizando (no soy un desarrollador de kernel, así que no sé nada mejor), esperaría que este cambio en el registro marque todo el kernel como "no paginado" (lo que significa " nunca ser paginado "), y eso no es lo que hace. Solo quería ver si otros tenían las mismas expectativas que yo, o si estaba interpretando mal lo que se suponía que debía hacer este cambio.
SqlRyan
3

Solo para agregar un uso adicional de esta configuración: es necesario al xperfcaminar sobre la pila.

http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

Desactivar Ejecutivo de paginación

Para que el seguimiento funcione en Windows de 64 bits, debe configurar la clave de registro DisablePagingExecutivo. Esto le indica al sistema operativo que no busque controladores de modo kernel y código de sistema en el disco, lo cual es un requisito previo para obtener pilas de llamadas de 64 bits utilizando xperf, porque el recorrido de la pila de 64 bits depende de los metadatos en las imágenes ejecutables, y en algunas situaciones el El código de recorrido de la pila xperf no puede tocar páginas paginadas.

Una pieza adicional de información sobre la configuración. Esta cita se puede encontrar en Internet, no sé cuál es su fuente principal.

DisablePagingExecutivo se aplica solo a ntoskrnl.exe. No se aplica a win32k.sys (¡mucho más grande que ntoskrnl.exe!), Las porciones paginables de otros controladores, el grupo paginado y, por supuesto, la caché del sistema de archivos. Todos los cuales viven en el espacio de direcciones del kernel y están paginados en el disco. En sistemas con poca memoria, esto puede obligar a que el código de la aplicación se pagine innecesariamente y reducir el rendimiento. Si tiene más que suficiente RAM para su carga de trabajo, sí, esto no va a doler, pero, de nuevo, si tiene más que suficiente RAM para su carga de trabajo, el sistema no está paginando mucho de esas cosas de todos modos. Esta configuración es útil al depurar controladores y generalmente se recomienda su uso solo en servidores que ejecutan un conjunto limitado de aplicaciones bien conocidas

Por lo tanto, se puede concluir que, además del xperfuso, su beneficio es oscuro: esencialmente limita algunas cosas "casi aleatorias" de la paginación y el pensamiento posterior; en consecuencia, hace que se pague algo más con más frecuencia.

Roland Pihlakas
fuente
2

El ajuste DisablePagingExecutivo no detiene la paginación, su propósito era evitar que el "Ejecutivo" (es decir, el Kernel mismo) se localice y, por lo tanto, provoque la desaceleración de todo el sistema, no solo las aplicaciones de paginación individuales.

Puede intentar deshabilitar la paginación por completo eliminando todos los archivos de página en Propiedades del sistema (o en HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles). Esto funciona bien para mí, pero las cosas se vuelven bastante desagradables cuando te quedas sin memoria física, y debes tener un archivo de página para depurar errores STOP.

Froosh
fuente
He estado ejecutando sin archivo de paginación durante unos días y funciona bastante bien, Windows 7 en realidad ofrece sugerencias de aplicaciones hambrientas de memoria para matar cuando comienza a agotarse.
Froosh
1

Los componentes a nivel de sistema, como los controladores de kernel, ejecutivo y de dispositivo, pueden asignar memoria de dos grupos. Estos son el grupo paginado, que se puede paginar a discreción de los administradores de memoria, y el grupo no paginado que debe permanecer en la RAM en todo momento. El desarrollador decide según sus necesidades qué grupo se utilizará. Se recomienda que el grupo paginado se use siempre que sea posible, ya que esto permite que el administrador de memoria del sistema tenga la máxima flexibilidad. Ambas agrupaciones son de tamaño limitado y, en sistemas de 32 bits en particular, estos límites pueden plantear un problema. La piscina paginada es considerablemente más grande. Si el grupo no paginado se usara en exceso, se podría alcanzar el límite de tamaño y esto causará algunos problemas serios en el sistema.

Los elementos etiquetados en el Administrador de tareas como memoria de kernel "paginado" y "no paginado" muestran las asignaciones de estos grupos. No tiene absolutamente nada que ver con el estado dinámico de cuánta memoria está paginada realmente. La entrada de registro "DisablePagingExceutive" influye en el estado de paginación dinámica de una parte del grupo paginado, por lo que ask Manager nunca mostrará sus efectos.

Larry Miller
fuente
1

Si realiza un cambio en la configuración del sistema, debe comprender esta información o su equivalente para saber qué tipo de resultados produce un cambio en la configuración del sistema, donde los resultados pueden ser positivos, neutrales o negativos con respecto a rendimiento de sistema.

Lo que puede hacer es abrir "Monitor de recursos" en Windows. Vaya a la herramienta de búsqueda y busque 'Monitor de recursos'. O abra la herramienta de comando de ejecución (supondré que cualquiera que lea esto sepa cómo hacerlo) y escriba 'resmon'.

Use esta herramienta para monitorear todo tipo de actividad del sistema, como la actividad de la CPU, la actividad de la memoria y la actividad del disco duro. Si aún no está familiarizado con la información que contiene el 'Monitor de recursos', estudíelo un poco porque necesitará estar familiarizado con él para ejecutar pruebas que lo ayudarán a medir el tipo de resultados que produce un cambio en la configuración de un sistema.

La idea básica es que ejecute 'Monitor de recursos' cuando el sistema de su computadora ejecute ciertas tareas para medir los resultados relacionados con el rendimiento que produce un cambio en la configuración del sistema. Ejecute tareas que utilicen los recursos del sistema de los que intenta probar el rendimiento. Por ejemplo, hay tareas que pueden probar el procesador, la memoria RAM, los discos duros, la unidad de procesador de gráficos o un dispositivo de red. Use google para averiguar cómo probar el rendimiento de los recursos informáticos que desea probar.

Si, por ejemplo, realiza un cambio en la configuración del sistema, 'Desactivar ejecutivo de paginación' puede ejecutar una prueba en los recursos de la computadora y usar 'Monitor de recursos' para medir qué tipo de resultados produce el cambio (si es que hay algún cambio).

Luego haga una comparación entre los datos y vea si hay diferencias significativas entre la configuración del sistema anterior y la nueva configuración del sistema que cambió.

Es posible que no siempre necesite usar 'Monitor de recursos', ya que algunos métodos para probar el rendimiento de los recursos del sistema vienen con un software que monitorea y mide por usted.

El punto es que desea seguir un método sistemático para ver si un cambio hace algo para el rendimiento de su sistema en relación con las tareas que solicita que realice la computadora.

Cambiar una configuración. Pruébelo para el cambio de rendimiento. Determinar los resultados de la prueba. En función de los resultados, decida si cambiará la configuración a lo que era, o a otra cosa, o la dejará donde está. 1) Configuración 2) Prueba 3) Resultados 4) Decisión.

Puede utilizar este método de deducción lógica para todo tipo de ajustes de configuración del sistema, incluido 'Desactivar Ejecutivo de paginación'.

Felices retoques.

WestdoX
fuente
1

¡Hay mucho! De muy buena información sobre esta publicación, me impresionó. He notado que DisablePagingExecutivo con un valor de uno se realiza mejor en el primer sitio del escritorio después de una instalación limpia de cualquier versión de Windows desde XP a Windows 10, de 32 bits a 64 bits (siempre que haya suficiente memoria RAM en su placa base) pero después de que se aplica el valor de 1 a DisablePagingExecutivo, también se debe hacer el mismo valor en LargeSystemCache.

Además, como se mencionó anteriormente, estos ajustes generalmente se realizan en los servidores de Windows, pero también son útiles cuando se depura.

Estas modificaciones se usan bajo su propio riesgo, así que tenga en cuenta lo que todos han mencionado anteriormente y no le hace daño a Google cada una de las claves mencionadas que fueron DisablePagingExejecutivo y 1 no recuerdo haber visto ... LargeSystemCache.

Asegúrate de tener suficiente carnero. La falta de RAM causa problemas en su sistema con los que no desea lidiar y probablemente causaría una pantalla azul (bsod) en su sistema.

4 gb de ram será el mínimo al que aplicaría estos ajustes anteriores y eso si no usa aplicaciones intensas que usan mucho ram o si hace algún juego, si lo hace, es mejor dejarlos en paz.

(XP: al menos 256 mb de RAM mínimo)

Antes de hacer nada en el registro, es una buena idea subir el registro a un dispositivo de almacenamiento, en lugar del disco duro del sistema operativo o un almacenamiento separado de CUALQUIER tipo, para que pueda restaurar el registro si lo necesita.

La información sobre mí realmente cruza las T y puntúa las i.

                    Make sure to backup your system.
Smirk24
fuente