USB performansı / trafik monitörü?


18

Her şeyden önce benzer bir soru buldum ama sorunumu gerçekten çözmedi. Kullandığım bir cihazın USB veri yolunun programımdaki darboğaz olup olmadığını keşfetmeye çalışıyorum.

Veri yolu kullanımını göstermek için bir USB veri yolunu (gnome-system-monitor'un nasıl çalıştığına benzer) nasıl izleyebilirim? Temel olarak otobüsün ne zaman 'maksimum' çıktığını tanımlamak istiyorum. Aradığım şey usbmon için bazı arayüz, sanırım ihtiyacım olanı yapacak gibi görünüyor.

Bu, USRP ve GNU Radyo'yu test etmekten kaynaklandı. USB veri yolunun sınırlayıcı bir faktör olabileceği bir durumla karşılaşıyorum, bu yüzden USB performans izlemeyle ilgili daha genel bir soru soruyorum.


1
Wireshark ve usbmon trafiği alırken, bana daha fazla iş hacmi ve benzeri bir fikir verebilecek bir şeye ihtiyacım var.
Bay Shickadance

USB veriyolunun teorik maksimum değerine ulaştığını görüyor musunuz? Aldığınız trafiği donanımınızın ölçütleriyle karşılaştırdınız mı? Maksimum verim genellikle sistem veriyoluna değil, bağlı cihaza bağlıdır, bu nedenle düzgün bir şekilde test etmek için bu amaç için özel olarak yapılmış bazı donanımlara ihtiyacınız olacaktır.
forcefsck

Yanıtlar:


4

Yana usbmon transfer her paketin uzunluğu sağlar, ben ayrıştırmak için hızlı bir program yazarak bu yaklaşım 0udosya (tüm USB cihazları için veri içerdiği.) Daha sonra bir çalışan toplam tutmak, USB veri yolu ve cihaz sayıları alacağını her cihaz için paket uzunluğu alanını her iki yönde de kullanın.

Bu size her bir yönde, aygıt başına aktarılan veri miktarını verecektir. Saniyede bir kez yazdırırsanız, her cihazın verimi hakkında oldukça iyi bir fikir edinirsiniz. Herhangi bir USB ek yükü içermeyeceğini unutmayın, ancak rakamları mevcut bant genişliğini doyurabilecek bir cihazla karşılaştırırsanız sınıra yaklaşıp yaklaşmadığınızı bilirsiniz.


3
Önceden var olan bir aracı umuyordum, ancak bunun yeterli olacağını düşünüyorum.
Bay Shickadance

10

USBtop kullanın , hangi cihazların ne kadar bant genişliği kullandığına dair güzel bir genel bakış sağlar:

Bus ID 1 (USB bus number 1) To device   From device
  Device ID 1 :             0.00 kb/s   0.00 kb/s
  Device ID 2 :             0.00 kb/s   0.00 kb/s
Bus ID 2 (USB bus number 2) To device   From device
  Device ID 1 :             0.00 kb/s   0.00 kb/s
  Device ID 4 :             141.73 kb/s 13777.68 kb/s
  Device ID 5 :             9.98 kb/s   11.24 kb/s
  Device ID 6 :             0.00 kb/s   0.00 kb/s
  Device ID 7 :             0.00 kb/s   0.00 kb/s
  Device ID 8 :             141.71 kb/s 15257.26 kb/s

2
Beni işaret ettiğin için teşekkürler usbtop. Yararlı görünüyor. Nasıl kuracağınız aşağıda açıklanmıştır: unix.stackexchange.com/a/489268/114401 .
Gabriel Staples

1
Ubuntu 19.04'te resmi depolarda, yani basitçe apt install usbtop.
luator

4

1. usbtop:

As sebas noktaları üzerinden , usbtop (çok iyi olabilir rağmen) bunu tavsiye böylece, yararlı bilgiler belirli bir minimum seviyeye vermek gibi görünüyor.

resim açıklamasını buraya girin

Nasıl yükleyeceğiniz aşağıda açıklanmıştır:

  1. Git deposunu klonlayın:

    git clone https://github.com/aguinet/usbtop.git 
    
  2. Yeni oluşturulmuş dizine gidin git clone:

    cd usbtop
    
  3. Bağımlılıkları yükleyin:

    sudo apt update 
    sudo apt install libboost-dev libpcap-dev libboost-thread-dev libboost-system-dev 
    
  4. Yerel derleme dizini ve cd oluşturun:

    mkdir _build && cd _build 
    
  5. Kaynaktan usbtop oluşturmaya hazırlamak için cmake komutunu çalıştırın:

    cmake -DCMAKE_BUILD_TYPE=Release .. 
    
  6. Kaynaktan usbtop oluşturun:

    make 
    
  7. Usbtop yükleyin:

    sudo make install 
    
  8. USB veri yollarına erişimi açmak için usbmon çekirdek modülünü yükleyin (bunun ne olduğunu düşünüyorum, ancak gerekli olduğunu biliyorum):

    sudo modprobe usbmon 
    
  9. Usbtop'u çalıştırın (bu işe yaramazsa sudo usbtopbunun yerine kullanın):

    usbtop 
    

Bir şey kaçırırsam yorumlarda bana bildirin.

Yükleme Referansları:

2. Güncelleme: Bunun iostatyerine şunları da kullanabilirsiniz :

sudo apt install sysstat

Aşağıdakilerle 1 saniyelik aralıklarla çalıştırın:

iostat -d 1

VEYA 0.1 saniyelik aralıklarla:

watch -n 0.1 iostat

Örnek çıktı iostat -d 1:

resim açıklamasını buraya girin

Referanslar:

/ubuntu/3561/how-do-i-monitor-disk-activity-on-a-specific-drive

Ek okuma:

https://www.znetlive.com/blog/monitor-disk-io-windows-linux/

İlişkili:



0

Kullanılması htop, ben preslenmiş F2için Setup, seçilen sütunlar eklenir IO_READ_RATE, IO_WRITE_RATEya da IO_RATE, ve ben süreçler okuma ya gelen ve disklerin yazdığımız hızını görmek mümkün oldu.


Bu soru, disk trafiği değil, USB trafiğiyle ilgilidir (örneğin, bir USB web kamerasının kullandığı bant genişliği.)
Malvineous
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.