MACとファイルサーバー間の転送速度が遅い場合の対処法

MACからファイルサーバー(Raspberry Pi)へアクセスしてバックアップデータ等のやり取り等をしているのですが、転送速度が非常に遅いことがよくあります。

ファイルサーバーにある400MBのデータをMACに移動するのに1時間くらいかかったりします。
同じ処理をWindowsでやると2分くらいで完了します。


ファイルサーバーの構成
外付けハードディスク2台(1台はミラーリング)をつなげたRaspberry Pi
有線LAN(CAT6)でRaspberry Piにアクセスする

100MbpsのLANアダプタなので100Mbps(12MBs)が最高速度。

400MBのデータの場合、理想値だと400/12 = 33秒でファイルの移動(コピー)ができるはず。
Windowsの場合、4MBsのスピードになって、ダウンロードするのに1分30秒くらいかかった。

Raspberry Piのファイルサーバーには、WebサーバーとしてもWebカメラを使ってCPUの7割使ってるから、それもあって、Windowsの場合でも転送速度が4MBsくらになっちゃうんかなと思います。ファイルサーバーだけの場合は6MBsくらいまで転送速度が出るそうです。

MACの超遅い転送速度の対処法

MACとRaspberry Piのファイルサーバーとの転送速度は、0.11MBsくらい。超遅い。たまに10倍くらい早くなったりする。

いい加減頭にきたので、Googleで対処法を調べました。その結果、下記の2つのサイトを参考にしたらMACで4MBsくらいの転送スピードでファイルサーバーとアクセスすことができるようになりました。

参考サイト
MacからNASとかWindowsの共有フォルダへのアクセスが妙に遅いのを解決する
MacでSamba, NASの接続が遅い時の対処法まとめ

まず最初にMACのターミナルを開いて設定をします。

sudo sysctl -w net.inet.tcp.delayed_ack=0

sudo vim /etc/sysctl.conf
//下記を追記して保存する
net.inet.tcp.delayed_ack=0

delayed_ackをゼロにすると、どこかで不具合が出るかもしれないらしいですが、見た感じ不具合が出ていないので気にしない。初期値は3なので、何か不具合が出たときに下記のように戻してみる。。

delayed_ackをゼロにして不具合が出た時の戻し方。

sudo sysctl -w net.inet.tcp.delayed_ack=3

sudo vim /etc/sysctl.conf
//下記に変更するか、net.inet.tcp.delayed_ack=0を削除する。
net.inet.tcp.delayed_ack=3

Raspberry PiのSambaの設定を少しいじくる。

sudo vim /etc/samba/smb.conf

[global]
max protocol = SMB2

sudo service samba restart

とりあえず上記の2つを試してみたら、MACとファイルサーバーとの間の転送速度が4MBsくらいになりました。両方いっぺんに設定して試してしまったので、どちらか片方は不要な設定かもしれません。とりあえず不満がなくなったので良しとします!

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください