MacとReadyNAS 104の通信速度が遅い時の対処法(SMB)

[最終更新] 2017年5月16日

一年間私を悩ませ続けた問題が、ようやく一区切りつきました。MacとReadyNAS 104のやりとりが異常に遅いというものです。速度がよくて10MB/sしか出ない。対応後、Readで60MB/sまで改善しました。

スポンサーリンク

環境と症状

Macの環境は以下。

  • Mac mini 2012, MacBook Air 2013 11インチ
  • OSX 10.11.6 (追記:Sierra(10.12.4)でも確認)
  • 有線LAN、ギガビットイーサネット環境、無線は切っている

ReadyNAS 104のファームウェアは6.5.0。

症状として、MacとReadyNASの通信が10MB/sしか出ない。プロトコルはSMB。AFPを使うと、Readで50MB/s、Writeで30MB/s出る。また、Windowsでは無線のクライアントでも20MB/s以上でるので、通信環境の問題ではない(ルータ周りのLANケーブルがすべてCat.5e以上であることを確認、ケーブル交換なども実施したが、改善せず)。したがって、Mac、あるいはReadyNASのMacに関する設定の問題と考えられる。

ちなみに「MacでSamba, NASの接続が遅い時の対処法まとめ – wp.bmemo.pw」で紹介されている「net.inet.tcp.delayed_ack=0」でTCP遅延ACKのオフと、ReadyNAS側の設定として「ReadyNas に Finder でアクセスした時に表示が遅い時の対処法」の設定方法も実施済み。私の場合は残念ながらあまり変わりませんでした。。。

プロトコルの確認

まず大切なことは、AFPで通信しているのか、SMBで通信しているのかということです。現在のMacはSMBを優先するようになっているはずなので、特に意識しなければSMBでしょう。Finderの共有を見れば、SMBでマウントされているかどうかわかると思います(下図)。

Finderの表示
Finderの表示

SMBとAFPでの速度差

このとき、私の環境ではRead/Write共に10MB/s程度しか出ませんでした(下図)。

SMB使用時の速度
SMB使用時の速度

これは耐えられないほど遅い速度ではありませんが、有線LANであるメリットをまるで感じさせない速度でもあります。実際、Windowsマシンからは20MB/s以上の速度が「無線で」出ました。明らかに問題があります。

そこで、MacではレガシーとされるAFPで接続すると、速度が劇的に改善されました(下図)。

AFPでの接続時
AFPでの接続時

Readが50MB/s、Writeが30MB/s出ています。激速ではありませんが、有線LANの恩恵を受けた速度ではないでしょうか。

ではAFP接続にすればよいのではないかというと、AFP接続にした場合、どういうわけか、Finderでのファイルのリスト表示が著しく遅くなりました。SMBでも遅いのですが、AFPはちょっと信じ難いほど遅い。10以上ファイルがあると待たされる。100もファイルがあれば、10秒以上待たされる。これはちょっと実用的でない。

また、AFPは既にAppleからレガシーとされ、開発もストップしており、いつ切られてもおかしくない状態です。SMBを使うほうが無難なのです。

SMBとAFPについて

状況を整理します。まず現在のMacでの標準はSMBです。しかし、速度が出ません。AFPにすると、最大速度は確かに早くなりますが、Finderでの表示が耐え難いほど遅くなりました。また、AFPはレガシーであり、開発がストップしています。SMBを使うことが望ましいとされています。

レガシーのAFPならばともかく、なぜ推奨のSMBでこんなことになっているかと言うと、MacにおけるSMBの実装に独自の拡張があるためという説が有力です。Mac同士であれば問題ないのですが、ReadyNASのように汎用的なサードパーティーのデバイスが絡むと話がややこしくなる。これは悪い意味でAppleらしい状況です。

SMBが推奨となったのはもう何年も前なのですけれど、この問題はいまだに解決しておらず、AFPのほうが速度が速いという理由で、いまなおAFPを使い続けている人もいます。まぁ、Appleからしてみれば自社製品ではないネットワークストレージを使ってくれるなということなのかもしれませんが、けったいな話です。

対応

この問題は、私をずっと悩ませてきました。SMBもAFPも一長一短ではありますが、SMBが推奨されるプロトコルであること、リスト表示がAFPより速いこと、10MB/sは遅いが耐えられないほどではないことを勘案して、SMBを使っていました。

しかしやはり使っているとどうにも遅さが気になります。やりきれない。他の人の動作報告を見れば、MacとReadyNAS 104でも50MB/sくらい出ているものがある。10MB/sはいくらなんでも遅すぎる。100BASE-T並ではないか。無線のWindowsマシンのほうが快適とは何事か。

というわけで一念発起し、ちょっと頑張って調べました。色々試したところ、「Mac OS X 10.11.5 slow data transfer – Synology Forum」にある方法で効果がありました。それは、/etc/nsmb.confに以下の内容を記述することです。

[default]
signing_required=no

システムファイルなので、ターミナルからsudo権限で編集する必要があります。編集後は再起動。コマンドで書き込みする場合は以下でどうぞ。

sudo -s
echo "[default]" > /etc/nsmb.conf
echo signing_required=no >> /etc/nsmb.conf
reboot

再起動後、速度が劇的に改善しました(下図)。

改善後のSMBでの速度
改善後のSMBでの速度

Readが60MB/s、Writeが40MB/s、心なしかAFPの時より速いくらいですね。よく理解していませんが、signing_required=noとは「SMB のセキュリティ署名の必要性」に関することでしょうか?中間者攻撃対策としてセキュリティ上必要とされるようですが、我が家のLAN内でのやりとりなので、まぁよいでしょう。

(追記)「新・OS X ハッキング! (184) NASのアクセス速度を改善する | マイナビニュース」にて本件の解説がされました。「パケット署名」だそうです。つまりSMBの仕様か。

これまでずっと悩まされ、Macだから仕方ないのかなとさえ思っていたのですが、なんとか速度が出るようになり、たいへんハッピーです。4GBのOSイメージが1分でコピーできました。嬉しいことです。macOS Sierraにアップグレードしたら、きっとまた対応しなくてはならないのでしょうけれど。

なお、「Slow file sharing on Mac using SMB – Synology Forum」によれば、/etc/nsmb.confではなく「~/Library/Preferences/nsmb.conf 」に上記の内容を書き込むとしていました。しかし、当該ファイルが見つからなかったので、/etc/nsmb.confを作成しました。~/Library以下で編集するほうがMac的には行儀がよさそうなので、こちらを試してみてもよいかもしれません。/etc/以下はOSのアップデートで書き換えられそうですしねぇ…。

それにしても、調べていて不思議だったのは、人によっては特に何もせずとも50MB/sくらい速度が出る人もいるようであったことです。パケット署名の処理による速度低下が原因ということであれば、MacでReadyNAS 104を使う場合、パケット署名の無効化をしないと速度は10MB/s程度になってしまうように思うのですが…。

関連コンテンツ

関連記事

Mac の記事

ReadyNas 104 の記事

スポンサーリンク

コメントを残す

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