En yüksek performanslı donanım yapılandırması nedir?


35

Kesin kıyaslama numaralarının üreticiler arasında değişeceğini biliyorum, ancak genel olarak yalnızca daha yüksek uçtaki flash sürücüleri, SD kartları ve USB HDD'leri göz önünde bulundurursanız ve Raspberry Pi'niz bir ağa bir ağ üzerinden en hızlı yapılandırma olan bir ethernet anahtarı ile bağlıysa veri aktarım noktası İnsanların aslında aşağıda listelenen yapılandırmaları denedikleri ve teoriden değil gerçek sonuçları olan cevapları arıyorum.

Açıkçası, önyükleme döngüsünün en azından bir kısmı için gerekli olduğu için bir SD kart kullanılması gerekiyor, ancak aşağıda listelenen her bir cihaz için Raspberry Pi'de en yüksek ağ aktarım hızlarına sahip olan ek bir veri bölümünüz olduğunu varsayalım.

  1. SD kart
  2. Bir USB flash sürücü
  3. Bir USB HDD

Bu soru önemsizdir, çünkü ethernet iletişimi ile birleştirilmiş depolama cihazlarından biriyle ilişkili bir noktada genel işlem yükü aktarım hızını etkileyebilir, ayrıca Ahududu Pi üzerindeki ethernet portu USB veriyolu tarafından kontrol edilir, bu nedenle genel olarak iş çıkışı etkilenmelidir. Ethernet veri aktarımı ve USB medya veri aktarımının koordinasyonu. SD kartın USB bağlantı noktaları ve ethernet bağlantı noktasıyla aynı paylaşılan USB veriyolunda olup olmadığını bilmiyorum, ancak değilse, bunun akıllıca bir fayda sağladığını sanıyorum.

Karşılaştırma için gereklilik olarak ağ aktarımını içerecek şekilde düzenlendi


1
Bilginize, cevaplayıcılar sudo hdparm -t /dev/sdxkıyaslama için yararlı bir araç olarak kullanabilirsiniz .
Jivings

2
Kriterlerim yok, ama genel bilgileri: ssd> hdd> flash> sd> optik medya
Alexander

+1 - SD portu hakkında iyi nokta - USB / ethernet ile aynı veriyolunda mı? SD ve bağlı USB depolama birimindeki yük paylaşımı daha iyi sonuç veriyor mu?
Jon Egerton

@XAleXOwnZX bu cihazların açık olduğu otobüslerin cihazın maksimum performansına uyup uymadığından emin olup olmadığını o zaman sırayla alır, ancak bahse girerim ki Raspberry Pi sadece USB olduğundan, siparişiniz daha çok ssd = hdd = flash> optical olacaktır. ve SD, USB bağlantı noktalarından ayrı bir veri yolu olmasına bağlı olarak bu listede herhangi bir yerde bulunabilir.
Dan B,

Bu iyi bir nokta, ancak kesinlikle HDD> Flash. USB sabit diskim flash sürücüm 5-10'a kıyasla 30 mb / s alıyor
Alexander,

Yanıtlar:


35

Kıyaslama yaparken daima sınırlarınızın ne olduğunu belirlemelisiniz. Çünkü bu lanetten 100mbs çıkarmayı düşünüyorsanız, sadece kendinizi kandırıyorsunuz!

AhududuPI Model-B'nin bu Blok tasarımına bakın görüntü tanımını buraya girin

Bu yüzden burada çok önemli bir gerçeği tespit ediyoruz. Ethernet, USB denetleyicisi tarafından tıkanıyor, çünkü kurduğumuz blok şemasını USB hub'ına bağlı. (Net bir gösterge yok, başka bir veri yolu mu kullanıyor yoksa sadece USB2 mi kullanıyor?)

Ohh bak - başka bir blok şeması,

görüntü tanımını buraya girin

