He encontrado un buen monitor que me permite registrar una variedad de datos de tiempo de ejecución de un solo proceso. Estoy buscando un equivalente que haga lo mismo para el uso de ancho de banda. Idealmente, el comando debería verse así bwmon --pid 1 --log init.log
. ¿Hay tal? ¿Se puede ejecutar sin privilegios de administrador?
monitoring
bandwidth
tshepang
fuente
fuente
Respuestas:
algo para comenzar (en caso de que quiera escribirlo usted mismo):
comentarios:
stat --printf="%N\n" /proc/PID/exe | cut -d ' ' -f 3
fuente
nc
par cliente / servidor sobre localhost, enviando un byte por segundo, y observé/proc/<listening-nc-pid>/net/dev
. Luego ejecuté un segundonc
par, enviando a la velocidad máxima. El archivo que estaba viendo obviamente contaba los datos del segundo par junto con los del primer par. Ejecutando en Linux 2.6.32.function strftime never defined
; Se solucionó instalando gawk ./proc/<pid>/net/dev
y/proc/net/dev
tiene el mismo contenido aquí. Por lo tanto, el scipt solo informa el tráfico para eth0, no para el proceso dado.eth0
, como se ve en el proceso. No , no cuenta los datos enviados por el proceso a través de esa interfaz.Si está satisfecho con el ancho de banda general de E / S utilizado (o si su programa funciona casi completamente con E / S de red), puede ver el
/proc/<pid>/io
archivo. Quieres los camposrchar
ywchar
. Es posible que desee restarread_bytes
ywrite_bytes
, ya que representan lecturas y escrituras en la capa de almacenamiento. Consulte la sección 3.3 de http://www.kernel.org/doc/Documentation/filesystems/proc.txt .Si necesita más resolución ... tal vez podría escribir esto usando
lsof
ystrace
, aunque sería doloroso tener todos los casos de esquina correctos. La idea básica es la de analizar la salida destrace -p <pid>
, agarrando el primer parámetro (= el descriptor de archivo) y el valor de retorno (= número de bytes) deread()
,write()
,send()
, yrecv()
las llamadas ( NOTA hay varios más llamadas al sistema para escuchar; remanso I' los rastreé a todos). Descartar valores negativos; Indican errores. Uselsof -p <pid>
para averiguar qué descriptores de archivo son sockets TCP / UDP y sume los recuentos por fd. Esta estrategia no requiere root siempre y cuando sea el propietario del proceso que está inspeccionando, pero sería realmente complicado escribir, y mucho menos escribir bien.fuente
prueba nethogs :
fuente