I/O 操作を実行する前のレイテンシの問題
マウントポイントを使用してサーバーメッセージブロック (SMB) サーバーにアクセスする際、I/O 操作を実行する前に数分ほど待機する必要があります。
SMB サーバーにアクセスする際の待機時間を短縮する方法について説明します。
解決方法
この待機時間は、主に NFS クライアントか Web クライアントが原因で発生します。
- NFS クライアントがインストールされているかどうかを確認します。 NFS クライアントを使用しない場合は、削除することを推奨します。
- 次のレジストリキーを見つけます。 レジストリキーへのパスは
HKEY_LOCAL_MACHINE-> System-> CurrentControlSet-> Control-> NetworkProvider-> Order-> ProviderOrder
です。ProviderOrder キーの値が
LanmanWorkstation,RDPNP,Nfsnp
とします。,Nfsnp
を削除して、ECS インスタンスを再起動する必要があります。 - Web クライアントが存在する場合、ファイルマネージャーを使用して SMB サーバーにアクセスする際のレイテンシが増加します。 Web クライアントを削除することを推奨します。
注 クライアントが初めて SMB サーバーに接続する場合、レイテンシは予測よりも長くなります。 ping コマンドを使用して SMB サーバーのマウントアドレスと通信できるかどうかを確認するか、通信のレイテンシが予測どおりかどうかを確認します。
- ping コマンドの使用中にタイムアウトエラーが発生した場合は、ネットワーク設定を確認することを推奨します。
- レイテンシが予測よりも長い場合は、SMB サーバーの IP アドレスに ping を実行することを推奨します。 マウントポイントの IP アドレスに対する ping のレイテンシが、マウントポイントのドメイン名に対する ping のレイテンシよりも短い場合は、DNS 設定が原因で問題が発生している可能性があります。 DNS 設定を確認することを推奨します。
パフォーマンスの問題を解決する手順
- ProviderOrder キーの値を変更します。 SMB サーバーにアクセスする際のレイテンシが通常よりも長い場合は、この値を確認することを推奨します。
- fio を使用してパフォーマンステストを実施し、問題を確認できます。
fio.exe --name=./iotest1 --direct=1 --rwmixread=0 --rw=write --bs=4K --numjobs=1 --thread --iodepth=128 --runtime=300 --group_reporting --size=5G --verify=md5 --randrepeat=0 --norandommap --refill_buffers --filename=\\<mount point dns>\myshare\testfio1 fio.exe --name=./iotest1 --direct=1 --rwmixread=0 --rw=write --bs=4K --numjobs=1 --thread --iodepth=128 --runtime=300 --group_reporting --size=5G --verify=md5 --randrepeat=0 --norandommap --refill_buffers --filename=\\<mount point dns>\myshare\testfio1
- データストレージとして SMB ファイルシステムを使用するアプリケーションの場合、大きなデータブロックを使用して読み取り、書き込み操作を実行してください。 データブロックが小さいほど、より多くのネットワークリソースが消費されます。 データブロックのサイズを変更できない場合は、BufferedOutputStream を使用します。