No hay una respuesta fácil aquí.
Puede mirar la salida de ‘ netstat -penet ‘ para aprender algo de lo que tal vez quiera saber.
La columna 7 tiene el ID de usuario. ‘ netstat -peet ‘ y verás el nombre de usuario. Sin embargo, no recomiendo omitir -n porque sin él su netstat incurre en una sobrecarga de búsqueda de DNS, que puede ser considerablemente especial cuando la IP no tiene nombre.
- ¿Hay alguna manera de arreglar un adaptador de CA portátil que no se puede conectar a su cable?
- ¿Cuáles son las tres diferencias importantes entre la red definida por software (SDN), la virtualización de red (NV) y la virtualización de funciones de red (NFV)?
- ¿Cuál es la diferencia entre latencia y rendimiento?
- En una situación de campus móvil de múltiples sitios, ¿qué tipo de conexiones a Internet se deben mirar?
- ¿Es posible rastrear el chat de IP de alguien en Facebook?
La columna final, 9, tiene el PID / Nombre del proceso; lamentablemente, no veo una manera de obtener solo el PID. Entonces tendrías que usar, por ejemplo,
netstat -penet | grep 2219 /
… para ver las conexiones para el proceso ID 2219.
Sin embargo … lo anterior no te llevará demasiado lejos. Puede ver cuántas conexiones hay y de dónde provienen, pero no cuántos datos están moviendo.
Por defecto, Linux no mantiene muchas estadísticas que involucran una sobrecarga de paquete por paquete, ya que estas incurrirían en demasiada sobrecarga dentro de la pila TCP / IP. Además … para muchos de los paquetes, la “respuesta correcta” sobre qué registrar / acumular variaría la opinión del usuario final por la opinión del usuario final. ¿Están interesados los usuarios finales en rastrear el tamaño del paquete completo o solo la porción de datos? ¿Qué tal los paquetes duplicados? ¿Contarlos dos veces o no? ¿Qué tal para los paquetes que se caen por la pila? ¿Cuentan o no? Etc.
Como tal, no hay datos de “tráfico total para este proceso”, ni datos de “tráfico total para este usuario”, ni datos de “tráfico total para esta conexión de red” que se están registrando.
A menudo, los firewalls pueden rastrear la cantidad de veces que las ACL particulares permiten que los paquetes pasen a un puerto en particular. Entonces, si tiene un firewall de hardware frente al servidor, es posible que desee ver cómo puede hacer que rastree el tráfico total a un puerto en particular para usted.
Del mismo modo, PUEDE hacerse a través de iptables, pero no me pregunte cómo.
Nada en Linux básico está rastreando el rendimiento por puerto – “velocidad de transferencia” – para usted. Tendría que instrumentar eso directamente dentro del servicio web (<- MI RECOMENDACIÓN), o usar algo como tcpdump o alguna otra monitorización intrusiva de la red para generar datos a partir de los cuales pueda calcular las estadísticas.
No recomendaría seguir la ruta de “monitoreo intrusivo de la red” a menos que el servidor SOLO entregue este servicio en particular, ya que afectará la calidad del servicio para todos los servicios de red en el servidor cuando se ejecute.
Y … si ese es el caso (el único servicio de red en el servidor es el que está ejecutando), entonces puede “engañar” y usar los números RX / TX totales de eth0.
[correo electrónico protegido] : ~ # echo -n `fecha`; netstat -i | grep eth0 | awk ‘{print” “$ 4” “$ 8}’
Jue 28 feb 17:24:39 CST 2013 315225 122047
[correo electrónico protegido] : ~ # echo -n `fecha`; netstat -i | grep eth0 | awk ‘{print” “$ 4” “$ 8}’
Jue 28 feb 17:24:48 CST 2013 315242 122052
[correo electrónico protegido] : ~ # echo -n `fecha`; netstat -i | grep eth0 | awk ‘{print” “$ 4” “$ 8}’
Jue 28 feb 17:24:51 CST 2013 315250 122056
Con un trabajo cron que descarga el tiempo, RX y TX cuentan los registros en un archivo de registro, siempre que conozca el tamaño del paquete de su aplicación, puede calcular de manera bastante confiable sus rendimientos actuales. O puede obtener bytes reales usando ‘ cat / proc / net / dev ‘ pero el grepping / awking es un poco más complejo allí ya que no hay espacio después del primero: (cat el archivo para ver a qué me refiero)
TAMBIÉN – “sar” (si lo tiene instalado) puede estar rastreando sus interfaces rx y paquetes de tx por segundo, pero nuevamente eso no es por puerto.
“iftop” (tendría que instalarlo) muestra, como “top”, las estadísticas de tráfico de la red; sin embargo, puede que no sea trivial extraer esas estadísticas mediante programación.
iftop: muestra el uso de ancho de banda en una interfaz
También he escuchado cosas buenas sobre iptraf-ng pero no lo he usado yo mismo. Todavía.