Tout d'abord, j'ai trouvé une question similaire mais cela ne résout pas vraiment mon problème. J'essaie de découvrir si le bus USB d'un appareil que j'utilise est le goulot d'étranglement de mon programme.
Comment puis-je surveiller un bus USB (similaire au fonctionnement de gnome-system-monitor) pour montrer l'utilisation du bus? Fondamentalement, je veux identifier le moment où le bus est au maximum. Je suppose que ce que je recherche, c'est une interface pour usbmon, car cela semble faire ce dont j'ai besoin.
Cela vient du test de l'USRP et de la radio GNU. Je me heurte à une situation où il semble que le bus USB pourrait être un facteur limitant, alors je pose la question plus générale de la surveillance des performances USB.
usb
performance
monitoring
M. Shickadance
la source
la source
Réponses:
Puisque usbmon fournit la longueur de chaque paquet transféré, j'aborderais cela en écrivant un programme rapide pour analyser le
0u
fichier (qui contient des données pour tous les périphériques USB.) Il choisirait le bus USB et les numéros de périphérique, puis garderait un total de le champ de longueur de paquet dans les deux directions pour chaque périphérique.Cela vous donnera alors la quantité de données transférées par appareil, dans chaque direction. Si vous l'imprimez une fois par seconde, vous aurez une assez bonne idée du débit de chaque appareil. Notez qu'il n'inclura aucune surcharge USB, mais si vous comparez les chiffres à un appareil capable de saturer la bande passante disponible, vous saurez si vous vous rapprochez de la limite.
la source
Utilisez usbtop , cela donne un bon aperçu des appareils qui utilisent la bande passante:
la source
usbtop
. Cela semble utile. Voici comment l'installer: unix.stackexchange.com/a/489268/114401 .apt install usbtop
.1. usbtop:
Comme le souligne sebas , usbtop semble donner un certain niveau minimum d'informations utiles (bien qu'il puisse être bien meilleur), donc je le recommande.
Voici comment l'installer:
Clonez le dépôt git:
Accédez au répertoire qui vient d'être créé à partir de
git clone
:Installer les dépendances:
Créez un répertoire de construction local et un cd dedans:
Exécutez cmake pour vous préparer à construire usbtop à partir de la source:
Construisez usbtop à partir de la source:
Installez usbtop:
Chargez le module du noyau usbmon pour ouvrir l'accès aux bus USB (je pense que c'est ce que cela fait, mais je sais que c'est nécessaire):
Exécutez usbtop (si cela ne fonctionne pas, utilisez
sudo usbtop
plutôt):Si j'ai raté quelque chose, faites-le moi savoir dans les commentaires.
Installer les références:
2. Mise à jour: vous pouvez également utiliser à la
iostat
place:Exécuter à intervalles d'une seconde avec:
OU à intervalles de 0,1 seconde avec:
Exemple de sortie de
iostat -d 1
:Les références:
/ubuntu/3561/how-do-i-monitor-disk-activity-on-a-specific-drive
Lecture supplémentaire:
https://www.znetlive.com/blog/monitor-disk-io-windows-linux/
En relation:
la source
J'ai écrit une paire de scripts shell pour obtenir le débit d'un périphérique USB. Si quelqu'un veut l'utiliser, vous pouvez le trouver dans cet article .
la source
usbmon
qui doivent être installés / compilés (?) Manuellement.En utilisant
htop
, je pressaisF2
pourSetup
, les colonnes sélectionnées, ajoutéIO_READ_RATE
,IO_WRITE_RATE
ouIO_RATE
, et j'ai pu voir la vitesse à laquelle les processus ont été lire ou d' écrire et de disques.la source