¿Desactivar el paginador dinámico de Mac?

¿Desactivar el paginador dinámico de Mac?

Leí esta publicación de blog sobre la administración de memoria en Mac OS X:http://workstuff.tumblr.com/post/20464780085/something-is-deeply-broken-in-os-x-memory-management

Me gustaría tu opinión al respecto.

Tengo "sólo" 4 GB de memoria, por lo que existe la posibilidad de que se produzca un pánico en el kernel.

Tengo un disco giratorio (a diferencia de un SSD) y ocasionalmente veo pelotas de playa, a veces incluso hago girar mi disco duro externo antes de continuar.

pantalla del monitor de actividad

Dice que no se utiliza ningún intercambio en este momento, ¿eso significa que deshabilitar Dynamic_pager no hará nada? Tiene algunas entradas de página.

¿Qué tan seguro es simplemente probarlo? ¿Quizás podría escribir un script que vuelva a habilitar el buscapersonas cuando la memoria se agote?

[actualización]: Fin del día, intercambio de 26 MB, muchas más entradas y salidas de páginas y mucha memoria inactiva.

Respuesta1

OS X tiene tres problemas que contribuyen a esto:

  1. De forma predeterminada, cualquier dato escrito o leído desde el disco se almacena en caché en la RAM con una prioridad más alta que los datos recientes del programa. Las aplicaciones pueden desactivar esto según el descriptor con la F_NOCACHEopción fcntl(), pero pocas lo hacen. Como resultado, una gran cantidad de actividad en el disco hace que se intercambie la memoria que no se está utilizando en ese momento. Eso crea más actividad en el disco tanto para el intercambio como para la lectura de esa memoria momentos después, además de la actividad del disco original.

  2. HFS+ no maneja bien el acceso simultáneo a archivos. En particular, abrir y cerrar muchos archivos diferentes a la vez crea una tremenda contención y prácticamente sólo puede ocurrir una operación de apertura/cierre a la vez.

  3. Muchas aplicaciones de OS X distribuyen su acceso al disco entre muchos archivos pequeños.

Como resultado, cuando dos o más aplicaciones intentan acceder a muchos archivos a la vez, la carga de E/S del disco aumenta exponencialmente a medida que la actividad de intercambio compite con las aplicaciones por la E/S.

Deshabilitar el buscapersonas dinámico podría evitar la primera parte de esa curva exponencial al eliminar la capacidad de enviar páginas de aplicaciones privadas/sucias al disco. En cambio, es probable que el sistema elimine páginas de archivos mapeados públicos/limpios (ejecutables, bibliotecas, etc.) y de datos de archivos almacenados en caché que probablemente no deberían haberse almacenado en caché en primer lugar. Si esto realmente mejora o no el rendimiento dependerá en gran medida de las aplicaciones que esté utilizando. Safari, por ejemplo, es extremadamente malo a la hora de gestionar la E/S de su disco, así que imagino que esto ayudaría.

El problema ocurriría si la cantidad de RAM necesaria realmente excede la cantidad disponible: una caída de pánico es una forma muy abrupta de terminar el día. Pero si no estás editando archivos grandes o haciendo cosas inherentemente intensivas en memoria, esto podría ser lo suficientemente raro como para considerar arriesgarte.

Por cierto, puede usar el lsofcomando para ver qué archivos abren qué procesos y el fs_usagecomando para ver un registro en ejecución de las operaciones de archivos. Ambos funcionan mejor cuando se ejecutan como root o mediante sudo.

información relacionada