Antes de tudo, encontrei uma pergunta semelhante, mas isso realmente não resolve o meu problema. Estou tentando descobrir se o barramento USB para um dispositivo que estou usando é o gargalo do meu programa.
Como posso monitorar um barramento USB (semelhante ao funcionamento do gnome-system-monitor) para mostrar a utilização do barramento? Basicamente, quero identificar quando o ônibus está sendo 'estourado'. Eu acho que o que estou procurando é alguma interface para usbmon, pois parece que faria o que eu preciso.
Isso aconteceu ao testar o USRP e o GNU Radio. Estou enfrentando uma situação em que parece que o barramento USB pode ser um fator limitante, por isso faço a pergunta mais geral sobre o monitoramento do desempenho do USB.
usb
performance
monitoring
Mr. Shickadance
fonte
fonte
Respostas:
Como o usbmon fornece o tamanho de cada pacote transferido, eu abordaria isso escrevendo um programa rápido para analisar o
0u
arquivo (que possui dados para todos os dispositivos USB). Ele selecionaria os números de barramento e dispositivo USB e manteria um total de o campo de comprimento do pacote nas duas direções para cada dispositivo.Isso fornecerá a quantidade de dados transferidos por dispositivo, em cada direção. Se você imprimir uma vez por segundo, terá uma boa idéia da taxa de transferência de cada dispositivo. Observe que ele não inclui nenhuma sobrecarga de USB, mas se você comparar as figuras com um dispositivo capaz de saturar a largura de banda disponível, saberá se está chegando perto do limite.
fonte
Use usbtop , fornece uma boa visão geral de quais dispositivos estão usando quanta largura de banda:
fonte
usbtop
. Parece útil. Veja como instalá-lo: unix.stackexchange.com/a/489268/114401 .apt install usbtop
.1. usbtop:
Como sebas aponta , o usbtop parece fornecer um certo nível mínimo de informações úteis (embora possa ser muito melhor), por isso recomendo.
Veja como instalá-lo:
Clone o repositório git:
Navegue para o diretório que acabou de ser criado em
git clone
:Instale dependências:
Crie o diretório de compilação local e cd nele:
Execute o cmake para se preparar para construir o usbtop a partir da fonte:
Crie o usbtop a partir da fonte:
Instale o usbtop:
Carregue o módulo do kernel usbmon para abrir o acesso aos barramentos USB (acho que é isso que faz, mas sei que é necessário):
Execute o usbtop (se isso não funcionar, use
sudo usbtop
):Se eu perdi alguma coisa, deixe-me saber nos comentários.
Referências de instalação:
2. Atualização: Você também pode usar
iostat
:Execute em intervalos de 1 segundo com:
OU com intervalos de 0,1 segundo com:
Saída de amostra de
iostat -d 1
:Referências:
/ubuntu/3561/how-do-i-monitor-disk-activity-on-a-specific-drive
Leitura adicional:
https://www.znetlive.com/blog/monitor-disk-io-windows-linux/
Palavras-chave:
fonte
Eu escrevi um par de scripts de shell para obter a taxa de transferência de um dispositivo USB. Se alguém o que usá-lo, você pode encontrá-lo neste post .
fonte
usbmon
quais precisam ser instalados / compilados (?) Manualmente.Usando
htop
, eu pressioneiF2
paraSetup
, colunas selecionadas, acrescentouIO_READ_RATE
,IO_WRITE_RATE
ouIO_RATE
, e eu era capaz de ver a velocidade com que os processos foram ler ou escrever de e para os discos.fonte