web-dev-qa-db-ja.com

Samba SMBがLAN上のNASでのHTTP / NFS / FTP転送よりも遅いのはなぜですか?

Raspberry Pi 2(quad-core NAS Cortex-A7、1GB RAM、32GB microSD)で最近行ったARMをセットアップしたい)Raspbian“ Jessie”の実行:

  • Ubuntu 14.04を実行し、802.11b/g/nを使用しているラップトップ(HP Pavilion G6)を持っています。
  • SambaとApacheを使用してRaspberryPi2に接続された外付けUSB2.0 NTFSハードドライブがあり、100MbpsでワイヤレスルーターのLANに接続されています。
  • Raspberry Pi2からSamba SMBを使用してファイルを転送しようとすると、転送速度が1Mib/s未満になります。
  • Raspberry Pi 2からHTTPを使用してファイルを転送すると、通常の転送速度は約3〜4Mib/sになります[より良いですが、それでもかなり遅い]。
  • Raspberry Pi 2からFTPを使用してファイルを転送すると、通常の転送速度は約2〜4Mib/sになります[より良いですが、HTTPほど良くはありません]。

Samba SMB)を使用してファイルを転送すると、HTTPを使用して同じファイルよりも遅い[3〜4倍]転送されるのはなぜですか?

ネットワーク速度が100Mbsであり、接続がUSB 2.0とWi-Fiの制限であるという制限があるため、ローカルネットワークから10-12Mib/s(それに近いとはいえ)は期待していませんが、少なくともそうする必要があります。これらすべてのボトルネックに加えて、外部にあるものがすべてあるインターネットよりも優れています。

Samba構成の問題でしょうか?

テスト結果[1.5Gbファイル転送速度]:

  • SB 3.:70-80MiB/s

    USBのみ。

    HP PavilionG6ラップトップのUSB3.0ポートに接続されたUSB3.0外付けハードドライブ。

    Dolphinファイルマネージャーで転送されたファイル。

    ソース:USB3.0ハードドライブ

    宛先:HP PavilionG6ラップトップ

  • SB 2.:20-30MiB/s

    USBのみ。

    RaspberryPiのUSB2.0ポートに接続されたUSB3.0外付けハードドライブ。

    Pv raspberry~$ pv source > destinationを使用してテストされたファイル。

  • イーサネットLAN: 8-9MiB/s

    有線。

    RaspberryPiのUSB2.0ポートに接続されたUSB3.0外付けハードドライブ。

    イーサネットLAN経由でネットワークに接続されたHPPavilionG6ラップトップ。

    Samba smb://を使用して転送されたファイル。

    ソース:USB3.0ハードドライブ

    宛先:HP PavilionG6ラップトップ

  • インターネットファイル: 2-3MiB/s

    Wi-Fi。

  • HTTP Wi-Fi LAN速度: 3-4MiB/s

    Wi-Fi。

    RaspberryPiのUSB2.0ポートに接続されたUSB3.0外付けハードドライブ。

    802.11b/g/nWi-Fi経由でネットワークに接続されたHPPavilionG6ラップトップ。

    ApacheWebサーバー上のファイルhttp://

    ソース:USB3.0ハードドライブ

    宛先:HP PavilionG6ラップトップ

  • NFS Wi-Fi LAN速度: 3-4MiB/s

    Wi-Fi。

    RaspberryPiのUSB2.0ポートに接続されたUSB3.0外付けハードドライブ。

    802.11b/g/nWi-Fi経由でネットワークに接続されたHPPavilionG6ラップトップ。

    Dolphinファイルマネージャーで転送されたファイル。

    ソース:USB3.0ハードドライブ

    宛先:HP PavilionG6ラップトップ

  • FTP Wi-Fi LAN速度: 2-4MiB/s

    Wi-Fi。

    RaspberryPiのUSB2.0ポートに接続されたUSB3.0外付けハードドライブ。

    802.11b/g/nWi-Fi経由でネットワークに接続されたHPPavilionG6ラップトップ。

    Vsftpサーバー上のファイルftp://

    ソース:USB3.0ハードドライブ

    宛先:HP PavilionG6ラップトップ

  • SMB Wi-Fi LAN速度: <900KiB/s

    Wi-Fi。

    RaspberryPiのUSB2.0ポートに接続されたUSB3.0外付けハードドライブ。

    802.11b/g/nWi-Fi経由でネットワークに接続されたHPPavilionG6ラップトップ。

    Samba smb://を使用して転送されたファイル。

    ソース:USB3.0ハードドライブ

    宛先:HP PavilionG6ラップトップ

どうすればこれを改善できますか?

これが私のラップトップでのiwconfigの出力です。

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

dmesg | grep eth0を介したRaspberryPiのネットワーク接続に関する情報は次のとおりです。

smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
4
teak

Piで使用されるSoCデバイスにはイーサネットのサポートが組み込まれていないため、Piのイーサネット機能はUSBイーサネットチップによって提供され、接続した他のUSB周辺機器(USBを含む)と同じUSBバスを共有します。フラッシュドライブ)。これが恐らくあなたがひどいパフォーマンスを見る主な理由です。