Şimdi durum üzerine daha da fazla ışık tutuyor. 10/100 denetleyici USB hub'ına bağlı - ne yazık ki, yine de hiçbir özellik, hub'ın lan denetleyiciyle ne kadar hızlı iletişim kurduğunu söylemiyor - usb hızı ve lan'ın görüşülmekte olduğunu belirten önemli gerçeği bekleyin karışık hızlı usb ortamları için.

SD Kart nerede?

SD kartın doğrudan BCM2835'e bağlı olduğunu (sayfa 65) ve performansın çeşitli konfigürasyon seviyelerinden nasıl etkilendiğini çok iyi anladığını ortaya koydu . Dikkat edilmesi gereken önemli bir husus, eğer SD kartın özel bir Saati varsa, çekirdek CPU / GPU’dan bağımsız olarak tam hızda çalışabilmesidir (hangi kart ve standart kullanılırsa kullanılsın - birkaç standardı desteklediğini görebilirsiniz).

görüntü tanımını buraya girin

Peki bunun anlamı nedir?

Bunun anlamı, daha hızlı SD kartı ve berbat kalem sürücüsünü (4 gb / 8 gb) kıyaslarsanız büyük olasılıkla büyük performans farkları elde edersiniz. Bu yüzden şimdi bu soruyu gündeme getiriyor: CPU / GPU bu harika gömülü aygıtla (usb / lan çip) iletişimi nasıl ele alıyor ve hangi hızda iletişim kurabiliyor.

Herhangi bir kıyaslama yapmadan önce teorinin gerçekte ne kadar ileri gidebileceğini gördün mü? Buradaki diğer bir anahtar nokta şudur: - CPU veri akışını nasıl kontrol eder? Tavsiye edildiği gibi ayrı saat kanalını kullanıyor mu?

İdeal bir dünyada bu LAN / USB'nin işleyeceğini düşünürsünüz. Fakat bu bir MCU gerektirir. Bu blok şemada herhangi bir yerde bir MCY görüyor muyuz .. NO!

İşlemcinin IO DATA'nın USB portunu göndermesini istemesi ve ardından LAN portuna gitmesini istemek zorunda (Aynı USB HUB üzerinden) Evet.

Ayrıca bir USB kalem sürücüsüne ve SD karttan tüm LAN üzerinden kopyaladığınızda ne olacağını da not etmek harika bir şeydir, bazı trafiğe yol açacaktır.

Çeşitli yönleriyle kıyaslamalıyız.

Neyi karşılaştırmaya çalıştığımızı belirlerken gerçek bir dünya sorusu sorabiliriz.

  1. Dahili USB SD'den ne kadar hızlı veri işliyor?
  2. SD'ye ve ardından LAN'a okumak / yazmak için ne kadar CPU kullanılıyor?
  3. Bir USB Pen sürücüsünü okumak / yazmak için ne kadar CPU kullanılıyor?
  4. Herhangi bir veriyi kopyalamak CPU kullanımını doğrudan etkiler mi?
  5. Katıştırılmış USB / LAN yongası, 2 kaynaktan gelen verileri okumadan LAN portuna ne kadar iyi geliyor ve CPU'yu orantılı olarak etkiliyor mu?
  6. Lan'ın 10 MB / sn'nin tam olarak dolup dolmayacağını test etmeye gerek yok çünkü USB hub'ının içinde bulunduğu durum yüzünden tıkalı.

Şimdi ne için savaştığınızı bildiğinize göre, kendinize cevap vermeniz için size meydan okuyorum.

Bunu çok iyi bir başlangıç ​​noktası bulabilirsiniz.

Referanslar

Ama en çok,

kendi teknik bilgim ve değerlendirmelerim kendi yerleşik deneyimlerime dayanarak yaptım. OP çok iyi bir soru sordu, ancak pratik problemleri değerlendirmeye / çözmeye çalışmaya mahkum olduğunuz bir sistemi teorik olarak anlamadan anlamadığınızı anlamıyor.

