Si.
Definitivamente, siempre debe tener habilitado el intercambio, excepto si hay una razón muy convincente y prohibitiva (como no tener ningún disco o solo hay un disco de red presente). ¿Debería cambiar el orden de los tamaños ridículos que se recomiendan a menudo (como el doble de RAM)? Pues no .
La razón es que el intercambio no solo es útil cuando sus aplicaciones consumen más memoria de la que tiene RAM física (en realidad, en ese caso, el intercambio no es muy útil porque afecta seriamente el rendimiento). El principal incentivo para el intercambio hoy en día no es convertir mágicamente 16GiB de RAM en 32 GiB, sino hacer un uso más eficiente de la RAM instalada instalada.
En una computadora moderna, la RAM no se deja de usar. La RAM no utilizada es algo que también podría no haber comprado y ahorrado el dinero. Por lo tanto, cualquier cosa que cargue o cualquier cosa que sea de otra forma correlacionada con la memoria, todo lo que podría posiblemente ser reutilizado por cualquier persona en cualquier momento posterior (limitado por las restricciones de seguridad) está siendo almacenado en caché. Muy pronto después de que la máquina se haya iniciado, toda la RAM física se habrá utilizado para algo .
Cada vez que solicita una nueva página de memoria del sistema operativo, el administrador de memoria debe tomar una decisión informada:
- Purgue una página de la memoria caché del búfer
- Purgue una página de un mapeo (efectivamente el mismo que # 1, en la mayoría de los sistemas)
- Mueva una página a la que no se haya accedido durante mucho tiempo, preferiblemente nunca, para intercambiarla (de hecho, esto podría suceder de manera proactiva, no necesariamente en el último momento)
- Elimine su proceso o elimine un proceso aleatorio (OOM)
- Panico kernel
Las opciones 4 y 5 son muy indeseables y solo sucederán si el sistema operativo no tiene otra opción. Las opciones n. ° 1 y n. ° 2 significan que tiras algo que posiblemente necesitarás pronto nuevamente. Esto afecta negativamente el rendimiento.
La opción n. ° 3 significa que mueve algo que (probablemente) no necesite pronto a un almacenamiento lento. Eso está bien porque ahora algo que necesitas puede usar la RAM rápida.
Al eliminar la opción # 3, ha limitado efectivamente el sistema operativo a hacer # 1 o # 2. Recargar una página desde el disco es lo mismo que recargarla desde el intercambio, excepto que tener que volver a cargar desde el intercambio generalmente es menos probable (debido a la toma de decisiones de paginación adecuadas).
En otras palabras, al deshabilitar el intercambio no gana nada, pero limita la cantidad de opciones útiles del sistema operativo para tratar una solicitud de memoria. Lo cual puede no ser , pero muy posiblemente sea una desventaja (y nunca será una ventaja).
[EDITAR]
El lector cuidadoso de la página de mmap
manual , específicamente la descripción de MAP_NORESERVE
, notará otra buena razón por la cual el intercambio es algo necesario incluso en un sistema con memoria física "suficiente":
"Cuando el espacio de intercambio no está reservado, uno puede obtener SIGSEGV en una escritura si no hay memoria física disponible".
- Espera un momento, ¿qué significa eso?
Si asigna un archivo, puede acceder a los contenidos del archivo directamente como si el archivo estuviera de algún modo, por arte de magia, en el espacio de direcciones de su programa. Para el acceso de solo lectura, el sistema operativo no necesita, en principio, más de una sola página de memoria física que puede repoblar con diferentes datos cada vez que acceda a una página virtual diferente (por razones de eficiencia, por supuesto, eso no es lo que se hace, pero en principio, podría acceder a terabytes de datos con una sola página de memoria física). ¿Y si tú tambiénescribir en un mapeo de archivos? En este caso, el sistema operativo debe tener una página física, o espacio de intercambio, lista para cada página escrita. No hay otra manera de mantener los datos hasta que el proceso de reescritura de páginas sucias haya hecho su trabajo (que puede tomar varios segundos). Por esta razón, el sistema operativo reserva (pero no necesariamente compromete) espacio de intercambio, por lo que en caso de que esté escribiendo en un mapeo mientras no haya una página física sin usar (es una condición bastante posible y normal), usted ' Está garantizado que seguirá funcionando.
Ahora, ¿qué pasa si no hay intercambio? Significa que no se puede reservar ningún intercambio (¡duh!), Y esto significa que tan pronto como no queden páginas físicas gratuitas, y esté escribiendo en una página, recibirá una agradable sorpresa en la forma de su proceso de recepción una falla de segmentación, y probablemente ser asesinado.
[/EDITAR]
Sin embargo, la recomendación tradicional de hacer el intercambio dos veces el tamaño de RAM no tiene sentido. Aunque el espacio en disco es barato, no tiene sentido asignar tanto intercambio. El desperdicio de algo que es barato sigue siendo un desperdicio, y absolutamente no desea intercambiar continuamente conjuntos de trabajo de varios cientos de megabytes (o más grandes) de tamaño.
No existe un único tamaño de intercambio "correcto" (hay tantos tamaños "correctos" como usuarios y opiniones). Por lo general, asigno un 512MiB fijo, independientemente del tamaño de la RAM, que me funciona muy bien. El razonamiento detrás de eso es que 512MiB es algo que siempre puede permitirse hoy en día, incluso en un disco pequeño. Por otro lado, agregar varios gigabytes de intercambio no es mejor. No los va a utilizar, excepto si algo va muy mal.
Incluso en una SSD, el intercambio es de órdenes de magnitud más lentos que la RAM (debido al ancho de banda del bus y la latencia), y aunque es muy aceptable mover algo para intercambiar que probablemente no sea necesario nuevamente (es decir, lo más probable es que no lo sea) intercambiarlo nuevamente, para que su grupo de páginas disponibles se amplíe efectivamente de forma gratuita), si realmente necesita cantidades considerables de intercambio (es decir, tiene una aplicación que utiliza, por ejemplo, un conjunto de datos de 50GiB), está bastante perdido.
Una vez que su computadora comienza a intercambiar páginas por valor de gigabytes, todo se arrastra. Por lo tanto, para la mayoría de las personas (incluyéndome a mí) esto no es una opción, por lo que tener tanto intercambio no tiene sentido.