¿Cómo aumentar el tamaño de intercambio?

17

Recientemente, puse más RAM en mi servidor y ahora tengo un total de 24 GB de RAM. Originalmente, configuré el sistema operativo para tener un tamaño de intercambio de 2 GB.

/dev/sdc1               1         281     2257101   82  Linux swap / Solaris
/dev/sdc2   *         282       60801   486126900   83  Linux

Actualmente se asignan 2 GB para el intercambio, pero leerlo parece que no es mucho. Para un sistema con 24 GB, estoy pensando en asignar al menos 10 GB de intercambio.

Mi pregunta es: ¿Puedo hacerlo mientras se ejecuta el sistema operativo? ¿Tengo que reinstalar? Estoy usando OpenSuse 11.3

hombre X
fuente

Respuestas:

23

Decidió crear una partición de intercambio separada después de la instalación. No puede cambiar su tamaño en línea; incluso un cambio de tamaño fuera de línea tomará una cantidad considerable de tiempo y conllevará el riesgo potencial de dañar su sistema de archivos posterior en / dev / sdc2.

La opción más fácil para solucionar esto es crear una nueva partición de intercambio en un disco diferente que no usa actualmente (o puede permitirse desconectar para volver a particionar) o simplemente usar un archivo de intercambio dentro de un sistema de archivos existente (que viene con alguna penalización de rendimiento menor debido a la sobrecarga del sistema de archivos ).

El procedimiento general para agregar una partición / archivo de intercambio:

  • cree una nueva partición de tipo 82h o un nuevo archivo de 8 GB usando dd if=/dev/zero of=/swapfile bs=1M count=8192
  • inicializarlo usando mkswap /swapfileomkswap /dev/sdXX
  • use swapon /swapfileoswapon /dev/sdXX respectivamente para habilitar su nuevo espacio de intercambio sobre la marcha
  • agregue una entrada a / etc / fstab para asegurarse de que su nuevo espacio de intercambio se active al reiniciar

Su partición de intercambio actual permanece en uso, es posible que desee deshacerse de ella en aras de la reducción de la complejidad. Solo use swapoff /dev/sdc1para deshabilitar su uso por el momento y elimine la referencia en/etc/fstab

el wabbit
fuente
@ synticon-dj gracias. los datos en el disco donde se realiza el intercambio son cruciales, y tengo otro disco que puedo usar. ¿Crees que configurar un disco diferente como intercambio afectará el rendimiento? ¿Tendré que cambiar el / dev / sdc1?
x-man el
Lo afectará de una forma u otra: si / dev / sdc2 está teniendo mucho uso, esta E / S compite con la E / S de intercambio. Si agrega la partición de otro disco como intercambio, simplemente agrega la carga de E / S de intercambio a este disco. Lo que será beneficioso para el rendimiento de intercambio es inevitablemente perjudicial para sus otras E / S en el disco afectado. Dicho esto, nada es tan malo para el rendimiento de su sistema como una gran cantidad de solicitudes de salida / pagein. Si ve esto, corríjalo agregando memoria o reduciendo la huella de memoria de su sistema.
the-wabbit
tener dos dispositivos de intercambio en diferentes husos ayudará a su rendimiento de intercambio (ya que hay dos discos que se pueden direccionar simultáneamente en lugar de solo uno para leer y escribir). Pero como no debería ver una alta actividad de E / S debido al intercambio de todos modos, es posible que prefiera usar un solo dispositivo / partición / archivo para facilitar la administración
the-wabbit
1
Tenga en cuenta que un archivo de intercambio no funcionará si está en un BtrFS. Dos soluciones son: (1) hacer un dispositivo de bucle invertido o (2) usar btrfs-swapon .
Diagon
@ the-wabbit ¿Cómo se crea realmente la /etc/fstabentrada para asegurarse de que el nuevo intercambio se active al reiniciar?
SIGSTACKFAULT
3

¿Necesitarías un intercambio en este caso? No sé qué tiene en ejecución en el sistema de su sistema, pero trato de tener suficiente memoria en mis servidores para evitar el intercambio por completo ... (lo tengo, pero solo como a prueba de fallas, si mi servidor comienza a intercambiarse, compro más memoria ...)

Analítico
fuente
Estoy de su lado aquí, el intercambio se usa principalmente para evitar bloqueos en caso de agotamiento de la memoria (volátil) y tan pronto como comience a golpear las bandejas, su servidor recibe una E / S y / o ancho de banda, aunque los SSD pueden ayudar son al menos 10 veces más lentos que la RAM, que hoy en día es realmente barata. Los precios de DDR3 ECC 1333MHz son alrededor de $ 1000 por 64GB (8x8GB)
Shadok
2

Tienes que volver a particionar el disco. Si recuerdo bien mover el comienzo de la partición de Linux no es compatible con partición, pero también puede reducir su sistema de archivos y partición de Linux y luego hacer otro intercambio al final de su disco. No puede hacer esto mientras el sistema está en línea.

La solución alternativa es usar un archivo grande como intercambio. (No sé si es una buena idea hoy en día).

Roca
fuente
No todos los sistemas de archivos pueden reducirse, incluso sin conexión. Desafortunadamente, esto afecta las opciones populares como XFS ( xfs.org/index.php/Shrinking_Support ).
Sven
@Stone ¿esto significa reinstalar el sistema operativo?
x-man el
No. Significa hacer copias de seguridad :), arrancar un LiveCD, reducir el sistema de archivos de Linux y luego la partición sdc2 y hacer un nuevo intercambio al final del disco y reiniciar el sistema.
Stone
0

1 Desactiva todos los procesos de intercambio

sudo swapoff -a

2 Cambiar el tamaño del intercambio

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

3 Haga que el archivo se pueda usar como intercambio

sudo mkswap /swapfile

4 Active el archivo de intercambio

sudo swapon /swapfile

5 Compruebe la cantidad de intercambio disponible

grep SwapTotal /proc/meminfo
Ryabchenko Alexander
fuente