FAQ

PERFORCE

PERFORCEの機能

ID.058

Q. パフォーマンス改善技法

A.


概要

この記事では、大規模サイトのための様々なパフォーマンス改善技法を記述しています。

詳細

PERFORCE システム管理者ガイド』の第7章「PERFORCEのパフォーマンス調整」にある「サーバの停滞を防止する」を必ずお読みください。以下の技法の大部分は、その章で詳しく説明しています。
 
古い PERFORCE のリリースを稼動させている場合は、アップグレードを検討してください。PERFORCEの各リリースでは、それ以前のバージョンよりもパフォーマンスの 改善が図られています。現在のリリースバージョンについては、弊社ホームページの PERFORCE ソフトウェア・ダウンロード をご覧ください。
 
応答時間が遅い理由には、サーバマシンのリソースが不適切であること以外の理由もあります。例えば、以下に示す原因で起きる、不要なデータベースのロックです。
- 効率の悪いスクリプト
- 大規模なディポに対する無制限のクライアント・ビュー、およびプロテクションの未設定
- 膨大なデータセットに対して、未熟なユーザが無意識に実行したコマンド
 
データベースがロックされている状態を除 き、すべてのPERFORCEサーバの動作は非同期かつ並列で行われています。しかし、大規模なサイトにおける開発のピーク時に、大きいデータセットに対 して実行されるユーザ要求とスクリプトの組み合わせによっては、サーバマシンで過剰なページングをはっせいさせることがあります。 大規模な操作(膨大なラベルの再作成、巨大なワークスペースでの最初の同期など)は、業務時間外に計画することをお勧めします。それが不可能であれば、弊社テクニカルサポートに連絡し、PERFORCEサーバへの大きな要求を「サイド・トラッキングする」方法をお問い合わせください。
 
チェックポイント作成時、 PERFORCEサーバのデータベースはロックされます。お使いのPERFORCEサーバのデータベースが非常に大きいことによって、チェックポイント作 成に相当な時間がかかる場合は、チェックポイント作成を業務時間外に実行してユーザが影響を受けないようにします。それが不可能であれば、弊社テクニカルサポートに連絡して、オフライン・チェックポイントの実施方法をお問い合わせください。
 
PERFORCE サーバ動作させるだけならば、ハードウェア仕様は特に問いません。しかしながら、もしPERFORCEサーバが処理の限界に近づいている場合は、SMP(対照型マルチプロセッサ)マシンにアップグレードすることを検討してください。
 
非常に複雑なワークスペース・ビューまた はブランチ・ビューを用いた場合、ある程度、処理時間がかかることがあります(例えば、10万個のファイルについて300行のブランチ・ビューをスキャン する場合、1分から2分かかることがあります)。なるべく、複雑なビューを使用しないようにしてください。 (その方がユーザの操作も容易です。)
 
p4 obliterate は、業務時間外に最後の手段としてのみ使用してください。2004.2以前のリリースでは、非常に大きいディポがあると、obliterate の処理に何時間もかかることがあり、その間ユーザがロックアウトされます。2004.2以前のサーバでは、どれほど大きいデータベース・ファイルでも、そ の全体をコマンドラインの各引数に対して一度ずつスキャンします。(『PERFORCEシステム管理者ガイド』の第7章に記述されている「一時クライアントによる手法」を使用して、obliterate のコマンドライン引数を1個に減らすことができます。)
 
2005.1以降のリリースでは、 obliterate は高速化されています。2005.1以降のサーバでは、ファイルをスキャンする代わりに、より効率的なアルゴリズムを使用してデータベース・ファイル内で 削除すべきデータを探します。リリース2005.1では、アルゴリズムの1つにおいて各クライアントに設定されたMapStateを利用するため、すべて のクライアントにMapStateを設定することによって、非常に速く obliterate が処理されます。(なお、MapStateが実装されたのはリリース2005.1まででした。2005.2以降のリリースではMapStateを必要とせ ずに最適化されているため、MapStateは2005.2以降のリリースには存在しません。)リリース2005.1では、任意のクライアントから以下の シェルコマンドを使用して、すべてのクライアントのMapStateを設定することができます。 p4 clients \ | sed 's/^Client \([^ ]*\).*$/p4 -c \1 fstat \/\/depot\/file/' \ | /bin/sh > /dev/null 2>&1

<< PERFORCEの機能に関するFAQ一覧へ戻る