特にMac OS XクライアントでSMB/CIFSのパフォーマンスが極端に低下しているWindows 2012 R2サーバーを継承しています。サーバーはファイルサービスを実行しており、Active Directoryドメインコントローラー(ドメインの2つのうちの1つ)です。 PDCエミュレータです。他のドメインコントローラはWindows 2003 Serverです。
クライアント側の環境は、Windows 7とMac OS X 10.9 Mavericksマシンが混在しています。すべてのマシンが同じ物理および論理ギガビットLAN上にあります。 Windows 7ユーザーは期待どおりのパフォーマンスを体験します。 Mac OS X 10.9 Mavericksクライアントでは、ディレクトリの一覧表示、走査、ファイルの読み取り、ファイルの書き込みが遅いなど、ひどいパフォーマンスが発生します。書き込みパフォーマンスが著しく遅い場合、読み取り/書き込みパフォーマンスに大きな非対称性があるようです。
新しいSMBX/SMB2実装ではなく、OS XクライアントがSMBv1とCIFSを使用するように強制しました。問題はすべてのバージョンで解決しません。テスト用にThursby DAVEもインストールしました。リスト/トラバーサルのパフォーマンスは少し緩和されますが、それでも許容できないほど遅いです。
共有をマウントし、dd
を使用して/dev/random
を読み取り、1GBのテキストファイルを共有に書き込みました。書き込みパフォーマンスは.33 Mbpsでした。書き込み中に通信をキャプチャするためにtcpdump
を実行しました。フォーマットが不足していることを許してください-このブロックをエスケープすることはできません:
[〜#〜] edit [〜#〜] Windows ServerでNFSサーバーを有効にし、Mac OS Xクライアントにマウントしました。上記と同じdd
テストキャプションを実行し、同様の結果/パフォーマンスを得ました。
15:45:45.221337 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], ack 102, win 32767, options [nop,nop,TS val 1279665835 ecr 242798971], length 0
15:45:45.221546 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 1:501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500WARNING: Packet is continued in later TCP segments
SMB PACKET: SMBwriteX (REQUEST)
15:45:45.221547 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 501:1001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221547 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 1001:1501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221547 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 1501:2001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221548 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 2001:2501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221548 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 2501:3001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221549 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 3001:3501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221549 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 3501:4001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221550 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 4001:4501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221550 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 4501:5001, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
15:45:45.221551 IP 10.0.1.53.59596 > server.example.local.Microsoft-ds: Flags [.], seq 5001:5501, ack 102, win 32768, options [nop,nop,TS val 1279665835 ecr 242798971], length 500SMB-over-TCP packet:(raw data or continuation?)
[〜#〜]編集[〜#〜]
このリンクは私に大いに役立ちました: MacをWindows Active Directoryドメインに統合する| TechRepublic
基本的に、Macのディレクトリサービス設定を変更する必要があると述べています。システム環境設定/ユーザーとグループに移動し、ログインオプションをクリックします。ネットワークアカウントサーバーの編集ボタンをクリックし、[Open Directory Utility]をクリックします。必要に応じて設定を変更します。
[Active Directory]をダブルクリックして、[詳細オプション]に移動します。
サーバーでSMB 3.0を無効にして、パフォーマンスが向上するかどうかを確認してください。SMB 3.0を無効にすることは、特にサーバーがストアとして実行されている場合は、良い考えではありません。 Hyper-V VMまたはSQLデータストアのポイントですが、ごく基本的な方法で使用している場合は、問題がなくなる可能性があります。
WindowsおよびWindows ServerでのSMBv1、SMBv2、およびSMBv3の検出、有効化、無効化|マイクロソフトサポート
これについて私が見た理由のいくつかは次のとおりです:[順番に]
スイッチのスパニングツリー設定を確認してください。スパニングツリーの設定は、Macの表示内容と接続の品質に影響を与える可能性があります。
MTUサイズ
ジャンボパケットの設定
CPUオフロード
使用されていないプロトコルを無効にする使用されていないプロトコルが有効になっている多くのネットワークを見てきました。
デイジーチェインが多すぎるスイッチをイーサネット標準に誤って違反している。
ブロードキャストストーム抑制
配線違反:
コイル状の過剰なイーサネットワイヤー-磁気誘導の作成が不適切に終端されたRJ45コネクタは、十分なオーム抵抗を提供するには長さが不十分です。高電力コンジットにワイヤーを巻き付ける
それでもまだ関連があるかどうかはわかりませんが、私もあなたが説明したのと同じ問題がありました。Macクライアントで/etc/sysctl.conf
ファイルを編集して解決しました。
私の状況ではこれらの設定が機能することがわかりましたが、状況によっては調整が必要になる可能性があります。
net.inet.tcp.win_scale_factor=8
net.inet.tcp.autorcvbufmax=16777216
net.inet.tcp.autosndbufmax=16777216
これら2つのレジストリキーを設定すると、Windows Server 2012およびWindows 8.1上のMacでWindows共有のパフォーマンスが大幅に向上しました
win_share_Tweak.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
"Smb2CreditsMin"=dword:00000300
"Smb2CreditsMax"=dword:00004000
コメントを追加したかったのですが、できません。私があなたに試すべきアイデアはありませんが、私が伝えたかったのは、私の同僚が最近、ほとんどすべてのクライアントOSXで新しいOSXサーバーをセットアップしたということです。彼はまた、パフォーマンスのようなファイル共有にいくつかの奇妙な問題を抱えていて、クライアントはOSXサーバーからネットワークドライブから特定のファイルを開くことができませんでした。私たちは、Appleからサポート契約を購入して彼を助けようとしました、そして彼らに、ユーザーにファイルをダウンロードしてもらい、彼らはMacにローカルで作業してそれをコピーするように働きかけたいと言った全部戻る...
これを見て、新しいOSXがネットワーク共有にアクセスする方法に何か問題があると思いました。
広告ではありません-Acronis Access Connect(以前はAcronis ExtremeZ-IPと呼ばれていました)の試用版をご覧ください。私の調査によると、Microsoftは頻繁にそれをSMB実装に変更しており、それがまともな速度で動作するようになったとしても、後のリリースで「壊れる」可能性があります。Acronisはこの上にとどまります、多額の費用がかかります。
http://www.acronis.com/en-us/mobility/mac-windows-compatibility/
私は数年間、いくつかのクライアントで使用してきましたが、非常に堅実です。
注:私の経験では、このサービスを使用すると、実際のネットワークスループットが劇的に向上します。この製品は、SMBの実装の違いを埋めます。私がこれを試すまで私はこの正確な問題を抱えていました-それはうまくいきます。そして、私が言ったように、あなたがそれを働かせたとしても、SAMBA実装のその後のアップデートで壊れる可能性があります。