GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ejecutar lsof -i muestra muchas conexiones en CLOSE_WAIT? ¿Debería preocuparme?

(Iba a editar la respuesta de mikegrb, pero decidí que la estaba destrozando demasiado)

CLOSE_WAIT significa casi exactamente lo que dice:el núcleo está esperando que el proceso local cierre su descriptor de archivo antes de eliminar la entrada. La conexión TCP se ha interrumpido por completo y el otro extremo puede tener la impresión de que la conexión es finita, pero su extremo se está aferrando a las cosas.

La única preocupación es que muchas entradas CLOSE_WAIT consumen la memoria del kernel y las entradas de la tabla de descriptores de archivos, lo que puede ser un problema si hay montones de ellas. Si las entradas que está viendo son transitorias, probablemente sea solo que está recorriendo muchas de conexiones TCP, y está viendo una pequeña fracción de ellas en la pequeña cantidad de tiempo entre el momento en que se cierra la conexión y el proceso cierra el descriptor del archivo. Por otro lado, si son permanentes (los puertos y las direcciones IP no cambian con el tiempo), entonces algo está filtrando descriptores y debe arreglarse para que siempre cierre sus fds cuando termine con ellos. Como dijo mikegrb, es posible que una versión más nueva ya haya solucionado el problema, por lo que probablemente se justifique una pregunta en la lista de correo relevante o un examen de los registros de cambios.


El estado CLOSE_WAIT significa que el otro extremo envió un segmento FIN para cerrar la conexión. La conexión todavía está algo así como establecida. Está en un modo que se podría considerar como semidúplex, lo que permite que este extremo elimine cualquier búfer, enviando los últimos bits de datos al extremo solicitando que se cierre la conexión antes de cerrar la conexión desde este extremo.

Si tiene muchas conexiones en CLOSE_WAIT, significa que el proceso responsable no cierra el socket una vez que entra en CLOSE_WAIT. Puede usar tcpdump u otras herramientas de captura de tráfico de red para ver los paquetes.

También eche un vistazo al responsable del proceso. Por curiosidad cual es el proceso responsable? Es posible que tenga una versión corregida más nueva disponible o tal vez sea el momento de presentar un informe de error;)


Linux
  1. ¿Cómo elimino una conexión de enchufe CLOSE_WAIT?

  2. Ejecutando notificar-enviar como root

  3. Examen de varios puertos al ejecutar NetCat (nc)

  4. Enumere la pestaña cron actualmente en ejecución y deténgala

  5. ¿Con qué usuario deberían ejecutarse apache y PHP? ¿Qué permisos deben tener los archivos /var/www?

Comando de pantalla de Linux:mantenga los procesos en ejecución a pesar de una conexión interrumpida

¿Comprobar que se está ejecutando un script?

¿Por qué la salida "netstat" muestra muchas conexiones en estado CLOSE_WAIT?

Linux:no queda espacio en el dispositivo mientras que el comando df muestra mucho espacio libre

Conexión de reenvío PuTTY, CygwinX y X11 rechazada

¿Cómo calcular max_connections para PostgreSQL y default_pool_size para pgbouncer?