¿Por qué deshabilitaría el archivo de intercambio en Mac OS X?

51

Me encontré con un hilo sobre la instalación de una unidad SSD en MacBook Pro.
Alguien en los comentarios también recomendó desactivar el archivo de intercambio, pero no dijo por qué:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

Me pregunto por qué uno querría deshabilitar el archivo de intercambio en Mac OS X.
¿Aumenta el rendimiento? ¿Estabilidad?
¿Alguna desventaja?

Finalmente, ¿tiene sentido deshabilitar el archivo de intercambio cuando no se usa SSD?

Dan
fuente
11
A menudo, los menos informados lo deshabilitan porque escucharon en algún blog que el rendimiento se disparó. Los SSD también proporcionan un buen banco de pruebas porque son inherentemente rápidos. No hagas esto. Disminuirá la estabilidad y con el tiempo dará lugar a efectos catastróficos. Hasta el día de hoy, no he visto ningún dato real (válido y confiable) que muestre un aumento en el rendimiento. Y es un componente crítico de un sistema operativo, ya sea que tenga 2 GB o RAM o 120.
2
¿Qué efectos catastróficos? Simplemente curioso ... parece estar haciendo que mi máquina (MacBook Pro de 4 GB) sea mucho más rápida. Por ejemplo, cuando abro nuevas ventanas de terminal ya no hay ningún bloqueo ... es instantáneo donde tomó varios segundos antes. Y pude abrir el doble de aplicaciones que usaría normalmente y no pasó nada malo.
orange80
44
orange80: La causa habitual de las ventanas de terminal lentas es el proceso de inicio de sesión que busca el inicio de sesión anterior, que puede solucionarse mediante hushlogin: apple.stackexchange.com/a/54167/22570 : ¿se reinició después de cambiar la configuración de intercambio, tal vez ? No hay razón para que la velocidad de la ventana de terminal se mejore al eliminar el intercambio.
Ken
Entiendo que con un SSD de pequeña capacidad, es posible que desee liberar espacio. Pero por el lado del rendimiento, los SSD son mucho más rápidos que los HD, por lo que no veo cómo deshabilitar el intercambio en un sistema operativo basado en SSD realmente mejoraría el rendimiento. ¿Alguna experiencia en eso? Gracias.
1
En Super Usuario, con una respuesta aceptada: ¿ Deshabilitar el Dynamic_pager de Mac? (2012-04-27)
Graham Perrin

Respuestas:

39

me pregunto por qué uno querría deshabilitar el archivo de intercambio en Mac OS X. ¿Aumenta el rendimiento? ¿Estabilidad? ¿Alguna desventaja?

Supongo que la gente lo haría para una unidad SSD porque esas unidades no tienen la misma vida útil que las unidades de disco giratorio magnético estándar. Hay un número más limitado de ciclos de escritura, por lo que, presumiblemente, usarlos con un archivo de intercambio agotaría estos ciclos más rápidamente.

Finalmente, ¿tiene sentido deshabilitar el archivo de intercambio cuando no se usa SSD?

Si tiene mucha RAM, esto podría acelerar el rendimiento, pero no es una buena idea en general. Si te topas con el límite de la memoria, las cosas se volverán inestables.

Además, la memoria cableada no se libera cuando deja de ser válida, solo se libera cuando se activa un evento de salida de página, lo que no sucederá si la Memoria virtual está desactivada. Por lo tanto, no tardará mucho en engullir toda su memoria, incluso si ya no se usa.

