Raspberry Pi tiene una cantidad limitada de RAM y no se puede agregar más ya que es una computadora de placa única. El Pi 3 tiene solo 1 GB de RAM. El Pi 4, según el modelo, tiene hasta 8 GB de RAM. Las aplicaciones de software a veces exigen más memoria. La mayoría de las veces, este requisito de memoria es un pico breve. Cuando esto sucede, la Raspberry Pi se "congela" o se "bloquea" debido a la memoria limitada. El bloqueo también podría provocar que la tarjeta SD se corrompa, lo que provocaría la pérdida de datos.

Para evitar la posibilidad de un bloqueo, la memoria virtual en forma de intercambio se puede configurar en el Pi. Se debe agregar la cantidad correcta en el dispositivo correcto para obtener lo mejor de él. Todo el proceso se explica sistemáticamente con instrucciones para varios sistemas operativos.

Comprender cómo funciona el proceso de memoria

RAM es la memoria física. En el Pi 4, se encuentra al lado del procesador. En el Pi 3, la RAM se coloca en la parte inferior de la placa de circuito impreso. A diferencia de las placas base normales, la RAM de una Raspberry Pi está soldada a la placa, lo que restringe la posibilidad de aumentar su capacidad.

instagram viewer

Cuando se ejecuta una aplicación de software, utiliza una parte de la memoria RAM para su funcionamiento. Piense en un navegador como un ejemplo. Cuando una página web se carga en una pestaña, almacena los datos de la página en la RAM junto con la memoria necesaria para ejecutar el programa del navegador. Cuando se cargan más pestañas, la RAM se llena tanto. Sin memoria virtual, en algún momento la RAM se quedará sin capacidad y no se podrán cargar nuevas pestañas. La navegación por las pestañas existentes también se ralentizará significativamente, ya que no hay memoria libre para las operaciones básicas. En este punto, el Pi dejará de responder y la única forma de recuperarlo es a través del ciclo de encendido (apagado y encendido).

Este cierre aleatorio puede causar problemas graves, especialmente cuando el sistema operativo está en la tarjeta SD. La tarjeta podría bloquearse en el estado de "solo lectura" o, en el peor de los casos, corromperse por completo. Aquí es cuando se produce la pérdida total de datos.

El impacto de la condición de "memoria insuficiente (OOM)" se puede minimizar configurando el intercambio para que se use como memoria virtual. El intercambio se puede establecer en forma de archivo o partición en el disco y funciona como una extensión de la memoria RAM. Cuando se agota la memoria RAM disponible, los datos que se usan con poca frecuencia se mueven para intercambiar en un proceso llamado intercambio. En el caso del ejemplo del navegador, estos serían datos de una pestaña cargada que se usa menos. Cuando la pestaña se active nuevamente, estos datos se moverán de nuevo a la RAM para mostrar la página web.

Swap traerá estabilidad para operaciones intensivas de memoria. Si hay un pico breve en el consumo de memoria, el intercambio ayudará a absorber el pico y mantener el sistema en funcionamiento en lugar de terminar congelado por completo.

Elegir el dispositivo adecuado para configurar el intercambio

El intercambio es esencial, pero la ubicación y el tamaño del intercambio que se va a configurar también son igualmente importantes. Idealmente, el intercambio debe estar en un dispositivo rápido. Junto a los cachés del procesador, la RAM es la segunda memoria más rápida. DDR4 en Pi tiene un ancho de banda de 4,4 GBps (gigabytes por segundo). El intercambio debe estar en uno de los otros dispositivos de almacenamiento disponibles.

Si se utiliza una tarjeta SD para el sistema operativo, se configura una pequeña área de intercambio de forma predeterminada. Puedes verificar su tamaño usando el comando:

libre -m

99 MB no es una cantidad significativa de swap. Se llenará bastante rápido. Las tarjetas SD tienen ciclos de escritura limitados ya que usan memoria flash y el intercambio excesivo podría reducir su vida útil. Además, tienen un ancho de banda bajo de alrededor de 50 MBps con un rendimiento de lectura/escritura de archivos de 4k mucho menor, lo cual es esencial para intercambiar archivos más pequeños.

Los discos duros tienen discos giratorios en ellos. Aunque confiables, tienen tiempos de búsqueda más altos y no son útiles para intercambiar.

Un SSD económico para el sistema operativo es una opción razonablemente mejor. Los algoritmos de nivelación de desgaste reorganizan los datos de las celdas flash desgastadas y prolongan su vida útil. En una Pi, el ancho de banda SSD es alrededor 150 MBps y tiene un rendimiento de archivo 4k mucho mejor en comparación con las tarjetas SD. La velocidad de búsqueda también es buena. Pero el uso del mismo disco para el intercambio y los cuellos de botella del sistema operativo son una operación simultánea. Dado que el intercambio realiza escrituras intensivas, el disco puede alcanzar el TBW (total de bytes escritos) antes de lo esperado, especialmente en SSD de baja capacidad.

