¿Dónde Linux Fedora limita la apertura simultánea de conexiones en la terminal?

¿Dónde Linux Fedora limita la apertura simultánea de conexiones en la terminal?

Tengo algunos servidores web y para administrar el clúster a veces uso un script que abre automáticamente las conexiones y sincroniza los archivos usando scripts de Python. Me encontré con un problema extraño y realmente no sé cómo solucionarlo.

Para reproducir el caso de prueba, debe tener un destino remoto que no realice la conexión inmediatamente (ni en LAN ni en localhost) y la conexión debe ejecutarse sin solicitar una contraseña (usando archivos clave).

Tengo 16 PC con Fedora, los servidores tienen Cent OS 5, s120 y s121. Son 2 servidores que tengo con direcciones IP asignadas /etc/hostsa s121 y s120.

Este es un comando de muestra que abre 9 conexiones a s120 + 9 conexiones a s121 en el mismo shell al mismo tiempo... ¡Y FUNCIONA!

gnome-terminal --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab
-  e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" -- tab 
-e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab 
-e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh
 root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab 
-e "bash -c \"ssh root@s121;\""

este comando INTENTA abrir 15 conexiones en el mismo shell, las 15 A-> s120

gnome-terminal --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab
-e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh 
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\""       
--tab - e   "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash 
- c \"ssh
 root@s120;\""  --tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash -c \"ssh root@s120;\""  
--tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash -c 
\"ssh root@s120;\""

e intentará abrir 15 conexiones, de las cuales casi inmediatamente se cierran 5 pestañas y solo 10 conexiones permanecen abiertas. Este problema también ocurre en terminal_xfce(lo cual prefiero porque encontré que gnome-terminal es un poco menos estable)

Parece que no se permiten más de 10 conexiones de apertura simultáneas,

Parece que no se permiten más de 10 conexiones simultáneas al inicio, pero si abro 10 pestañas y espero a que comiencen las conexiones, puedo abrir otra terminal con 10 pestañas en el mismo servidor.

(También quiero decir que los resultados de esta prueba son los mismos con los firewalls IP TABLES deshabilitados tanto en el cliente como en los servidores)

También tengo que decir que este problema es molesto, especialmente en lsyncdlas rsyncejecuciones, mientras que la sincronización de múltiples destinos en el sistema de archivos en el mismo servidor genera resultados inesperados porque el sistema operativo finaliza las conexiones, el caso de prueba del terminal es más sencillo de reproducir incluso si menos problemático de manejar.

Respuesta1

Si todas sus conexiones van a utilizar comandos programados... ¿por qué utilizar las pestañas de gnome-terminal? Estás utilizando muchos recursos que realmente no necesitas y que pueden estar contribuyendo a los factores limitantes que estás experimentando.

Debería poder obtener un número casi ilimitado (para sus propósitos) de conexiones si deja que el sistema maneje las conexiones en lugar de forzar a gnome-terminal a intervenir.

for a in $( seq 1 50 ); do
  ssh root@s120 my_cool_script &
  ssh root@s121 my_cool_script &
done
wait

Esto debería crear 100 conexiones (50 a s120, 50 a s121) en segundos, todas ejecutándose.mi_guión_cool'. Siempre y cuando todo lo que estés haciendo esté escrito, todo se desarrollará sin problemas.

El comando 'esperar' hace que el script espere a que se completen todos los trabajos en segundo plano antes de continuar. Puede que no necesites o no quieras eso.

(Además, hay que escribir MUCHO menos...)

Respuesta2

Busque MaxStartups en /etc/ssh/sshd_config.

  • Limita los inicios de sesión simultáneos no autorizados a sshd.

  • El valor predeterminado es 10.

información relacionada