ghoppe
fuente
44
El sistema de memoria virtual mac es muy vago porque solo crea los archivos de intercambio físico cuando es el momento de cambiar la memoria real. Cualquiera sea la velocidad que pueda ver al no tener que retrasar las cosas para acomodar una escritura para intercambiar, seguramente se compensará con las ganancias de velocidad anteriores de tener el intercambio disponible en primer lugar. Tener intercambio hace que las Mac sean más rápidas El resto de la respuesta es acertada , ¡bien hecho!
bmike
2
@geotavros El sistema de memoria virtual en Mac OS X no funciona igual que Windows. Con 4 GB de memoria, confía en mí, tu Mac funcionará más rápido con la memoria virtual habilitada. Deshabilitar VM solo le causará dolores de cabeza e inestabilidad del sistema.
ghoppe
3
Para su información, una SSD moderna con nivelación de escritura y una capacidad decente (128 GB), escrita continuamente, tendrá un límite de ciclo de escritura medido en siglos. Ese era un temor razonable en 2000 con SSD pequeños y primitivos, pero ya no.
Ken
3
Para una MacBookPro5,2 con 8 GB de memoria, la mejora del rendimiento es espectacular. Para Snow Leopard o Lion en un VirtualBoxVM, la mejora es asombrosa. En los tres casos, el sistema operativo parece usar la memoria de una manera que minimiza el riesgo de alcanzar el 'límite' (donde todo se detiene efectivamente) pero ese riesgo permanece, por lo que es sensato observar el uso en el Monitor de actividad.
Graham Perrin
2
Para información, VM (o memoria virtual) no debe confundirse con el archivo de intercambio. Windows, OS X, * BSD, Linux, muchos Unix están utilizando memoria virtual. Por lo general, la arquitectura de este sistema operativo proporciona una VM por proceso, el proceso asigna memoria dentro de esta área y el sistema operativo se encarga de colocar esta memoria asignada en la RAM física o intercambiar según lo considere el sistema operativo. Tener o no intercambiar puede cambiar de una forma u otra para diferentes criterios (velocidad, capacidad de respuesta, etc.), esto dependerá de la carga de trabajo de cada uno de nosotros. Como dicen los ingleses: ¡tu millaje puede variar! Y mucho en este caso.
Huygens
27

La razón por la que deshabilitaron el archivo de intercambio es probablemente paranoia sobre SSD que tienen un número máximo de escrituras por bloque. Los archivos de intercambio se pueden escribir con frecuencia, posiblemente causando fragmentación del disco (así como la fragmentación del sistema de archivos) y, eventualmente, posiblemente causando que el disco falle antes.

Dicho esto, este es definitivamente un caso de optimización prematura. Casi siempre es una idea HORRIBLE , HORRIBLE deshabilitar su archivo de intercambio. El archivo de intercambio está ahí para cuando sus programas en ejecución consuman más memoria de la que ha instalado físicamente. Si lo deshabilita, es posible que no pueda ejecutar tantos programas al mismo tiempo (y el límite es mucho más bajo de lo que esperaría) o puede tener problemas (como congelar y tener que reiniciar la máquina) cuando te quedas sin memoria.

Lo último que he experimentado (con el archivo de intercambio habilitado) cuando se está quedando sin espacio en disco. Tuve una unidad de 120 conciertos con ~ 3 conciertos gratis. Mientras jugaba Civilization IV (un gran juego de pantalla completa), el sistema se quedó sin espacio en el disco duro (~ 50 megas gratis) y presentó la ventana "matar aplicaciones ahora". Esto se escondía detrás del juego de pantalla completa, por lo que el sistema simplemente se bloqueó. Si no hubiera podido ingresar desde otra Mac para eliminar varias aplicaciones de forma remota, habría tenido que mantener presionado el botón de encendido.

