Hasta donde yo sé, el límite teórico para un archivo de intercambio es increíblemente grande dependiendo de si se utiliza un sistema de 32 bits o 64 bits.
Hice un archivo de intercambio de 16 GB en un sistema de 4 GB de RAM y 64 bits con especificaciones de bajo promedio, porque tengo espacio más que suficiente en mi HDD interno de 1 TB ...
Pero, ¿el gran archivo de intercambio realmente hace una diferencia en velocidad / rendimiento?
Respuestas:
Puede tener hasta 32 áreas de intercambio (archivos o particiones) con hasta ~ 4 mil millones (2 ^ 32) páginas cada una, donde una "página" es de 4 KB en un sistema tradicional (por ejemplo, x86 o x86_64) pero puede ser más grande en otros arquitecturas o si ha configurado páginas grandes especialmente.
Esto proporciona un máximo teórico de 16 TB por área de intercambio y hasta 32 áreas de intercambio. Puede haber otras limitaciones que se aplican antes de llegar a esto, pero este es un área de intercambio tan grande que
mkswap
puede crear para usted.En cuanto a cuánto desea, cualquier área de intercambio más allá del máximo que realmente utiliza no contribuye en nada al rendimiento o la estabilidad del sistema. El truco consiste en estimar la cantidad máxima de utilización que alguna vez ocurrirá en una situación normal o incluso anormal, y usar eso como el tamaño del archivo de intercambio y nada más.
Al momento de escribir, es muy poco probable que se utilice un espacio de intercambio mayor de aproximadamente 4 GB más que el tamaño de su memoria física, a menos que su sistema sea muy anormal. En un sistema típico, como un sistema de escritorio utilizado por una persona a la vez, es probable que incluso pueda detenerse a un máximo de 6 GB a 8 GB, incluso si su memoria física es mayor.
fuente
No hace ninguna diferencia en términos de velocidad o rendimiento. Simplemente le permite usar hasta 20 GB de memoria virtual antes de que el asesino de OOM comience a eliminar procesos para recuperar memoria.
Si quieres un mejor rendimiento:
swappiness
si no usa más de 4 GB con tanta frecuenciafuente
Según la respuesta de Gilles
Además, cita la página de manual para
mkswap
:En la biblioteca linux / swap.h hay una
MAX_SWAPFILES
entrada, por lo que hay un límite en la cantidad de archivos de intercambio en el nivel del kernel, sin embargo, al parecer, tampoco es un área definitiva. Según el documento vinculado:Lo que entiendo tiene un máximo de hasta 64 archivos de intercambio en las arquitecturas de 32 bits. Sin embargo, no he notado en el documento mencionar lo que sucedería en la arquitectura de 64 bits. También vale la pena señalar que en este caso , los esfuerzos de OP para crear archivos de intercambio fallaron en la entrada 30.
En cuanto a las particiones de intercambio, parece que no hay límite para eso en el núcleo, además de las constantes mencionadas anteriormente, pero el número de particiones aún estaría limitado por el BIOS subyacente y el diseño del disco .
fuente
Esta respuesta podría no ser apropiada para Ubuntu 18.04 (gracias a @Chai T. Rex por señalar esto en los comentarios).
De todos modos, para versiones anteriores, aquí va (todavía no hay una actualización propuesta LTS> LTS, por lo que esto podría ser relevante):
No es un archivo, es una partición, y sí, lo hace debido al intercambio
Básicamente, si su partición de intercambio es mucho más grande que la RAM que tiene, el sistema tenderá a intercambiar más, causando una lentitud general.
fuente
No hay mucha diferencia en velocidad o rendimiento al aumentar la partición de intercambio para que sea arbitrariamente grande.
Hay varios factores relacionados con el intercambio que pueden afectar el rendimiento, como el
swappiness
tipo de disco duro (SDD o HDD).El intercambio es bastante lento y el intercambio creciente reduce el rendimiento. Sin embargo, solo tiene un efecto si no hay suficiente RAM. Pero es mejor que no tener ningún intercambio. Mi recomendación es hacer que el tamaño de la partición de intercambio sea dos veces mayor que su RAM.
fuente
Llego al hecho de que un archivo de intercambio o una partición de intercambio prácticamente no tienen límite. Además, mi archivo de intercambio de 16 GB es bastante grande, pero el tamaño no afecta la velocidad.
Sin embargo, lo que deduzco es que lo que sí afecta la velocidad es que el sistema realmente hace uso de ese espacio de intercambio en lugar del hardware físico.
Mi solución a eso es hacer un alto valor de intercambio para que el intercambio no se use en exceso en lugar del hardware más rápido. Así que lo hice:
Agregado al archivo:
salvar
para actualizar (o podría haber reiniciado)
fuente
#vm.swappiness = 50
a/etc/sysctl.conf
no tiene ningún efecto, el inicio#
hace que esta línea sea un comentario, elimínela. Puede verificar el intercambio concat /proc/sys/vm/swappiness
.