USB 2.0 bağlantı noktasında USB 2.0 hızlarını nasıl aşarım?


3

Dosyaları üzerinde bir 256 MB rasgele dolgulu dosya bulunan bir RAM diskten bir USB 2.0 sürücüsüne yazıyorum (dosyanın çok fazla sıkıştırılmasını durdurmak için / dev / urandom'dan oluşturulmuş). ddÇıktılan dosya yazma hızlarına baktığımda ortalamaları 75 MB / sn civarında. Bu özellikle ilginçtir çünkü USB 2.0'ın teorik maksimum hızı 60 MB / sn'dir.

Çalıştırdığım komut:

dd if=/var/mnt/temp_data/urandom of=/mnt/usb/$FILE_NAME bs=10M count=1 

Bunu birkaç kez çalıştırdığımı ve sürücüyü% 95 dolulukta doldurduğumu unutmayın. 10 MB'lık dosyaların nedeni, sürücünün% 95 doluluk oranına oldukça yakın olduğundan emin olmak ve bu boyutta bir bellek dolgusu alamıyorum, çünkü hangi boyutta bir bellek kartının takılacağını bilmiyorum. ve birden fazla dosyaya sahip olmak testin bir parçasıdır.

Motifler yazma hızını etkilerse, yaptığım şey, USB standartlarına uyup uymadığını görmek için sistemdeki USB bağlantı noktalarının yazma hızını test etmektir. Bu nedenle, bu oldukça üzücü ve / dev / urandom'dan (dolaylı) doldurma oluyor.

Peki neden bu oluyor ve nasıl düzeltebilirim? Çıktı yapılan ölçümlerin ddyanlış olduğunu farz ediyorum , aksi takdirde sırlarımdaki USB sürücü yazarlarını satmaya başlayacağım.

(Bunun unix.se olması gerektiğinden dolayı özür dilerim, emin değildim)


Öncelikle bs = 10M count = 1 size sadece yazma hızı hakkında iyi bir yaklaşım vermeyecektir, çünkü sadece 10Mb yazıyorsunuz. Veriler bir yere önbelleğe alınmış olabilir. En az 1 Gb veri yazmanızı tavsiye ederim. Bs = 1M count = 1000'i deneyin ve sonucun farklı olup olmadığına bakın
Art Gertner

@smc Ben sadece bir kez çalıştırmıyorum, sürücüyü 10MB'lık dosyalarla dolduruyorum ve ~ 75MB tam testin ortalaması alınarak
Yann

Sağladığınız komut sürücüyü 10 MB dosyayla doldurmaz, yalnızca bir tane yazar. Bu komutun yürütülmesi sırasında dd tarafından bildirilen performans, yazma önbelleğinden etkilenebilir. Yukarıda önerdiğim komut parametrelerini deneyin ya da dd'nin tüm sürücüyü dolduracak şekilde değiştirin
Art Gertner

@smc Çok kez çalıştırdığınızda yapar. Bir for döngüsü içinde.
Yann

az önce söylediklerimi görmezden mi geliyorsun? Birden çok kez çalıştırdığınızda, bu komutta bildirilen hıza güvenemezsiniz. Bu 'count = x' içindir
Art Gertner

Yanıtlar:


2

Tamam, buradaki tüm yorumları ve sohbetteki uzun tartışmalarımızı izleyerek sorunun cevabı:

Sistemde yazma hızını test ederken, USB veya HDD'ye yazıyorsa, FilesSystem'a veya doğrudan RAW modunda diske yazıyorsa , önbelleği dolduracak kadar veri yazdığınızdan emin olun . Yeterli veri yazılmazsa, önbelleğe yazma hızını ölçersiniz (RAM’de)

OP, syncyazma seansları arasında döngü yürütme komutunda 10MB dosya yazmaya çalıştı .

Etkili ddolan şey, yazmanın yaptığı komutun çok hızlı bir şekilde önbelleğe almak için veri yazmasıydı. Rapor edilen hız 75 MB / sn civarındaydı. Bundan sonra synckomutun yürütülmesi birkaç saniye sürebilir, ancak OP bunu hesaba katmadı.

Testi daha büyük dosyalar yazmak üzere değiştirdikten sonra, gerçek yazma hızının USB 2.0 standartlarına uygun 2,2 MB / sn civarında olduğu ortaya çıktı.

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.