...

Creando Ramdisk para acelerar Amavis bajo Linux

En el uso diario de un servidor web algunos servicios caen en el con el aumento de solicitudes cada vez más largas para procesar una solicitud y así cargar el servidor.
Un ejemplo típico es la interfaz entre el servidor de correo y el escáner de virus: Amavis, que guarda temporalmente los correos electrónicos y los vuelve a leer. Esto crea naturalmente una gran demanda de acceso a los discos duros o SSD en sistemas más grandes.
Aquí es posible almacenar estas operaciones de archivo en la memoria de trabajo para garantizar un procesamiento considerablemente más rápido.

Otros ejemplos serían el propio directorio /tmp en el php archivos de sesión, o incluso archivos de registro.

Al guardar en la RAM, siempre existe el riesgo de pérdida por un defecto en el sistema o un reinicio del servidor. Por lo tanto, siempre debes guardar sólo lo que no sea importante... Datos almacenar allí, o prever una copia de seguridad periódica.

Un RAMDISK para Amavis puede ser creado fácilmente con unos pocos comandos.

Para configurar un ramdisk necesitamos el directorio donde Amavis almacena los archivos y el ID de usuario y grupo.

Ambas cosas se pueden hacer más fácilmente con

grep 'amavis' /etc/passwd

leer en voz alta.

amavis:x:497:497:Amavis email scan usuario:/var/amavis:/bin/sh

El camino en este ejemplo es /var/amavis. Los archivos temporales se almacenan en el directorio /var/amavis/tmp. Para este directorio queremos crear un ramdisk.

El ID de usuario es el primer número 497 seguido del ID de grupo que en este caso también es 497.

En /etc/fstab ahora entramos en la siguiente línea para asegurarnos de que el ramdisk se crea incluso después de un reinicio

tmpfs /var/amavis/tmp tmpfs defaults,size=256m,mode=750,uid=497,gid=497 0 0

El tamaño del ramdisk no debe ser demasiado pequeño, porque amavis rechazará los correos electrónicos si se excede el límite. 256MB son suficientes en la mayoría de los casos.

Puede determinar la demanda actual con

tu -hs /var/amavis/tmp

investigar. El resultado, por ejemplo 11M /var/amavis/tmp, indica entonces cuántos megabytes hay ya en el directorio. No obstante, cabe señalar también que en los días con un alto volumen de correo debido a Spam o archivos adjuntos de gran tamaño, por supuesto que se necesita más espacio.

Sin embargo, en caso de emergencia, el ramdisk puede ser retirado o agrandado.

Ahora podemos simplemente montar el ramdisk con

monte /var/amavis/tmp

A través de

df -h

tmpfs 512M 0 512M 0% /var/amavis/tmp

podemos entonces detectar que nuestro ramdisk está activo y vacío.

A partir de ahora el procesamiento del amavis es extremadamente rápido.

Artículos de actualidad

Representación conceptual de un proxy inverso NGINX con caché de resolutor DNS y direcciones de backend variables.
Servidor web Plesk

Configurar correctamente la caché del resolutor de NGINX

Así se configura el resolutor de NGINX para backends dinámicos: TTL de DNS, «valid», «resolver_timeout», destinos «proxy_pass» variables y upstreams dinámicos claramente separados entre sí.

Representación conceptual de los estados del núcleo que se pueden ver a través de procfs.
Administración

Linux procfs para administradores: resumen de los archivos más importantes

procfs ofrece información directa sobre el núcleo de Linux en ejecución. Esta guía explica los archivos más importantes de /proc, clasifica los contadores y las instantáneas, y muestra vías de diagnóstico seguras para la carga, la memoria, los procesos, las E/S y los parámetros sysctl.

Representación conceptual de un servidor principal con dos réplicas y un flujo de replicación continuo.
Bases de datos

Entender el backlog de replicación de Redis: PSYNC, tamaño y límites de alta disponibilidad

La cola de replicación de Redis almacena una parte limitada del flujo de replicación. A menudo permite realizar un PSYNC en lugar de una resincronización completa tras breves interrupciones de la conexión, pero no sustituye ni al almacenamiento persistente de datos ni a un concepto bien diseñado de alta disponibilidad.