テクニカルノート040  


ネットワークの問題の切り分け
パフォーマンス低下はネットワークが原因であることは、どのようにして判定できますか


問題

PERFORCEの応答時間の遅延はネットワークの問題によるものであると、どのようにして判定できますか



解決策

はじめに、PERFORCEのログファイルを調査し、標準のシステム管理ツールを使用して、応答時間の遅延を診断します。PERFORCEコマンドがロー カル・マシン上では迅速に実行され、ネットワーク経由では動作が遅い場合、ネットワークの問題であると思われます。または、PERFORCEログに情報が提供されていれば、例えば経過時間と使用時間とを比較します。

非常に大きいユーザ処理によってPERFORCEサーバの応答が遅くなることも考えられますが、持続的にPERFORCEへの応答が遅い場合、通常はネッ トワークの問題が原因です。以下のいずれかの要因により、応答が遅くなることがあります。
  1. ドメインネームサーバ(DNS) の構成の誤り
  2. Windowsネームサーバ(WINS)またはWindowsドメインの構成の誤り
  3. ネットワーク応答の遅延


注意:

ネットワークの問題の解決はこのノートの範囲外ですが、問題解決のための提案をいくつか示します。

p4 info

最初の試験として適切なのは、p4 infoコマンドを実行することです。このコマンドがほぼ実行直後に応答しない場合、ネットワーク関連の問題があります。p4 infoコマンドでは、PERFORCEサーバへの通信にP4PORTの設定が使用されます。P4PORTの設定にサーバマシンのホスト名が使用されていれば、サーバIPアドレスの取得にDNSルックアップが必要です。DNSサーバに障害があるかネットワーク が遅い場合は、ルックアップ処理に時間がかかります。直接IPアドレスを使用することで、DNSルックアップを回避することができます。

ホスト名 対 IPアドレス

クライアント・マシン上で、P4PORTの設定にPERFORCEサーバのIPアドレスを使用してみましょう。これにより、ホスト名のIPアドレスへの変換に使用されるDNSルックアップが回避されます。サーバのホスト名を使用したP4PORTの例を示します。
P4PORT=hostname:1666
                  


IPアドレスを直接使用すると、P4PORTの設定は次のようになります。
P4PORT=1.2.3.4:1666
                  


PERFORCEサーバマシンのIPアドレスが手元にない場合、ping コマンドを使用して知ることができます。pingコマンドの実行例は次のとおりです。
ping hostname
                  


pingコマンドの出力には、ホスト名に対するIPアドレスが表示されます。

P4PORTの設定にIPアドレスを使用したときに p4 info コマンドがすぐに応答する場合は、DNSの構成が誤っています。

"p4 info" 対 P4Win

p4 infoコマンドはPERFORCEサーバによって処理されます。PERFORCEサーバがコマンドに対する出力情報を編集するとき、クライアントのIPアドレス に対してDNSリバースルックアップを行います。DNSフォワードルックアップは高速である場合もありますが、DNSリバースルックアップは低速です。DNSリバースルックアップが低速であると判定する1つの方法は、PERFORCE Windows クライアントP4Winを使用することです。P4Winでの「接続情報を表示」の操作では、DNSリバースルックアップを行いません。

P4Winの「接続情報を表示」の応答と、コマンドラインでのp4 infoからの応答とを比較することができます。「接続情報を表示」の処理が速く、p4 infoが遅ければ、PERFORCEサーバマシンにはDNSリバースルックアップの問題があります。

注意:この試験は、リリース 99.1およびそれ以降のPERFORCEサーバに対してのみ有効です。99.1より前のリリースでは、PERFORCEサーバは要求がp4 infoから送られたかP4Winから送られたかにかかわらず、常に逆方向のネームルックアップを行っていました。また、この試験では、P4V ではなく P4Win を用いなければならない点にもご注意ください。P4V の「接続情報を表示」は、逆方向のネームルックアップを行います。

"hosts" ファイル

ホスト名とIPアドレスのエントリをhostsファイルに追加することにより、DNSの問題を回避することができます。このタスクは通常、システム管理者によって実行されますが、各企業での標準の手続きに従ってください。

P4PORTの設定にIPアドレスを使用する代わりに、ホスト名とIPアドレスのエントリをhostsファイルに追加することができます。hostsファ イルは見つけにくい場合があります。それを見つけるためのいくつかの場所を以下に示します。
  1. NT/2000/XP: C:\Winnt\System32\Drivers\etc\hosts
  2. Win98: C:\Windows\hosts and hosts.sam
  3. Win95: C:\Windows\hosts and hosts.sam
  4. Unix: /etc/hosts


