===== Cambiar el limite de ficheros abiertos de RabbitMQ en tiempo de ejecución =====
Por defecto el usuario con el que corre RabbitMQ tiene un límite de ficheros abiertos de 1024 si no se configuró dicho limite con antelación. Si el proceso no puede ser reiniciado para hacer efectivo un nuevo límite, es factible hacer dicha modificación en tiempo de ejecución. Se muestra a continuación los pasos a seguir con un ejemplo práctico.
**Lectura previa recomendada**: [[https://www.busindre.com/configurar_limite_de_ficheros_abiertos]]
Visualizar el límite configurado que tiene el servicio RabbitMQ en ejecución.
/etc/init.d/rabbitmq-server status
Status of node 'rabbit@srv-dm-mq' ...
[{pid,19791},
...
{file_descriptors,
[{total_limit,924}, <-------------
{total_used,35},
{sockets_limit,829},
{sockets_used,31}]},
{processes,[{limit,1048576},{used,511}]},
{run_queue,0},
{uptime,31107085}]
...done.
Identificar los PID de los de procesos de RabbitMQ.
19481
19782
19791
19896
19897
Adaptar el límite de ficheros abiertos a 65536 para dichos procesos en ejecución.
prlimit -n65536:65536 -n -p 19481
prlimit -n65536:65536 -n -p 19782
prlimit -n65536:65536 -n -p 19791
prlimit -n65536:65536 -n -p 19896
prlimit -n65536:65536 -n -p 19897
Se debe ejecutar el siguiente comando para que sea efectivo en RabbitMQ, se resta 100 al valor configurado previamente (65535 - 100).
rabbitmqctl eval "file_handle_cache:set_limit(65436)."
Se comprueba si los cambios han tenido efecto.
service rabbitmq-server status
Status of node 'rabbit@srv-dm-mq' ...
[{pid,19791},
...
{file_descriptors,
[{total_limit,65436}, <---------------------
{total_used,35},
{sockets_limit,58890},
{sockets_used,31}]},
{processes,[{limit,1048576},{used,511}]},
{run_queue,0},
{uptime,31110056}]
...done.