¿A dónde va la espera de la red en la parte superior?

9

Si la parte superior muestra altas cargas y no sabe si el proceso que lo está causando está haciendo tiempo de procesador o está haciendo E / S de red (no E / S local) ¿cómo puede averiguarlo?

En nuestro servidor veo valores altos para la carga, pero en combinación con 60% -70% de inactividad y alrededor del 25% de usuario. Me gustaría saber cómo interpretar esos valores, pero en Internet casi siempre leo que puedes usar iostat para ver si el proceso está destruyendo tus discos. Pero ya sé con certeza que ese no es el caso. El proceso en cuestión tampoco tiene problemas para hacer su trabajo, pero aún así la carga es alta.

Entonces, ¿hay alguna manera de saber más qué parte es causada por la espera de la red y qué parte es causada por el tiempo real del procesador? ¿Y cuál es el significado de 'inactivo' en la parte superior?

Para mayor claridad: con carga me refiero a los 3 números que significan los procesos en cola promedio por núcleo. Hay 8 núcleos en esta máquina y los números llegan a 25, por lo que es una carga de 2.5 por núcleo.

ene
fuente
¿Cómo se llama "carga": uso de CPU o los 3 valores de "promedio de carga" (vistos en la uptimesalida)?
Spuk
1
La pregunta no tiene sentido ... esperar a que la red IO no use ningún tiempo de CPU.
psusi
2
Me encanta la utilidad htoppara ver los procesos. En particular, puede permitirle seleccionar un proceso y luego usar el lcomando, le mostrará todos los archivos abiertos usando dispositivos lsofincluidos IPv4y de IPv6transmisión y demás . Si lo ha straceinstalado en su caja, también puede realizar la depuración de llamadas y señales del sistema. No es exactamente una respuesta, sino otra herramienta que consideraría para lo que está tratando de investigar.
111 ---
Me refiero a los 3 números. Según tengo entendido, se llaman "carga", ¿o me equivoco aquí? Representan el número de procesos en la cola que se pueden ejecutar, pero ¿eso incluye procesos que tienen espera de red o excluye los procesos?
enero
¿Y qué define como "alto"? El promedio de carga no se escala para los núcleos. por ejemplo, un sistema con un promedio de carga de 1 y 4 núcleos tiene una carga de 1/4 de un sistema con un promedio de carga de 1 y solo 1 núcleo. El promedio de carga es un número muy grueso.
bahamat

Respuestas:

3

Si la parte superior muestra altas cargas y no sabe si el proceso que lo está causando está haciendo tiempo de procesador o está haciendo E / S de red (no E / S local) ¿cómo puede averiguarlo?

La E / S de red no se tiene en cuenta en la métrica iowait de Linux, a menos que sea parte de una transacción NFS, en cuyo caso se considera como E / S de disco.

Entonces, ¿hay alguna manera de saber más qué parte es causada por la espera de la red y qué parte es causada por el tiempo real del procesador?

Fuera de una hipotética espera NFS, la red no toma parte de la carga promedio.

¿Y cuál es el significado de 'inactivo' en la parte superior?

Eso significa el porcentaje de tiempo que la CPU no está en otro de los estados enumerados (usuario, sistema, nice, iowait, interrupciones de hardware, interrupciones de software, robados). Esto incluye esperas de red. Cuando está inactivo, la CPU no hace esencialmente nada. Tenga en cuenta que iowait también está inactivo ya que una CPU tampoco hace nada.

jlliagre
fuente
Gracias por tu respuesta. Entonces, en mi situación en la que veo un alto valor de inactividad (60% - 70%) y un estado de usuario más bajo (alrededor del 25%) y bajo iowait, esto podría significar que el servidor está esperando recursos de red, si lo entiendo correctamente.
Ene
1
No necesariamente esperando recursos de red. Podría ser simplemente que la CPU es lo suficientemente rápida como para completar todo lo que se debe hacer. El alto promedio de carga posiblemente es causado por un número muy alto de subprocesos que compiten simultáneamente por una CPU pero durante períodos espurios muy cortos.
jlliagre