CajunLuke
fuente
66
Me gustaría hacer eco de la mala idea que es esta. Swap se usa incluso si tiene 16 GB de RAM. No tanto, pero un poquito ya está escrito en el intercambio. Siempre. Es una salvaguarda. Y aunque el sistema operativo puede ejecutarse sin él, no puede estar seguro de cómo se comportan las aplicaciones de terceros. HD para escribir. Es un hecho si la vida. Y no, no habrá aumento del rendimiento del "mundo real". Eso es un placebo.
44
@cksum En algunos escenarios de servidores específicos, los administradores de sistemas deshabilitarán el archivo de intercambio porque hace que esa configuración específica sea más rápida, pero no lo hacen sin realizar pruebas para asegurarse de que tanto (a) no se quede sin memoria como (b ) en realidad es más rápido. Pero ese es un servidor dirigido por profesionales: nunca es necesario en una máquina de consumo.
CajunLuke
@cksum Podría estar de acuerdo con tu primera oración, estás en lo correcto con la segunda, tercera y cuarta, pero el resto es basura. Un sistema operativo no se intercambia por "salvaguarda", un sistema operativo se está intercambiando para hacer que haya más memoria disponible para el proceso activo que lo requiera o para acelerar la E / S almacenando datos en el búfer, mientras se pueda liberar memoria inactiva en la RAM. Cuando desarrolla una aplicación, solicita memoria al sistema operativo, esta memoria es parte de su uso de memoria virtual, como desarrollador o aplicación no sabe si el sistema operativo coloca esa memoria o parte de ella en la RAM física o el intercambio. (continuará)
Huygens
Entonces, si una aplicación de terceros solicita más memoria de la que está disponible, el sistema operativo le dará un error. Esto es independiente de tener swap o no. Tener swap pondrá el límite más alto, eso es todo. En cuanto al rendimiento, si tiene 2 usuarios conectados, si el usuario activo usa un editor de video con archivos enormes, el sistema operativo podría comenzar a colocar páginas de memoria del usuario inactivo en el intercambio para acelerar las tareas realizadas por el usuario activo. Obtendrá un mejor rendimiento en términos de velocidad en este caso. Sin embargo, cambiar al otro usuario será más lento, el sistema operativo debe volver a leer el intercambio. ¡Esto no es un placebo!
Huygens
1
Una vez (en Linux) olvidé configurar una partición de intercambio al configurar. Cuando me estaba quedando colgado, pensé que era un error del kernel; resultó que era la falta de memoria de intercambio mientras jugaba mincecraft. usar intercambio.
Wyatt8740
12

Tiene dos excelentes respuestas que explican por qué es una mala idea en casi todos los casos en que el sistema puede escribir en un dispositivo de almacenamiento.

La razón por la que puede deshabilitar el intercambio es para que el sistema pueda ejecutarse en medios de solo lectura, como un CD, DVD, imagen de red bloqueada usando NetBoot o un control USB de solo lectura como el nuevo instalador Lion o control de recuperación que se envía con algunos equipos que carecen de dispositivos ópticos unidades.

Tener memoria virtual significa que el sistema puede ejecutarse sustancialmente más rápido y usar menos RAM cuando muchos programas usan el mismo código de biblioteca común. Cada programa cree que tiene una copia privada de todo el código que necesita, pero cuando existe memoria virtual, el sistema tiene una buena manera de asignar la misma RAM física a diferentes programas.

Deshabilitar el intercambio evita que el Mac use una pequeña porción de su unidad como caché para alguna memoria que se ha calculado, pero el programa no fue lo suficientemente inteligente como para escribir esos resultados en una caché adecuada.

Si tiene una copia de seguridad y tiempo para experimentar, ¿por qué no desactivarla y ver cómo cambia su experiencia?

Mantendría mi intercambio incluso si supiera con certeza que tenía que pagar un nuevo disco anualmente. La velocidad que me da el intercambio es ENORME. Esto no siempre es así, y en ocasiones cuando el sistema se está agitando o buscando, puede tener lo contrario. Muchas personas optan por ejecutar sin intercambio para que obtengan un error de asignación de memoria en lugar de permitir que su Mac comience a paginar, ya que eso puede ralentizar una máquina cuando las cosas no funcionan sin problemas.

Su caso con un SSD podría ser diferente, así que avísenos si lo prueba.

bmike
fuente
2
Encuentro lo contrario, una gran aceleración cuando dynamic_pager está deshabilitado . La captura de pantalla actualmente en apple.stackexchange.com/a/60661/8546 muestra el tamaño de la memoria virtual y las entradas de página medidas mientras ese daemon está deshabilitado (mientras no se usan archivos de intercambio).
Graham Perrin
¿Qué se mide con precisión para determinar una aceleración? (¿O está viendo la ausencia de retrasos o retrasos en la interfaz de usuario o algo más que no es fácilmente cuantificable o medible?)
bmike
Sin medir: con Lion, la mayoría de las cosas parecían notablemente más rápidas, lo suficiente como para usar la palabra enorme . Más recientemente: 10.8 en un VirtualBoxVM, por ejemplo, para iniciar sesión y reanudar Activity Monitor toma dieciséis segundos con dynamic_pager, doce segundos sin. Para una comparación más amplia y más medida, podríamos usar Phoronix Test Suite o Geekbench .
Graham Perrin
9

