Memoria virtual de Mac: cómo hacer que OS X cree archivos de intercambio (página) tan libremente con un arranque normal como con un arranque seguro (swapfile1, etc.)

5

Fondo

Cuando mi MacBookPro 5,2 con 8 GB de memoria arranca en modo seguro veo que el sistema operativo causa dynamic_pager (8) para crear archivos de intercambio de una manera que sea relativamente sin restricciones. En el sistema de archivos que dedico a intercambiar, hermanos de

/Volumes/swap/swapfile0

se crean muy rápidamente. El uso simple de una aplicación parece resultar en más archivos de intercambio que el uso comparable de esa aplicación con un inicio normal.

El rendimiento con arranque seguro - con una masa mayor que la normal de archivos de intercambio externos - es notablemente bueno . Así que me gustaría experimentar con:

  • un enfoque igualmente sin restricciones para intercambiar archivos con un arranque normal .

Pregunta

¿Cómo puedo hacer que el sistema operativo se comporte de una manera que haga que dynamic_pager cree una masa mayor que la normal de archivos de intercambio?

Estoy preparado para aceptar los riesgos que pueden estar asociados con la afinación malvada.

Relacionado

¿Por qué podría haber más memoria conectada en modo seguro que en modo normal?

Las respuestas allí pueden ayudar a encontrar respuestas aquí.

Investigación preliminar

Corrí sysctl -a en modo normal y modo seguro. Veo diferencias pero (a menos que me esté perdiendo algo) no hay nada que explique la libertad que se asocia con un arranque seguro.

enlace por @Quantumpanda es sugerente pero la pregunta es, en cierto modo, lo opuesto a lo que quiero.

En Error del servidor, ajuste de rendimiento de FreeBSD. Sysctls, loader.conf, kernel es popular pero mucho de eso parece estar orientado a la red.

Primeros experimentos

La esencia de esta pregunta fue originalmente:

  • ¿Cómo puedo hacer que dynamic_pager se comporte con un arranque normal como se comporta con un arranque seguro ?

- y así experimenté con los valores de -S y -H .

opción dynamic_pager -S

En 2003, cuando -H y -L eran hire_point y layoff_point , el valor predeterminado file_size era 20000000 Mac OS X en pocas palabras , página 595 ). Para las versiones más recientes del sistema operativo, algunos usuarios prefieren un filesize que es aproximadamente cincuenta veces mayor, 1.07 GB en el disco:

  • 1073741824

opción dynamic_pager -H

Con y sin un valor para -S , experimenté con varios valores de high-water-trigger , incluido el sugerido por dynamicpagerwrapper:

  • 209715200

Ninguno tuvo el efecto requerido.

Referencias

¿Abordar la estrategia de intercambio y paginación obsoletas en OSX? | dropsafe (2010-03-01, actualizado en 2012)

dynamic_pager_wrapper source de dynamicpagerwrapper - contenedor de rendimiento para / sbin / dynamic_pager en OSX

En la biblioteca de desarrolladores de Mac:

pregunta Graham Perrin 14.04.2013 - 17:23

1 respuesta

1

AFAIK, la razón por la que todos esos archivos de intercambio se crearon tan rápidamente en Modo seguro es porque dynamic_pager volvió a tener un tamaño de intercambio inicial de 64 MB. ¿Cuántos archivos de intercambio viste? ¿Cuántos quieres ver? ¿Cuántos estás viendo?

Ahora mismo, en mi Mac Pro (computadora de escritorio) con SO 10.8.3, tengo 7 archivos de intercambio (numerados del 0 al 6). ¿Es eso lo que quieres? En realidad, como lo has señalado, intentaré reducirlo a 2.

Si realmente desea crear muchos archivos de intercambio, simplemente configure -S 67108864

BTW, 1073741824 = 2 ^ 30 = 1 GiB

Seguimiento

Resulta que hay un error en dynamic_pager (al menos en Mountain Lion 10.8.4) donde falla la configuración -S 2147483648 (= 2 GiB) debido a algún tipo de error de conversión de 32 bits.

Cannot extend paging file size /private/var/vm/swapfile0 to 18446744071562067968!

2147483648 como inicio de sesión de 32 bits es en realidad -2147483648 o 0x80000000 que se extiende a un número de 64 bits al extender el MSB y se convierte en 0xFFFFFFFF80000000 que luego se convierte en un bit de 64 bits sin firmar que es 18446744071562067968 o 2 GiB * 8 GiB . Loco. Entonces, después de meterse con las opciones de buscapersonas dinámicas, busque mensajes de error en los registros de la consola.

    
respondido por el Old Pro 29.04.2013 - 08:06

Lea otras preguntas en las etiquetas