Sonuçlar

(4) Bu cevap , bazı yerlere yapılan korsan testlerini göstermektedir. Ayrıca, yoğun veri işlemi yapmanın doğrudan CPU'yu etkilediğini kanıtlıyor (SD kartın veya BCM yongası içindeki verilerin USB / LAN yongasına kaydırılması işleminden emin değil)

(6) Tek şişe boynunun kaynak olacağı kanıtlanmıştır (örneğin yavaş bir SD kart).

Bu nedenle, diğer kullanıcıların araştırma ve katkılarını yaparak ön sonuçlar almaya başladık.

İşte neyle uğraştığımızı görselleştirmeye yardımcı olacak güzel bir grafik .

görüntü tanımını buraya girin


1
+1 Harika cevap. Resimleriniz için kaynak sağlayabilir misiniz?
Jivings

1
Bu cevap, farklı depolama ortamlarının her birinin neden çok farklı performans numaralarına sahip olabileceğini açıklayan soruya mükemmel bir ayrıntı katıyor. Soruyu kendime eklemem gereken ek bilgiler için teşekkür ederim.
Dan B

1
USB hala 30 MB / s civarında, yani 100 Mbit ağ için yeterli miktarda.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen evet bu doğru. Ancak sorularımdan biri gömülü usb hub'ının performansı ile ilgili. Haw hızlı gerçekten mi? ve ARM CPU'ya bağlı mı - LAN üzerinden 2 kaynaktan formlar kopyaladığınızda ne olur? Bu kıyaslamaya değer bir şey. Bunu yapmayacağını söylemiyorum - ama kesinlikle bazı durumlarda sorun olabilir.
Piotr Kula

Bu alanda deneyiminiz var gibi gözüküyor. Gerçek ölçümleri yapabilir misiniz?
Thorbjørn Ravn Andersen

3

Açıkçası, en yüksek performans bir ramdisk ile olacaktır.

Bu, ağa bağlı bir depolama aygıtı için fazla kullanılmayacak, ancak o zaman, bu sabit uygulama için pi mutlaka en iyi seçenek değildir.

Pi'nin esnekliğinin benzersiz bir şekilde uygun olduğu bazı şeyler için, gerçek depolama gereksinimleri, bir ramdiskten veya muhtemelen disk önbelleğe alma mekanizması yoluyla koçtan açıkça örtülecek kadar küçük olabilir (linux ramdisks, yine de bir disk yedekleme olmadan sadece disk önbellekleridir).

Yine önyüklemek için bir karta ihtiyacınız olacak, ancak koçtan kaçmanın bir yararı olarak kartı salt okunur halde tutabilir ve bozulma riskini en aza indirebilirsiniz.


Önyüklemek için bir karta ihtiyacınız yok. İşletim sistemi / önyükleyici gerektiriyor! Önyükleyiciyi değiştirdiyseniz, Seri arayüzden veya LAN'dan önyükleme yapabilirsiniz. Yeterince teknik olsaydınız, RPI'ye 3GB koç ekleyebilirsiniz - ancak bu tamamen zor bir konudur. Gerçek şu ki, her şey aptal bir USB hub'ından geçiyor! bleeeh
Piotr Kula

Bootloader, en azından değiştirebileceğiniz bir SD kartında bulunmuyor mu? Yine de bazı yapılandırma pimi kayışlarını değiştirirseniz başka bir kaynaktan yüklemek için dahili bir önyükleme romu alabilirsiniz.
Chris Stratton

BCM yongasını neredeyse olumlu buluyorum .. arduino ile aynı, örneğin bir bootloader'a sahip .. (PC'deki BIOS gibi) Bir sonraki programı yüklemek için bazı başlangıç ​​programları olmalı. RPI'da bootlaoder değiştirme .. bir veya iki yıl bekleyin.
Piotr Kula