Voy a ser el más negativo aquí: deshabilité el intercambio en mi Macbook Pro unibody de finales de 2008 y mejoró notablemente el rendimiento: menos esperas, cambio más rápido entre aplicaciones.

Eso sí, vigilo mi memoria libre y tengo 6 GB instalados. Las pocas veces que llegué al límite de memoria, el sistema se bloqueó :-D

En mi nuevo MacBook Air no soñaría con deshabilitar el intercambio, ya es rápido con él habilitado y solo tiene 4 GB para empezar.

Otra buena razón por la cual las personas deshabilitan el intercambio en un SSD es porque obtienen pequeños SSD y necesitan todo el espacio que pueden obtener. En cualquier caso, no lo hagas.

w00t
fuente
Impresionante tener experiencia real donde esto funcionó. ¿Cuál fue el compromiso de RAM en la máquina cuando se deshabilitó el intercambio? ¿Qué sucedió cuando abriste más aplicaciones de las que cabrían en la RAM? ¿Cuánta RAM tenía y qué aplicaciones se ejecutarían en ese espacio cómodamente sin errores?
bmike
1
@bmike, no estoy seguro, el sistema se bloquea :-D, 6GB y todos los que uso :). Aperture o XCode son verdaderos cerdos de memoria y a veces podrían volcarse sobre el sistema, pero Skype, Mail, Adium, Safari, Chrome, iTunes y OmniFocus encajan perfectamente ...
w00t
6

Mi experiencia es similar a la de w00t. He desactivado el archivo de intercambio en SL y Lion porque el aumento de rendimiento funciona para mí. El uso con cable se sale de control después de una semana más o menos, pero un simple reinicio lo soluciona. No tengo un SSD pero un disco lento de 5400 rpm. Sin embargo, la esperanza de vida de los SSD no es tan mala como la gente trata de hacer que aparezcan. Si lo está haciendo simplemente porque tiene miedo de desgastar su SSD, consulte: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 y http://communities.intel.com/thread/21717?tstart=0 Intel califica sus unidades por más de 20 GB al día, todos los días, hasta 5 años en una unidad de 80 gb. Las unidades de mayor tamaño durarán aún más. El usuario promedio ni siquiera usa 10GB / día.

Me aseguro de monitorear mi uso de memoria de 4GB con iStat Menus y usar un script Automator con el comando bash "purge" (requiere que se instale Xcode) para borrar la memoria inactiva y abrir más memoria libre con frecuencia. Las pocas veces que he tenido aplicaciones con pérdidas de memoria que usan toda la RAM, tuve que hacer un restablecimiento completo. Las raras ocasiones de que eso suceda y la aceleración en general hacen que valga la pena mantener el archivo de intercambio deshabilitado para mí. Me doy cuenta de que no puedo tener tantas aplicaciones abiertas a la vez debido a esto como lo han dicho otros, pero puedo trabajar con eso.

Shlepto
fuente
Memory Scope tiene una opción para purgar automáticamente. (si dynamic_pager está habilitado, no permitiré las purgas).
Graham Perrin
5

Solo agrego mis 2 centavos para aquellos que desean deshabilitar el intercambio DEBIDO a SSD pequeños: la imagen dormida usa mucho más espacio en disco.

Y, para aquellos preocupados por la vida limitada del SSD (particularmente aquellos con MBA y chips SSD cableados que NO PUEDEN ser reemplazados), si su computadora duerme muchas veces al día, la reescritura de la imagen del sueño puede ser una preocupación. Mi laptop duerme media docena de veces / día fácilmente. Eso escribe 48GB de datos en mi SSD diariamente.

La solución en cada caso es deshabilitar la hibernación y luego eliminar el archivo de imagen dormida que es tan grande como la RAM instalada (8 GB en mi caso).

El riesgo a la baja: si su batería se agota mientras su computadora portátil está en reposo, su estado actual se perderá. Esto será equivalente a un reinicio forzado forzado. Sin daños físicos a la computadora portátil, solo una pérdida de productividad. Si deshabilita la hibernación, agota la batería y no puede cargarla, ¡solo tenga el código a mano para habilitar la hibernación!

