![Cambie el tamaño de la partición en una computadora con 64 GB de RAM para trabajos que requieren mucha memoria](https://rvso.com/image/1414634/Cambie%20el%20tama%C3%B1o%20de%20la%20partici%C3%B3n%20en%20una%20computadora%20con%2064%20GB%20de%20RAM%20para%20trabajos%20que%20requieren%20mucha%20memoria.png)
Tengo 64 GB de RAM y 240 GBSSDen mi computadora, que voy a usar para cálculos que requieren mucha memoria (aprendizaje automático, minería de datos, etc.). La mayoría de los consejos que encontré en Internet son sobre computadoras con 2-4-8 GB de RAM, y recomiendan 2 veces el tamaño de la partición de intercambio de RAM (es decir, 128 GB).
¿Es razonable crear una partición de intercambio de 128 GB? ¿Qué ventajas obtengo al hacer una partición swap enorme?
¿Entiendo correctamente que, en caso de que me quede sin RAM física?
- Si no tengo swap, aparece el error "sin memoria"
- Si tengo swap, algunas páginas de RAM se copiarán a la partición de swap y el programa continuará ejecutándose (aunque más lentamente).
Algunas personas dicen que es una mala idea cambiar el SSD, ya que tiene una cantidad limitada de ciclos de lectura/escritura. ¿Qué tan rápido con el intercambio se agotarán los ciclos de lectura/escritura de SSD (hasta donde yo sé, se trata de 50000 IOPS de escritura)?
Estoy usando Linux (ubuntu 14.04(Confiable Tahr)).
Por ahora, establecer un intercambio de 16 GB, ya que seguramente debería ser suficiente (por ejemplo, RedHat sugiere 4 GB), y 16 GB de espacio en disco no es realmente un gran problema.
Respuesta1
Probablemente sólo necesites una pequeña cantidad de intercambio. Cuando tienes suficiente RAM para el conjunto de trabajo típico de tu computadora, lo cual estoy bastante seguro de que tienes, solo necesitas intercambiar para dos cosas:
Necesita intercambiar para obtener información a la que probablemente nunca se accederá desde la RAM para liberar más espacio para el caché del disco. Muchas aplicaciones se ejecutan al iniciar el sistema y nunca más se accederá a ellas. No querrás que las páginas que ensuciaron se queden atrapadas en la RAM para siempre. Entonces necesitas intercambiar para guardarlos.
Necesita un swap para cubrir asignaciones que nunca se cubrirán. Este espacio simplemente tiene que estar disponible, aunque no se vaya a utilizar. Sin él, el sistema tendrá que negarse a asignar memoria incluso cuando tenga suficiente RAM física libre porque no tiene suficiente almacenamiento de respaldo para permitir que todas sus asignaciones se utilicen a la vez.
Ninguno de estos requiere una gran cantidad de intercambio. 16 GB, por ejemplo, deberían ser más que suficientes. El objetivo no es permitirle ejecutar conjuntos de trabajo más grandes a costa de la velocidad. El propósito es permitirle usar sus 64 GB de manera efectiva y no tener que obstruirlos con basura o reservarlos para casos extremos que nunca sucederán.
(Estoy de acuerdo con Bert en que es muy probable que 4 GB sean suficientes).
Respuesta2
Sombrero rojorecomienda 4 GB en una máquina con 64 GB.
Sin embargo, el cambio de tamaño es más un arte que una ciencia. Depende de para qué se utiliza la máquina, cuánto espacio en disco y memoria tiene, y otros factores. Recordar,Siempre puedes agregar más intercambio más tarde.
El uso de la regla de memoria física 2X está desactualizado con la cantidad de memoria que tienen los sistemas en estos días. Pero no se recomienda ejecutar sin intercambio a menos que sepa lo que está haciendo. La recomendación de 4 GB es un buen punto de partida.
Respuesta3
En Linux, necesita suficiente intercambio para que la memoria virtual total disponible (RAM + SWAP) sea suficiente para todos los procesos que desea ejecutar a la vez y su huella virtual máxima.
Si tiene menos intercambio que este, o ningún intercambio, entonces ocurre la siguiente situación: el sistema se queda sin memoria al intentar asignar una página. Pero esto sigue siendo una falla leve a pesar de que no hay intercambio, porque el sistema tiene muchas páginas "víctimas" que se pueden eliminar para hacer espacio: es decir, las páginas de todas las asignaciones de memoria respaldadas por archivos, como los ejecutables. y bibliotecas compartidas!
A medida que su sistema exige cada vez más espacio para los datos (que no se pueden intercambiar), evacuará cada vez más el código ejecutable (bibliotecas y ejecutables compartidos), lo que provocará una terrible destrucción, a medida que el conjunto de trabajo se reduzca en un conjunto cada vez más reducido de datos. páginas.
El espacio de intercambio suaviza este problema al proporcionar un lugar para intercambiar páginas anónimas (no asignadas a archivos): las páginas utilizadas para las asignaciones de memoria, de modo que el código ejecutable pueda permanecer en la memoria.
Aun así, si no ejecuta con frecuencia tareas que consumen mucha memoria, es posible que pueda ejecutar sin intercambio la mayor parte del tiempo y configurar manualmente un archivo de intercambio (en lugar de una partición dedicada) cuando lo necesite. Para crear un archivo de intercambio sobre la marcha, conviértase en root y:
dd if=/dev/zero of=/path/to/swapfile size=$((1024 * 1024)) count=32768 # 32 Gb.
mkswap /path/to/swapfile
swapon /path/to/swapfile
Cuando ya no lo necesites:
swapoff /path/to/swapfile
rm /path/to/swapfile
Notas:
Definitivamente no necesitas configurar al menos tanto swap como RAM tienes. Esta regla general se remonta a los sistemas operativos donde era un requisito estricto debido a la forma en que se diseñó el intercambio.
Hay formas de hacer que Linux falle gravemente cuando no hay memoria disponible, concretamente manipulando los valores de estas entradas sysctl:
vm.overcommit_memory vm.overcommit_ratio
Respuesta4
La carga de trabajo que desea aplicar a la máquina necesita una cierta cantidad de memoria para ejecutarse (recuerde agregar suficiente a la ecuación para manejar cargas máximas), y necesita configurar su computadora para que tenga al menos eso.
Los sistemas operativos modernos proporcionan memoria virtual como una combinación de memoria física y espacio de intercambio, por lo que si necesita más memoria de la que la máquina tiene disponible,debeagregue suficiente espacio de intercambio para llenar el vacío. Es decir, si necesita 80 GB como máximo y la máquina tiene 64 GB, necesita 16 GB de intercambio.
Normalmente, los instaladores de sistemas operativos le piden que cree un área de intercambio inicial (ya que es la más simple y permite la instalación incluso de computadoras pequeñas), y se ha descubierto que una buena regla general para las operaciones típicas de Unix es tener un tamaño de memoria virtual que sea tres veces la memoria física, por lo que normalmente se sugiere esto. Sin embargo, usted sabe más sobre el patrón de uso, por lo que puede cambiarlo según corresponda.
No hay nada de malo en trabajar sin espacio de intercambio si la presión de la memoria siempre es menor. Linux utilizará de forma transparente cualquier memoria no utilizada como caché de disco.