解決?残念ながら何もありません、それはハードウェアの制限です。ハードドライブの速度やネットワーク設定とは何の関係もありません。PiのUSBバスは、ディスクとイーサネットの両方が同時に実行されている状態で限界に達します。

NASのセットアップにもう少し投資して、実際にイーサネットが組み込まれているシングルボードコンピューターを購入することをお勧めします。ギガビットイーサネットをサポートするプラットフォームがいくつかあります。

2
Hamza

TLDR:SMB&AFPは暗号化が大きく、実際にはファイルのインデックスを表示するだけではありません。FTPとNFSは、リストを提供して作業を完了するためだけにあります。RPI別のコメントで述べたように、ハードウェアはすべてのI/Oデータを移動するUSB​​バスに制限されていますが、2〜4 Mbpsはガルボなので、クライアントを確認してすべてのソフトウェアを更新してください。

どのハードウェアが使用されているかは問題ではないようです。Sambaは単に遅いです。 AFP(Apple File Protocol)は良くありません。私は、2008年からWindowsとMacの両方を使用してAFPとSMB)を使用しています。特に、Linuxが実際に使用されているため、Linuxの自由度が増していることは明らかです。ラップトップのwifi機能が改善され、経済はCHIPやRPIなどを耳にします。しかし重要なのは、SMB、AFP、NFS、FTPにはすべて欠点があります。SMB一部のセキュリティ機能を削除すると、AFPでも同じことが言えます。FTPの改善が見られる理由は、転送が非常に簡単で、暗号化されたハンドシェイクがないためです。NFSはファイルをロックし、FTPと同様の機能は「開く」ために作成されていません。 "(ホストマシンからメモリにコピー)およびファイルの編集。SMBおよびホストマシンを参照しているかのように動作するように設計されたAFPとは異なります。

2
Tmanok

質問で提供された詳細に基づいて、ローカル転送速度に影響を与える可能性のあるいくつかの要因があります。

  1. RaspberryPiのリソース
  2. USB経由で接続されたハードドライブの読み取り速度(読み取り速度は通常高速である必要がありますが、ドライブに障害があるかどうかはわかりません)
  3. RaspberryPiのUSBドライバー
  4. ハードドライブをRaspberryPiに接続するUSB​​コネクタ/外部ケース

問題を切り分けるためにできること:

  1. 「USBドライブ」を使用しているワークステーションに直接接続し、転送速度を確認します
  2. Raspberry Piで有線接続を使用します(まだこの方法でセットアップされていない場合)
  3. 「USBドライブ」からRaspberryPiの別のストレージにファイルをコピーし、転送速度を確認します
  4. Raspberry Piからファイルをコピーします(USBからではなくeMMCから)
  5. Raspberry PiでWebサーバーやftpサーバーを作成し、ワークステーションがワイヤレス接続と有線接続の両方にあるときに、ファイルをhttpおよびftp経由でワークステーションに転送します(4つの異なるシナリオ-httpとラップトップを有線、httpとラップトップをワイヤレス) 、有線のラップトップを使用したftp、ワイヤレスのラップトップを使用したftp)
  6. 「USBドライブ」をRaspberryPi以外のネットワーク上の別のワークステーションに接続し、転送速度を確認します。有線接続と無線接続の両方を使用してこれを試してください。

仮定:

  • 転送速度に影響を与える可能性のある、セットアップされた「NAS」から読み取る他のデバイスはありません。
  • 有線接続と無線接続の両方を使用してネットワークに接続していません。もしそうなら、インターネットへのトラフィックが1つのインターフェースを使用し、ローカルトラフィックが別のインターフェースを使用する可能性があり、転送速度にも影響を与える可能性があります。
0
thilina R

簡単に言えば、NFS、FTP、およびHTTPは、以前のバージョンのSMBよりもスリムなプロトコルです。 FTPをファイル転送に使用することは常に推奨しますが、FTPはSMB)よりもスリムである可能性があるため、リモートストレージを安全にする機能の多くが欠けています。

SMBの新しいバージョンでは、NFSとのインライン化が進んでいますが、かなり古いSamba 3.xを実行しているようです(セットアップははるかに簡単ですが)。

スループットについて説明している間、Linuxes NTFSドライバーはFuseで実行されるntfs3gであるため、RaspberryPiでNTFSを実行しないこともお勧めします。 Fuseを知らない人にとっては、開発者がカーネルモジュールを作成するのではなく、Fuseラッパーを介してユーザースペースで実行されるファイルシステムドライバーを作成する方法です。つまり、ドライバーをより速く、より安全に、より興味深い方法で作成できます(たとえば、テキストファイルの内容を仮想ファイルシステムに変換するFuseドライバーを作成しました)が、データを常に交換しているため、コストがかかります。カーネルとユーザースペース。これはPCではあまり目立たなくなります-そしてntfs3gもかなりよく書かれているので役立ちます-しかし、Raspberry Piのようなフットプリントの小さいデバイスでは、余分なCPUとメモリのオーバーヘッドがLinuxネイティブファイルからのストリーミングデータと比較してパフォーマンスに悪影響を及ぼしますext3/4やXFSのようなシステム。

0
lmorg