Para deshabilitar la hibernación, en la Terminal, el comando es el siguiente:

 sudo pmset -a hibernatemode 0

Para habilitar la hibernación, el comando es el siguiente:

 sudo pmset -a hibernatemode 3

Para eliminar la última imagen dormida para liberar espacio SSD / HDD (solo tiene sentido si desactiva la hibernación, de lo contrario, una nueva ocupará ese espacio la próxima vez que su computadora duerma):

 sudo rm -rf /var/vm/sleepimage

Fuente: man pmset

usuario38390
fuente
3

La desactivación de intercambio hace aumentar el rendimiento. Por ejemplo, uso regularmente Aperture y cuando el intercambio crece, el rendimiento empeora y cuando va más allá de 1 Gb, tengo que reiniciar el sistema operativo para limpiarlo y restaurar el rendimiento. Nota: la máquina tiene 6 GB de RAM y NO está ocupada en su totalidad, aproximadamente 3 GB es gratis, pero 1G intercambiable degrada significativamente el rendimiento.

Konstantin
fuente
3

He estado deshabilitando el intercambio en máquinas durante muchos años, tanto en OS X como en otras variantes de UNIX.

Utilizo una herramienta para alertarme cuando la memoria se está agotando y nunca me preocupo por el bloqueo de mi sistema.

Mi iMac tiene 12 GB y, con el intercambio desactivado, casi siempre tengo 4 GB libres, incluso con múltiples herramientas de desarrollo, aplicaciones, navegadores, etc. abiertos

opensourceame
fuente
55
¿Qué herramienta de memoria estás usando?
Dmitriy
1

El patrón de repetición aquí es este:

Aquellos que HAN deshabilitado el archivo de intercambio experimentaron un rendimiento mejorado (con suficiente RAM física)

Aquellos que NO han desactivado el espacio de intercambio están seguros de que no funcionará, y sucederá algo terrible, y aconsejan ardientemente que no lo hagan.

Esto se debe simplemente a dos cosas:

  1. Ideas anticuadas sobre la escasez y el alto costo de la RAM física que ya no son válidas
  2. Un mecanismo de intercambio realmente pobre en MacOS que causa el uso de archivos de intercambio cuando hay suficiente RAM física.
Rico
fuente
1
Si el espacio de intercambio se usa SOLO cuando sea necesario, entonces sería genial. Sin embargo, ese no es el caso. Ejecuto máquinas virtuales de 2gb y 4gb en mi MacOS. Si tengo 1,6 gb de RAM libre, debería poder ejecutar una máquina virtual de 1 GB (u otro programa), pero no puedo porque el sistema operativo comienza a paginarlo. Como resultado, solo puedo usar alrededor del 85-90% de mi RAM. Si quiero acceder a TODA mi RAM, necesito desactivar la paginación. Hago esto en todas mis máquinas con Windows y me gustaría hacer lo mismo en mi MacOS. Si un programa se queda sin RAM, entonces fallará. Eso es lo que quiero que suceda. No quiero otras aplicaciones en ejecución
3
YMMV. Ya no desactivo el intercambio, ya que no lo he encontrado para mejorar el rendimiento en máquinas modernas cargadas de RAM. Solía ​​hacerlo en el pasado, ya que ayudó en los viejos tiempos. Hoy en día no solo NO veo ningún cambio de rendimiento al deshabilitar el intercambio, sino que también veo una gran inestabilidad de la aplicación.
Brian Knoblauch
1
La cosa no deseada que va a pasar es que un ser humano se olvidará de que no pueden poner en marcha otro programa y en el tiempo, la máquina se bloqueará debido a un error de memoria insuficiente. Si esto es terrible, humorístico, educativo depende del momento, la frecuencia de respaldo y la tolerancia a los retrasos.
bmike
1

Solo una experiencia personal.

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

Una nota rápida: si su Mac usa gráficos integrados, su memoria se comparte con su memoria principal con kernel_task. Por lo tanto, tendrá que restar esa cantidad de su total utilizable.