Windows95および98では、hostsファイルをhosts.samファイルにコピーする必要があるかもしれません。

hostsファイルのエントリの例を以下に示します。
1.2.3.4     hostname
                  


DNSリバースルックアップに問題があると判定した場合は、クライアント・ホスト名のエントリをPERFORCEサーバマシンのhostsファイルに追加する必要があります。

Windowsにおけるワイルドカード

場合によっては、p4コマンドでディポ構文またはクライアント構文をワイルドカードと組み合わせた、引用符で囲んでいないファイルパターンを使用すると遅延が生じることがあります。
p4 files //depot/*
p4 files //client/*
                  


Windows用ワイルドカード拡張ルーチンがディポ名またはクライアント名をネットワーク・システム名と間違えることにより、遅延が発生します。ファイルパターンの前後に二重引用符を入れることにより、遅延を防ぐことができます。
p4 files "//depot/*"
                  


ワイルドカードの特殊な取り扱いに関してさらに詳しくは、NOTE041「特殊文字の使用」を参照してください。

ネットワークの形態

今日のネットワークの多くは、100 Mbitテクノロジを使用しています。このタイプのネットワークにおける理論上の最大転送速度は、毎秒10メガバイトです。多くの場合、これより遅い転送 速度になることがあります。ネットワークが飽和状態になると、転送速度は毎秒4メガバイト程度まで大幅に低下します。このような場合、ネットワークルータ またはスイッチを使用すると役立つことがあります。

ネットワーク・ファイルシステム上のクライアント

p4コマンド(実行ファイル)自体が、パフォーマンスの非常に悪い、ネットワーク接続されたファイルシステム上にあることも考えられます。これをチェックするには、次のコマンドを実行してみましょう。
p4 -V
                  


このコマンドは単にバージョン情報を出力するもので、ネットワークアクセスは一切試行しません。応答が遅ければ、p4コマンド自体へのネットワークアクセ スに問題がある可能性があります。p4コマンドの実行ファイルをローカル・ファイルシステムにコピーまたはダウンロードしてみてください。

また、PERFORCEクライアント・ルートにネットワーク・ファイルシステムを使用すると、コマンドへの応答が遅くなることがあります。PERFORCEクライアント・コマンドで転送されるすべてのバイトは、ネットワークを2度通過しなければなりません。うち1回はPERFORCEサーバ からPERFORCEクライアント・アプリケーションへの転送、もう1回はPERFORCEクライアント・アプリケーションからネットワーク・ファイルシ ステムへの転送です。ネットワークが飽和状態にあり、クライアント・ワークスペースに大きいファイルまたは多数のファイルがある場合、p4 syncなどのコマンドが遅くなることが予想できます。PERFORCEクライアント・ワークスペースをローカル・ファイルシステムに移動させてみてください。

ネットワーク・ファイルシステム上のサーバ

PERFORCEサーバにネットワーク・ファイルシステムを使用することは非常に慎重に検討する必要があります。上記のPERFORCEクライアントのシ ナリオのように、サーバ・アプリケーションへのデータおよびサーバ・アプリケーションからのデータはネットワークを2度通過しなければなりません。また、PERFORCEサーバは重大なデータファイルに対してファイルのロックを使用します。ネットワーク・ファイルシステムのすべてが効率的にロック機能を実 装しているわけではなく、一部にはバグが多いものもあります。

ネットワークが飽和状態にあり、転送率が毎秒4メガバイト程度に低下している場合、PERFORCEサーバはクライアントの要求を満たすことはできませ ん。各クライアント要求はネットワークの一部を使用しており、PERFORCEサーバはネットワーク・ファイルシステムにアクセスするためにそのリソース を共有しなければなりません。昨今の安価なハードドライブでは、毎秒20メガバイト程度の転送率を提供します。良質なSCSIハードドライブでは毎秒160メガバイト程度の転送が可能です。可能な限り、ネットワーク・ファイルシステムに関わるサーバのボトルネックを避けるようにしてください。

NetAppファイラーなどの特殊用途向けネットワーク・ファイルシステムがある場合、プライベートなギガビットのファイバー接続を、直接PERFORCEサーバマシンに対して使用することを検討してください。隔絶されたギガビット接続では、毎秒100メガバイトの転送率が得られることが見 込まれます。

戻る