Bir arduino'nun ATMEGA'sı, dahili flaşla tek başına çalışacak şekilde tasarlanmış mikrodenetleyiciye bir örnektir. Bir booloader orada kullanıcı özelleştirilebilir. Pi'nin SOC'si ise harici bellek gerektiren daha büyük sistem parçaları sınıfından görünüyor. Bunlar tipik olarak bir yükleme yükleyicisine sahiptir, ancak fabrikadan çıktıklarında değiştirilemeyen bir maskedir. Bunun gibi bir şeye dayanan geleneksel bir üründe, 4-8 MB'lık harici bir flaş çipi olurdu. Ancak pi bunun yerine çıkarılabilir bir SD kart kullanıyor gibi görünüyor; birisinin lehimli flaşı bozması sorununu önlüyor.
Chris Stratton

Bu ilginç. Öyleyse bu önyükleme verilerini içeren FAT bölümü mü? ya da SD’nin gizli bir yerinde başka bir yerde mi saklanıyor? Daha sonra, daha kolay bir girişimde, yükleme işlemini aygıtta "hacklenmiş" bir başka yere yönlendirmeye çalışın ...
Piotr Kula

0

USB HDD veya USB SSD size en hızlı performansı vermelidir. SD kartlar, sınıf 10 aygıtlar için yaklaşık 12 MB / s yazıyor ve USB 30 MB / s'ye ulaşabiliyor.

HUB 400 Mbit / s ve ethernet 100 olduğu için USB hub'ın Ethernet ağını tıkadığı konusunda hemfikir değilim. Teorik olarak 4 x Fast ethernet 100Mb / s portuna kadar dayanabilir.


Şimdiye kadar test ettiğim HER sınıf 10 SD> 19 mb / s yazma. 14 mb / s bir sınıf 6 vardı. Sanmbisk Extreme SD'ler, 45mb / s’de 50mb / sn okuma ve 47mb / sn yazma elde ettiklerini iddia ediyor, bu da bir sürprizdi. Lexar 400x SD'ler en hızlı 70 mb / s okuma, ancak yaklaşık 30 mb / s yazma test ettik. USB 2.0'da, hızlı SD kartlar, HDD'ler ve SSD'ler arasında hemen hemen hiçbir fark yoktur. Mesaj attığım tüm USB 2.0 arayüzleri yaklaşık 35 mb / s hızında çalışıyor. 10 MB / sn civarında çıkan ve bazıları bundan daha da düşük olan USB 2.0 flaş sürücüleri gördüm. Birçok USB 3.0 flaş sürücü, USB 3.0 bağlantı noktalarında bile 10-20 mb / s hızında yazma hızına sahiptir!
Therealstubot

0

Bir USB flash sürücü kullanarak en fazla 4 Mb / sn alırım ve USD HDD için de aynı şekilde. Bu sadece dosyaları Windows ağı üzerinden 'homegroup' üzerinden Ahududu'a bağlı cihaza bırakırken.

Bunun en az 10 katı bekliyordum ama transfer hızını arttırmayı başaramadım. Doğrudan bir USB HDD'ye FTP aktarımı denedim (bu cihaz dizüstü bilgisayarıma bağlıyken + 60 Mb / s hızında aktarıyor), ancak sonuçlar çok kötü. 100KiB / s! Sadece birkaç 100 MB için saatler süren trafikle sonuçlanır.

Şimdi veri aktarımı için HDD’yi laptop ile Raspberry Pi arasında gezdirdim :-(


Bir yapılandırma / ağ sorununuz olduğunu düşünüyorum çünkü 24 MBps'ye kadar bir dosyayı doğrudan USB çubuğuma yükleyebilirim. Ve Wi-Fi yerine Ethernet ile daha iyisini yapabileceğimi düşünüyorum. Ben kullanıyorum vsftpd.
Morgan Courbet,
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.