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 設定を確認することを推奨します。

パフォーマンスの問題を解決する手順

  1. ProviderOrder キーの値を変更します。 SMB サーバーにアクセスする際のレイテンシが通常よりも長い場合は、この値を確認することを推奨します。
  2. 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
  3. データストレージとして SMB ファイルシステムを使用するアプリケーションの場合、大きなデータブロックを使用して読み取り、書き込み操作を実行してください。 データブロックが小さいほど、より多くのネットワークリソースが消費されます。 データブロックのサイズを変更できない場合は、BufferedOutputStream を使用します。