Ich möchte ein NAS einrichten, das ich kürzlich mit einem Raspberry Pi 2 (Quad-Core ARM Cortex-A7, 1 GB RAM, 32 GB microSD) mit Raspbian „Jessie“ ausgeführt habe:
- Ich habe einen Laptop - einen HP Pavilion G6 -, der Ubuntu 14.04 ausführt und 802.11b / g / n verwendet.
- Ich habe eine externe USB 2.0 NTFS-Festplatte, die mit Samba und Apache an ein Raspberry Pi 2 angeschlossen ist und mit 100 Mbps an das LAN meines WLAN-Routers angeschlossen ist.
- Wenn ich versuche, eine Datei mit Samba SMB vom Raspberry Pi 2 zu übertragen, erhalte ich Übertragungsraten von weniger als 1 MB / s.
- Wenn ich eine Datei mit HTTP vom Raspberry Pi 2 übertrage, erhalte ich eine typische Übertragungsrate von ca. 3-4 Mib / s [besser, aber immer noch ziemlich langsam].
- Wenn ich eine Datei per FTP vom Raspberry Pi 2 übertrage, erhalte ich eine typische Übertragungsrate von etwa 2-4 MB / s [besser, aber nicht so gut wie HTTP].
Warum würde die Übertragung von Dateien mit Samba SMB übertragen Langsamer [3-4 mal] als die gleiche Datei mit HTTP?
Ich erwarte von meinem lokalen Netzwerk keine 10-12Mib / s - obwohl es in der Nähe schön wäre -, da die Geschwindigkeit des Netzwerks bei 100Mbs eingeschränkt ist und USB 2.0- und WLAN-Beschränkungen bestehen, aber dies sollte zumindest der Fall sein Sei besser als das Internet, das all diese Engpässe hat und was auch immer draußen ist.
Könnte es ein Problem mit der Samba-Konfiguration sein?
Testergebnisse [1,5 Gb Dateiübertragungsraten]:
USB 3.0 : 70-80 MB / s
Nur USB.
An den USB3.0-Anschluss des HP Pavilion G6-Laptops angeschlossene externe USB3.0-Festplatte
Mit dem Dolphin-Dateimanager übertragene Datei.
Quelle: USB3.0-Festplatte
Ziel: HP Pavilion G6 Laptop
USB 2.0 : 20-30 MB / s
Nur USB.
Externe USB3.0-Festplatte, die an den USB2.0-Port des Raspberry Pi angeschlossen ist.
Datei getestet mit pv
raspberry~$ pv source > destination
.Ethernet LAN: 8-9MiB / s
Verdrahtet.
Externe USB3.0-Festplatte, die an den USB2.0-Port des Raspberry Pi angeschlossen ist.
HP Pavilion G6 Laptop über Ethernet LAN mit dem Netzwerk verbunden.
Datei mit Samba übertragen
smb://
.Quelle: USB3.0-Festplatte
Ziel: HP Pavilion G6 Laptop
Internetdatei: 2-3MiB / s
W-lan.
HTTP-WLAN-Geschwindigkeit: 3-4MiB / s
W-lan.
Externe USB3.0-Festplatte, die an den USB2.0-Port des Raspberry Pi angeschlossen ist.
HP Pavilion G6-Laptop, der über 802.11b / g / n Wi-Fi mit dem Netzwerk verbunden ist.
Datei auf dem Apache-Webserver
http://
.Quelle: USB3.0-Festplatte
Ziel: HP Pavilion G6 Laptop
NFS-WLAN-Geschwindigkeit: 3-4MiB / s
W-lan.
Externe USB3.0-Festplatte, die an den USB2.0-Port des Raspberry Pi angeschlossen ist.
HP Pavilion G6-Laptop, der über 802.11b / g / n Wi-Fi mit dem Netzwerk verbunden ist.
Mit dem Dolphin-Dateimanager übertragene Datei.
Quelle: USB3.0-Festplatte
Ziel: HP Pavilion G6 Laptop
FTP-WLAN-Geschwindigkeit: 2-4MiB / s
W-lan.
Externe USB3.0-Festplatte, die an den USB2.0-Port des Raspberry Pi angeschlossen ist.
HP Pavilion G6-Laptop, der über 802.11b / g / n Wi-Fi mit dem Netzwerk verbunden ist.
Datei auf dem vsftp-Server
ftp://
.Quelle: USB3.0-Festplatte
Ziel: HP Pavilion G6 Laptop
SMB-WLAN-Geschwindigkeit: & lt; 900KiB / s
W-lan.
Externe USB3.0-Festplatte, die an den USB2.0-Port des Raspberry Pi angeschlossen ist.
HP Pavilion G6-Laptop, der über 802.11b / g / n Wi-Fi mit dem Netzwerk verbunden ist.
Datei mit Samba übertragen
smb://
.Quelle: USB3.0-Festplatte
Ziel: HP Pavilion G6 Laptop
Wie kann ich das verbessern?
Hier ist die Ausgabe von iwconfig
Auf meinem Laptop:
wlan0 IEEE 802.11bgn ESSID:"Irk"
Mode:Managed Frequency:2.412 GHz Access Point: 34:31:C4:02:46:2D
Bit Rate=65 Mb/s Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=63/70 Signal level=-47 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:1369 Invalid misc:12350 Missed beacon:0
Hier finden Sie Informationen zur Netzwerkverbindung meines Raspberry Pi über dmesg | grep eth0
:
smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
Antworten:
Das auf dem Pi verwendete SoC-Gerät verfügt nicht über integrierte Ethernet-Unterstützung. Daher wird die Ethernet-Funktionalität des Pi von einem USB-Ethernet-Chip bereitgestellt, der den gleichen USB-Bus wie jedes andere möglicherweise angeschlossene USB-Peripheriegerät (einschließlich USB) verwendet Flash-Laufwerke). Dies ist wahrscheinlich der Hauptgrund, warum Sie eine miserable Leistung sehen.
Lösung? Leider gibt es keine, es ist eine Hardwarebeschränkung. Es hat nichts mit der Geschwindigkeit Ihrer Festplatte oder der Netzwerkkonfiguration zu tun, die Sie haben. Der USB-Bus des Pi ist an seine Grenzen gestoßen, während sowohl die Festplatte als auch das Ethernet gleichzeitig laufen.
Vielleicht möchten Sie etwas mehr in Ihr NAS-Setup investieren und einen Single-Board-Computer erwerben, der tatsächlich Ethernet enthält. Es gibt verschiedene Plattformen mit Gigabit-Ethernet-Unterstützung.
quelle
TLDR: SMB & amp; AFP verfügt über eine umfangreichere Verschlüsselung und zeigt tatsächlich mehr als nur einen Index der Dateien. FTP und NFS geben Ihnen nur eine Liste und erledigen die Arbeit. Wie in einem anderen Kommentar erwähnt, ist Ihr RPI auf den USB-Bus beschränkt, der alle E / A-Daten bewegt. Aber 2-4Mbps ist garbo. Überprüfen Sie also Ihren Client und aktualisieren Sie Ihre gesamte Software. 10-18Mbps klingt mehr legitim, wenn Ihr RPI oder Comp nicht defekt ist.
Anscheinend spielt es keine Rolle, welche Hardware verwendet wird, Samba ist einfach langsam. AFP (Apple File Protocol) ist nicht besser. Ich arbeite seit 2008 sowohl mit Windows als auch mit Mac mit AFP und SMB. Es ist offensichtlich, dass ich mit Linux mehr Freiheit gefunden habe, zumal sie die WLAN-Fähigkeiten von Laptops wirklich verbessert haben und die Wirtschaft sprengt Dinge wie CHIP und RPIs aus den Ohren. Aber der Punkt ist, SMB, AFP, NFS und FTP haben alle Nachteile. SMB kann verbessert werden, wenn Sie einige der Sicherheitsfunktionen entfernen. Dies gilt auch für AFP. Der Grund, warum Sie eine Verbesserung bei FTP sehen können, ist die Tatsache, dass sehr bloße Knochen übertragen werden, da es keinen verschlüsselten Handshake gibt. NFS sperrt Dateien und ähnelt FTP nicht dem "Öffnen" (Kopieren von der Hostmaschine in den Arbeitsspeicher) und der Bearbeitung von Dateien, im Gegensatz zu SMB und AFP, die so aussehen, als würden Sie die Hostmaschine durchsuchen.
quelle
Basierend auf den in der Frage angegebenen Details können hier einige Faktoren die lokale Übertragungsrate beeinflussen:
Mögliche Maßnahmen zur Isolierung des Problems:
Annahmen:
quelle
Einfach ausgedrückt: NFS, FTP und HTTP sind schlankere Protokolle als die früheren SMB-Versionen. Obwohl ich immer gegen die Verwendung von FTP für die Dateiübertragung plädiere, fehlt es, wenn es schlanker als SMB ist, an vielen Funktionen, die den Remote-Speicher sicher machen.
Spätere Versionen von SMB bringen es zwar mehr mit NFS inline, aber es klingt, als würden Sie Samba 3.x ausführen, was ziemlich alt ist (wenn auch viel einfacher einzurichten).
Während wir über den Durchsatz sprechen, würde ich auch davon abraten, NTFS auf dem Raspberry Pi auszuführen, da der NTFS-Treiber von Linuxes ntfs3g ist, der in FUSE läuft. Für diejenigen, die sich mit FUSE nicht auskennen, ist dies eine Möglichkeit, Dateisystemtreiber zu schreiben, die im Benutzerbereich ausgeführt werden, und nicht über den FUSE-Wrapper, anstatt dass Entwickler Kernel-Module schreiben müssen. Dies bedeutet, dass Sie Treiber schneller, sicherer und interessanter schreiben können (z. B. habe ich FUSE-Treiber geschrieben, die den Inhalt von Textdateien in ein virtuelles Dateisystem konvertieren). Dies ist jedoch mit Kosten verbunden, da Sie ständig Daten zwischen den Computern austauschen Kernel und User Space. Dies wird auf PCs weniger auffällig sein - und ntfs3g ist auch ziemlich gut geschrieben. Dies hilft jedoch bei einem Gerät mit geringerem Platzbedarf wie dem Raspberry Pi, dass ein zusätzlicher CPU- und Speicher-Overhead die Leistung im Vergleich zu einem Streaming von Daten aus einer Linux-nativen Datei beeinträchtigen wird System wie ext3 / 4 oder XFS.
quelle