En primer lugar, encontré una pregunta similar , pero en realidad no resuelve mi problema. Estoy tratando de descubrir si el bus USB para un dispositivo que estoy usando es el cuello de botella en mi programa.
¿Cómo puedo monitorear un bus USB (similar a cómo funciona gnome-system-monitor) para mostrar la utilización del bus? Básicamente, quiero identificar cuándo se está 'maximizando' el bus. Supongo que lo que estoy buscando es alguna interfaz para usbmon, ya que parece que haría lo que necesito.
Esto se produjo al probar la Radio USRP y GNU. Me encuentro con una situación en la que parece que el bus USB podría ser un factor limitante, por lo que hago una pregunta más general sobre la supervisión del rendimiento de USB.
usb
performance
monitoring
Sr. Shickadance
fuente
fuente
Respuestas:
Como usbmon proporciona la longitud de cada paquete transferido, abordaría esto escribiendo un programa rápido para analizar el
0u
archivo (que tiene datos para todos los dispositivos USB). Escogería el bus USB y los números de dispositivo, y luego mantendría un total acumulado de el campo de longitud del paquete en ambas direcciones para cada dispositivo.Esto le dará la cantidad de datos transferidos por dispositivo, en cada dirección. Si lo imprime una vez por segundo, tendrá una idea bastante clara del rendimiento de cada dispositivo. Tenga en cuenta que no incluirá ninguna sobrecarga USB, pero si compara las cifras con un dispositivo que puede saturar el ancho de banda disponible, sabrá si se está acercando al límite.
fuente
Use usbtop , da una buena descripción de qué dispositivos están usando cuánto ancho de banda:
fuente
usbtop
. Se ve útil. Aquí se explica cómo instalarlo: unix.stackexchange.com/a/489268/114401 .apt install usbtop
.1. usbtop:
Como señala sebas , usbtop parece dar un cierto nivel mínimo de información útil (aunque podría ser mucho mejor), por lo que lo recomiendo.
Aquí se explica cómo instalarlo:
Clonar el repositorio git:
Navegue al directorio que acaba de crearse desde
git clone
:Instalar dependencias:
Cree un directorio de compilación local y cd en él:
Ejecute cmake para prepararse para construir usbtop desde la fuente:
Construir usbtop desde la fuente:
Instalar usbtop:
Cargue el módulo del kernel usbmon para abrir el acceso a los buses USB (creo que esto es lo que hace, pero sé que es obligatorio):
Ejecute usbtop (si esto no funciona, use
sudo usbtop
en su lugar):Si me perdí algo, házmelo saber en los comentarios.
Instalar referencias:
2. Actualización: también puedes usar
iostat
:Corre a intervalos de 1 segundo con:
O con intervalos de 0.1 segundos con:
Salida de muestra de
iostat -d 1
:Referencias
/ubuntu/3561/how-do-i-monitor-disk-activity-on-a-specific-drive
Lectura adicional:
https://www.znetlive.com/blog/monitor-disk-io-windows-linux/
Relacionado:
fuente
He escrito un par de scripts de shell para obtener el rendimiento de un dispositivo USB. Si alguien lo usa, puede encontrarlo en esta publicación .
fuente
usbmon
que debe instalarse / compilarse (?) Manualmente.Utilizando
htop
, presionéF2
paraSetup
, seleccioné columnas, agreguéIO_READ_RATE
,IO_WRITE_RATE
oIO_RATE
, y pude ver la velocidad a la que los procesos leían o escribían desde y hacia los discos.fuente