Usuarios de SSD, es satisfactorio tener más espacio, pero es importante saber que la memoria virtual prospera en las SSD, puede obtener una gran ganancia de rendimiento. ¿Duele el SSD? Sí, pero reemplazará por mucho tiempo su Mac antes de que lo note.

Shane Hsu
fuente
1
Personalmente, deshabilité la memoria virtual en mi Retina MacBook Pro con solo 8 GB de memoria. Aquí están las matemáticas, el sistema usa aproximadamente 2 GB de memoria contando gráficos integrados. Eso son 6 GB para mí. Hago Xcode para el trabajo, ya que no consume más de 2 GB de memoria. Así que tengo mucho de sobra.
Shane Hsu
1

Resumen Ejecutivo

Un área de intercambio (llamada partición de intercambio, archivo de intercambio o archivo de página) es solo un mecanismo para aumentar la memoria física direccionable por el sistema operativo.

Si tiene poca RAM física disponible, y en la máquina actual, diría que tiene 4 GB o menos RAM. Entonces probablemente deberías tener un intercambio. Pero esto depende de su carga de trabajo y de cómo usa su máquina.

Si tiene más de 4 GB de RAM, existe una buena posibilidad de que su sistema nunca use el intercambio. Entonces, si el intercambio está habilitado o no, esto no cambiará mucho.
Aunque esto depende de otros factores, cuanto más tiempo esté funcionando su máquina, más probabilidades hay de que el sistema operativo cambie la pequeña porción de RAM no utilizada al intercambio, aunque aparentemente hay mucho espacio restante. Sin embargo, a menudo el sistema usa la RAM "libre" para los búferes de archivos y otras cosas, y alguna carga de trabajo puede hacer que el búfer de archivos use toda la RAM disponible.

Información de antecedentes

De alguna manera, ¿qué pasaría si deshabilita el intercambio y su memoria se usa por completo? Bueno, la próxima vez que una aplicación solicite más memoria (como con un malloc o realloc), ¡recibirá un error! Si está codificado correctamente, la aplicación lo detectará, ¡pero manejar un error de este tipo y finalizar el programa con gracia podría ser un desafío aún! Sin embargo, muchos desarrolladores no prueban la asignación exitosa de memoria y, a menudo, la aplicación se bloquea tan pronto como se va a utilizar esta memoria no asignada. Por lo tanto, existe una gran posibilidad de que la aplicación se bloquee y, de hecho, muchas aplicaciones se bloqueen porque normalmente tiene más de una aplicación ejecutándose al mismo tiempo. Con suerte, el núcleo en sí debería ser inmune, pero en mi experiencia no siempre fue así.

Si tiene un intercambio, tendrá el mismo comportamiento , pero tiene un límite más alto, por lo que es probable que no llegue a ese límite.

Personalmente tengo 2 máquinas con 8 y 16 GB de RAM. Mi uso personal de estas máquinas nunca debería acercarme al uso de toda esta RAM (¡hoy! Tal vez en unos años podría ser diferente). La única razón por la que alcanzaría los límites físicos de RAM es que un proceso se volvió deshonesto y está consumiendo toda la RAM. No tener un intercambio es un alivio, el kernel matará rápidamente el proceso no autorizado tan pronto como llegue al límite de RAM. Si tiene un intercambio, obtendrá una experiencia dolorosa (tal vez no en SSD ...) ya que su sistema intercambiará, intercambiará e intercambiará y, a veces, no responderá hasta que, con suerte, su kernel mate al culpable.

Asesora

No debe asustarse que la gente le diga que algo terriblemente mal podría suceder si elimina el intercambio. Si lo hace, su espacio de direcciones físicas se reducirá, como si fuera de 4 GB de RAM a 2 GB. ¿Harías algo así? Entonces no debe eliminar el intercambio. Sin embargo, puede decidir limitarlo, y eso sería prudente .

Si uno piensa que su carga de trabajo podría llevarlo a usar cerca o más de la RAM física disponible, o si necesita mucha E / S (lectura / escritura en discos), entonces debe mantenerse el intercambio.

Cuando se debe mantener el intercambio, un usuario debe intentar establecer límites a la cantidad de memoria que puede utilizar un proceso. En un sistema Linux, uno podría usar los límites de memoria de cgroups para evitar que algún proceso se salga de control, no sé el equivalente en OS X, pero esa debería ser la forma.