Idealmente, Pi necesita que su sistema operativo y el intercambio estén en diferentes unidades, un disco del sistema operativo y un SSD dedicado para el intercambio. Esto daría longevidad al disco del sistema operativo y velocidad al intercambio. Además, el ancho de banda estará disponible para ambos simultáneamente ya que son dispositivos diferentes.

Cómo configurar el intercambio en los sistemas operativos Raspberry Pi

La mejor forma de configurar esto depende del sistema operativo que utilice su dispositivo.

Sistema operativo de escritorio (sistema operativo Raspberry Pi, Ubuntu Desktop y Ubuntu Mate)

Conecte el SSD que se usará como intercambio usando un Adaptador USB 3.0 a SATA III e iniciar el Pi. El proceso que se muestra aquí se implementa en el sistema operativo Raspberry Pi y debería funcionar igualmente bien en los otros sistemas operativos. En caso su sistema operativo Raspberry Pi necesita ser actualizado, hazlo.

Instale la herramienta necesaria para administrar discos usando GUI

sudo apto Instalar en pc gnome-disco-utilidad

Abierto Discos de Inicio > Accesorios.

También puede usar este comando en la terminal para abrir la herramienta:

gnomos-discos

Formatee el SSD desde el menú.

Crea una partición usando el control con + símbolo

La partición completa se puede asignar para el intercambio, pero un máximo del doble de RAM sería suficiente.

Asigne un nombre al volumen y seleccione Otro Para el Tipo de partición.

Seleccione Partición de intercambio de Linux y créelo.

Puede montarlo de inmediato haciendo clic en el botón de control con el Tocar símbolo. Se montará durante esta sesión, pero no permanecerá durante los reinicios. Debe configurarse para que se monte automáticamente. Haga clic en el Engranaje controlar y seleccionar Editar opciones de montaje.

Palanca Valores predeterminados de sesión de usuario y haga clic OK. Autenticar y Discos agregará una entrada a /etc/fstab para montarlo en cada arranque.

Reinicie el Pi, abra la terminal y verifique el nuevo tamaño de intercambio:

libre -m

Configuración adicional solo para Raspberry Pi OS

Ahora que el intercambio está configurado en un SSD, el antiguo intercambio no es necesario. Puede desactivarlo editando:

sudo nano /etc/dphys-swapfile

Establezca este parámetro en cero:

CONF_SWAPSIZE=0

Sistema operativo de servidor (Ubuntu, sistema operativo Raspberry Pi)

Este proceso es a través de CLI. Para mayor facilidad, puede preparar la partición de intercambio con la herramienta Discos en otra computadora, luego conectar el SSD al Pi e iniciar el servidor. Conéctate a la Pi usando SSH para proceder.

Encuentra la partición de intercambio:

lsblk

sda1 es. Encuentre el UUID de este dispositivo: sda1

chico negro

Copia el UUID (único para usted) y edite el archivo fstab para montarlo automáticamente en cada arranque:

sudo nano /etc/fstab

Añade esta línea:

UUID=SU UUID ninguno intercambiar sw 0 0

Guarde, reinicie y verifique el tamaño de intercambio:

libre -m

Optimización del uso de la memoria virtual para operaciones a prueba de bloqueos

El intercambio configurado se debe poner a buen uso. Esto se hace configurando un parámetro llamado swappiness. Para encontrar el valor actual:

gato proc/sys/vm/intercambio

Establecido en 60 de forma predeterminada, el valor define la agresividad con la que el kernel intercambia contenido de la RAM. Se puede configurar entre 1 y 100. El valor adecuado depende de su necesidad específica. Si ve que Pi se está quedando constantemente sin RAM, configúrelo en 100. Si no, configúrelo en un valor más bajo. Edite este archivo para configurarlo:

sudo nano /etc/sysctl.conf

Agregue esta línea al final:

vm.intercambio=100

Advertencias sobre la sobrecarga de procesamiento y SSD TBW

El intercambio operativo requiere potencia de procesamiento, generalmente uno de los cuatro núcleos en el Pi se dedica al intercambio cuando la RAM está completamente llena.

El consejo general que circula es no usar SSD para el intercambio, es cierto para el caso en que el sistema operativo (junto con los datos del usuario) y el intercambio están en el mismo disco. No se aplica en este caso cuando se configura el intercambio como se explica aquí. Aunque el SSD utilizado finalmente cruzará su TBW y fallará, simplemente puede reemplazarse por uno nuevo ya que no hay datos importantes almacenados en él con este proceso.

Cambie la ventaja por su Pi

Configurar el intercambio a la derecha es una excelente manera de hacer que el Pi sea a prueba de fallas. La estabilidad se debe al hecho de que la memoria total disponible es un factor más significativo que la velocidad de la memoria durante OOM. El Pi no se congelará y una vez que disminuya el uso de picos, volverá a responder más rápido.

Raspberry Pi es una computadora diminuta con una gran flexibilidad. Se puede utilizar para diferentes propósitos con varios sistemas operativos ligeros. Pi 4 funciona bien como reemplazo de las computadoras normales y también como un dispositivo integrado para uso industrial que puede funcionar las 24 horas del día, los 7 días de la semana.