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 3fuente
ncpar cliente / servidor sobre localhost, enviando un byte por segundo, y observé/proc/<listening-nc-pid>/net/dev. Luego ejecuté un segundoncpar, 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/devy/proc/net/devtiene 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>/ioarchivo. Quieres los camposrcharywchar. Es posible que desee restarread_bytesywrite_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
lsofystrace, 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