Sin embargo, si uno tiene más que suficiente memoria disponible para su carga de trabajo, entonces podría desactivar el intercambio de forma segura o podría conservarlo. No cambiará mucho incluso en términos de rendimiento porque si el sistema no utiliza el intercambio, entonces no se verá afectado por una caída en el rendimiento (especialmente visible en un disco duro rotativo antiguo, menos aún en SSD).

Usar el mismo truco que el anterior para tratar de establecer límites de memoria por proceso o grupo de procesos también es beneficiario en el caso de RAM disponible más que suficiente.

Mi propio ejemplo

Tengo una PC vieja con 1 GB de RAM, allí tengo un gran intercambio: 4 GB para poder ejecutar Firefox y otras aplicaciones en él. Sin embargo, tiendo a usar la menor cantidad de aplicaciones (o pestañas en Firefox) para tener una experiencia de usuario correcta.

Tengo un pequeño servidor con 8 GB de RAM. Allí sé exactamente mi carga de trabajo y no quiero que mi servidor se ralentice porque un proceso se volvió falso y está consumiendo toda la memoria. Allí no tengo barrera de imposición de límite de memoria de intercambio y cgroup, por lo que las aplicaciones o servicios pueden fallar pero no el núcleo. Por cierto, esta es una máquina Linux.

Entonces, tengo mi Mac con 16 GB de RAM. No soy el único usuario, y no nos importaría esperar al cambiar de usuario. Allí sí tenemos intercambio, es difícil para mí planificar la carga de trabajo de otros usuarios de esta computadora. Incluso si fuera el único que usaría swap. A menudo ejecuto varias máquinas virtuales y uso aplicaciones que consumen memoria, pero no todas al mismo tiempo, por lo que no me importaría que el sistema operativo se intercambie en una aplicación no utilizada para poder obtener E / S de disco más rápido o iniciar otra máquina virtual. ¡Hasta ahora, no he visto esta máquina intercambiando!

Huygens
fuente
0

Acabo de deshabilitar el archivo de intercambio en mi Macbook air 2011 (4 GB de RAM, 128 GB de SSD) porque estaba harto de que el archivo de intercambio consumiera lentamente todo mi espacio HD restante y luego tuviera que reiniciar. De esta manera, la idea es que solo ejecutaré menos programas.

Veré si eso realmente funciona, o si tendré que reiniciar de todos modos para borrar la memoria "cableada", pero por ahora parece estar funcionando bien. La única vez que la memoria se llenó realmente, la computadora se ralentizó tanto como lo hace cuando mi SSD se queda sin memoria, pero se recuperó mucho más rápido tan pronto como salí de las aplicaciones. (Y en realidad pude salir de las aplicaciones, que normalmente no lo hago cuando el SSD se llena).

Veré cómo funciona la estabilidad, pero hasta ahora soy un campista feliz. También me obliga a ejecutar menos aplicaciones (y pestañas de Chrome) a la vez, lo cual es bueno para el enfoque de tareas.

Josh Penman
fuente
0

La razón principal para deshabilitar el archivo de intercambio no es la velocidad, es el espacio en disco.

Si uno es un usuario que ejecuta habitualmente dentro de los 5 GB de una unidad completa, deshabilitar el intercambio detendrá la molestia constante de quedarse sin espacio; De forma rutinaria, termino con un archivo de intercambio de más de 4 GB de la navegación de rutina.

La mejora de la velocidad es asombrosa en máquinas antiguas; No es tan impresionante en las máquinas modernas equipadas con SSD. (Bajo OSX 10.0 en un iMac, el uso de memoria virtual redujo a la mitad la velocidad de muchas operaciones, incluida la copia de archivos entre unidades).

aramis
fuente
Eso suena más como arreglar la bocina porque los frenos no funcionan. Si la unidad está demasiado llena, elimine parte de los datos.
Tetsujin
@Tetsujin El archivo único más grande en esa unidad FUE el archivo de intercambio.
aramis
Mi punto sigue en pie. Menos datos, disco más grande o más RAM y no tendría que hacerlo.
Tetsujin