GNU/Linux >> Tutoriales Linux >  >> Linux

Comando "ss" en el paquete Iproute; ¿Por qué consultar la tabla Slab para tomas de tiempo de espera?

Perdóneme si este no es el mejor foro para esta pregunta, pero parece más relevante para el kernel que para la programación en sí.

Estoy escribiendo un script que consulta el sistema en busca de puertos abiertos para que podamos graficar y monitorear las estadísticas. Para esto, estoy usando el comando "ss" del paquete iproute. Si ejecuta ss -s|grep estab recibirá un resultado similar a este:

TCP:   296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0

Mi pregunta tiene que ver con la variable timewait, que muestra los sockets calculados en el estado TIME_WAIT. Cuando traté de averiguar a qué número se hacía referencia después de la barra inclinada, se convirtió en una aventura vertiginosa de buscar el código fuente que finalmente me llevó a encontrar el siguiente fragmento:

printf("TCP:   %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n",
       s.tcp_total + slabstat.tcp_syns + s.tcp_tws,
       sn.tcp_estab,
       s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws),
       s.tcp_orphans,
       slabstat.tcp_syns,
       s.tcp_tws, slabstat.tcp_tws,
       slabstat.tcp_ports
       );

Debo admitir que mi búsqueda de lo que se suponía que significaba "slabstat" finalmente me llevó a aprender sobre los cachés de losa y su interfaz de informes en /proc/slabinfo.

La pregunta:¿Qué tiene que ver la losa con los cálculos de socket TIME_WAIT? No puedo averiguar por qué se informa este número, ya que cada vez que ejecuto el comando en todos los servidores en los que lo probé, el número siempre ha sido cero.

Respuesta aceptada:

Se parece a tcp_tw_buckets es lo que finalmente se sondea, que es una estructura eliminada a partir de Linux 2.6.12

Entonces, el último número probablemente siempre sea 0 a menos que esté en kernels de 7 años.

En cuanto a la consulta de losa, por lo que puedo decir, es ridículamente más rápido que los otros métodos disponibles.


Linux
  1. Ejemplos de comandos RPM para consultar, instalar, eliminar y actualizar paquetes

  2. iptables:comando no encontrado

  3. rpm:comando no encontrado

  4. ¿Por qué no existe un administrador de paquetes realmente unificado para Linux?

  5. Sintaxis adecuada para el comando id -r

Descubra por qué el comando "menos" es más rápido que el comando "más" para una navegación de archivos eficaz

12 ejemplos de comandos IP para usuarios de Linux

Conceptos básicos de Linux:30 ejemplos de comandos YUM para la gestión de paquetes de Linux

Exa:un reemplazo moderno para ls Command

Los 50 mejores ejemplos de comandos YUM para usuarios de RHEL o CentOS

Comando RPM:15 ejemplos para instalar, desinstalar, actualizar y consultar paquetes RPM