¿Qué es mejor para el rendimiento? Una partición más cercana al interior del disco tendrá tiempos de acceso más lentos, y debemos esperar a que la unidad cambie entre el sistema operativo y las particiones de intercambio.
Por otro lado, una partición de intercambio omite todo el sistema de archivos, lo que permite escribir directamente en el disco, que puede ser más rápido que un archivo.
¿Cuál es el rendimiento de compensación?
¿Cuánto marca la diferencia tener un archivo de intercambio de tamaño fijo?
¿Es un caso que será más largo cambiar a la partición de intercambio, pero el rendimiento será mejor mientras esté en la partición de intercambio que si hubiera sido un archivo de intercambio?
Respuestas:
En los discos duros, el rendimiento y la búsqueda son a menudo más rápidos hacia el comienzo del disco, porque esos datos se almacenan más cerca del área externa del disco, que tiene más sectores por cilindro. Por lo tanto, crear el intercambio al comienzo del disco podría mejorar el rendimiento.
Para un kernel de Linux 2.6, no hay diferencia de rendimiento entre una partición de intercambio y un archivo de intercambio no fragmentado . Cuando swapon habilita una partición / archivo de intercambio, el kernel 2.6 encuentra en qué bloque de disco está almacenado el archivo de intercambio , de modo que cuando llega el momento de intercambiar, no tiene que ocuparse del sistema de archivos.
Por lo tanto, si el archivo de intercambio no está fragmentado, es exactamente como si hubiera una partición de intercambio en su misma ubicación. O dicho de otra manera, obtendría un rendimiento idéntico si usara una partición de intercambio sin formato, o la formateara con un sistema de archivos y luego creara un archivo de intercambio que llenara todo el espacio, ya que de cualquier manera en ese disco hay una región contigua utilizada para el intercambio, que el núcleo usa directamente.
Entonces, si uno crea el archivo de intercambio cuando el sistema de archivos es nuevo (lo que garantiza que no esté fragmentado y al comienzo del volumen), el rendimiento debe ser idéntico a tener una partición de intercambio justo antes del volumen. Además, si uno crea el archivo de intercambio en el medio del volumen, con archivos a cada lado, uno podría obtener un mejor rendimiento, ya que hay menos búsqueda de intercambio.
En Linux, si el archivo de intercambio se crea sin fragmentar y nunca se expande, no puede fragmentarse, al menos con sistemas de archivos normales como ext3 / 4. Siempre usará los mismos bloques de disco, que son contiguos.
Concluyo que el único beneficio de una partición de intercambio dedicada es la fragmentación garantizada cuando necesita expandirla; Si su intercambio nunca se expandirá, un archivo creado en un sistema de archivos nuevo no requiere una partición adicional.
fuente
En realidad, no hace mucha diferencia siempre y cuando no uses archivos dispersos .
La creación de un archivo "normal" con dd asignará el archivo (si es posible) en una sola ejecución, mientras que la creación de un archivo disperso le indicará que tiene un archivo de 10 GB por ahí pero que no está utilizando todo el espacio. No estoy seguro de si mkswap no asignará el espacio de todos modos, pero generalmente un archivo de intercambio crecerá en el tiempo y, por lo tanto, no asignará un sector continuo (como parte del disco), sino que asignará bloques según sea necesario, lo que conducirá a fragmentación en el tiempo (por supuesto, dependiendo de su uso del disco)
Internamente, el kernel de Linux accederá a los bloques subyacentes de un archivo de intercambio más o menos directamente: no puedo encontrar el enlace en este momento, lo que sucede debajo del capó, tienes que confiar en mí a menos que alguien encuentre algo más oficial. Todo lo que puedo encontrar ahora es:
Todo esto se aplica solo a la línea 2.6 de los núcleos de Linux.
Si desea un rendimiento óptimo (¿y qué es eso realmente? ... el intercambio es lento, punto. Aumente la RAM para no cambiar por el mejor rendimiento), querrá usar una partición.
fuente
Esta es una pregunta interesante y he estado leyendo mucho sobre lo mismo. En general, una partición de intercambio es mejor que un archivo debido al sistema de archivos subyacente. Pero si siempre necesita aumentar el tamaño de su intercambio, entonces el archivo es una mejor opción. Hasta el kernel 2.4 se consideraba que una partición de intercambio es más rápida que un archivo, pero ahora con las mejoras del kernel 2.6, el rendimiento es casi el mismo.
Algo que encontré en internet también.
http://www.go2linux.org/swap-file-vs-swap-partition
y
http://www.sunmanagers.org/pipermail/summaries/2005-November/006913.html
fuente
Creo que en la etapa en que estamos ahora, a menos que esté ejecutando una computadora portátil con una configuración que escribe los datos en el intercambio cuando se suspende / duerme, el intercambio realmente debería considerarse como "último recurso". Su mejor opción es poner suficiente RAM en una caja para que nunca pague en el disco.
Dicho esto, una partición es probablemente la mejor manera, en cuanto al rendimiento, aunque un archivo es más flexible. Solo asegúrese de que esté en un eje de 7200+ RPM.
fuente
El pensamiento en nuestro trabajo es que, dado que un archivo de intercambio puede fragmentarse y la fragmentación ralentiza el acceso de intercambio, una partición es un mejor enfoque. Por supuesto, definir un archivo de intercambio de tamaño estático hace lo mismo, pero esto parece subjetivamente más ordenado.
¿Es este enfoque la única forma verdadera? Probablemente no, ya que la práctica se estableció hace aproximadamente 10 años. El único cambio importante en la tecnología de unidades en los años intermedios es la complejidad de los controladores RAID que utilizamos (todavía no somos lo suficientemente ricos para SSD). El aumento en el tamaño de las unidades significa que la partición de intercambio que creamos está más cerca del inicio de la unidad de lo que era cuando las unidades de 18 GB se enviaron de manera estándar, por lo que las velocidades de intercambio son aún más rápidas de lo que eran en los viejos tiempos.
Por supuesto, en nuestros sistemas Windows basados en ESX, la posición del archivo de intercambio es completamente, completamente discutible. Hay tantas capas de virtualización entre el archivo de intercambio y los discos del disco físico que simplemente no importa. Pero lo mantenemos en una partición separada porque ese es solo el estándar.
fuente
El uso de un archivo de intercambio podría usar un poco de memoria extra para la traducción de archivo a memoria. Estamos hablando de menos de 1 MB de memoria por 1 GB de intercambio. El caché del sistema de archivos NO almacena en caché los datos intercambiados, solo los datos de la organización, que deberían ser la mayoría de los requisitos de memoria adicionales.
Además de eso, dudo que pierdas un rendimiento razonable, excepto tal vez una vez cada 1000 veces una sola búsqueda de cabeza adicional.
Dato curioso, el uso de zswap junto con un archivo de intercambio que se expande dinámicamente da como resultado una aceleración impresionante de las operaciones de intercambio a muy bajos costos sin usar.
fuente