FAQ

今日も「社内」のどこかで東陽テクニカ2

PERFORCE

ID.005

Q. PERFORCEを動作させるために推奨されるCPU、メモリ、ディスクおよびネットワーク構成

A.


CPU

PERFORCEサーバがCPUリソースに対してかける負荷は比較的小さく、メモリやディスク性能の方がボトルネックとなる可能性は高いです。とは言え、 CPU性能も重要なファクタであることに変わりはありません。重い操作や複雑な操作を滞りなく実行するためには、適切なCPU性能が必要となります。

PERFORCEサーバはforkモデル(Windowsの場合はthreadモデル)を用いており、個々のコマンドはそのプロセス(またはスレッド)自 身で実行されます。そのため、マルチCPUを持つことによって、並行するプロセスが利用可能なCPUによって個別に処理できるようになります。しかし、マ ルチCPU構成におけるそれぞれのCPU性能も重要であり、無視してはいけません。膨大な処理を実行するコマンドが単一のプロセッサによって制限される可 能性があり、データベースのロックの競合、応答の遅延を引き起こす場合があります。


メモリ

サーバのパフォーマンスは、十分なメモリがあるかどうかに大きく影響します。以下に示す式により、お使いのサーバに必要なメモリを見積もることをお勧めし ます。ただし、この計算は最低限の見積もりであり、使用方法を考慮していません。期待されるパフォーマンスがすべての状況において得られるわけではありま せん。
    ファイルの数
x 1.5 KB
 
= 必要なメモリの概算
入力してください!  
 
x 1.5 KB = MB


ここでは2つの点が障害の要因になります。1つめの障害は、サーバが大きなクエリを実行する際にページングが発生しないようにすることで回避でき、 2つめの障害は、db.revテーブル(または少なくとも実際的な範囲で)をメイン・メモリにキャッシュできるようにすることで回避できます。
  • 大きなクエリで必要とされるメモリは、簡単に見積もることができます。ページングを発生させないよう にするために、PERFORCEサーバは1ファイルあたり 1KB のメモリを必要とします。したがって、10,000ファイルであれば 10MB のメモリを必要とするということです。
  • db.revをキャッシュするには、既存のインストールでのdb.revファイルの大きさを確認 し、それを見積もりに使用できます。PERFORCEの新規のインストールでは、1リビジョンあたり 150~200bytes のメモリが必要であり、仮に1ファイルあたり3リビジョンを保持していたとすると、1ファイルあたり 0.5KB のメモリを必要とすることになります。


このように、もし1ファイルあたり 1.5KB、つまり100,000ファイルに対して 150MB のメモリがあれば、全ファイルを対象とした操作を実行した際にもページングは発生しなくなるでしょう。もちろん、複数の大きな操作が同時に発生したときに は、ページングが発生しないようにさらにメモリを必要とする可能性はあります。しかし、実運用における大半の操作は、一部の少数ファイルに対して実行され るはずです。

ほとんどのインストールでは、システムにディポ内の1ファイルに対して1.5キロバイトのメモリがあれば十分です。

注意: Windows の32ビット・プラットホーム(Windows 2000と32ビット・バージョンの Windows 2003およびXPを含む)では、1プロセスあたりのメモリ使用量が2GBに制限されています。 Windows上では PERFORCEサーバは単一のプロセスとして稼動しており、各クライアント要求をそのプロセス内のスレッドとして処理します。トランザクション・ボ リュームが非常に大きいサイトでは、この2GBの制限によってパフォーマンスや大きな処理が妨げられる可能性があります。Windowsの64ビット・プ ラットホームにはこのメモリ制限はありません。32ビット・バージョンの1プロセスあたり2GBの制限に行き当たる可能性のあるサイトでは、64ビット・ バージョンのWindowsを使用することをお勧めします。


ディスク性能

PERFORCEサーバでは、ディスクの入出力について十分に配慮しています。メタデータはキーによって管理されており、ほとんどのアクセスは限られたデータ領域に対してシーケンシャル・スキャンで行われます。

唯一、ディスクに対して集中的な動作が発生するのはファイルのチェックイン時であり、ここでPERFORCEサーバは、ディポ(アーカイブ)内のファイル に対して書き込みやリネームを行わなければなりません。このときのパフォーマンスは、OSのファイルシステムの実装、特にディレクトリの更新が同期か非同 期かに大きく依存します。

Perforce Software社として特定のファイルシステムを推奨することはありませんが、ディレクトリの更新が非同期であることから、Linuxが最も速いと考え ます。しかしLinuxは、悪いタイミングで突然の電源断が発生したとき、完全にリカバリできない可能性があります。BSDのファイルシステム (Solarisでも使われています)は、遅いのですが、信頼性は高いと言えます。WindowsのNTFSファイルシステムは、これらの中間に位置しま す。おそらく、最良の組み合わせは、IRIXやOSFで使用されるファイルシステムでしょう。これらは、いずれも速く、しかも信頼性が高いです。


ディスク容量

ディスクの使用量は、次の3つの項目によって決定する必要があります。:
  • クライアントのファイル
  • PERFORCEサーバのメタ・データベース
  • PERFORCEサーバのファイル・アーカイブ(ディポ・ファイル)
  • これらは、すべてユーザのデータに依存し、どの程度PERFORCEを使用するかに依存します。

    クライアント・ファイルの容量とは、単純に、ある瞬間にクライアント・ワークスペース内に存在させるファイル・サイズの総和です。

    PERFORCEサーバにおけるメタ・データベースのサイズは、詳細に計算することもできますが、概算で1ユーザ、1 ファイルあたり 0.5KB となります。つまり、10,000ファイルおよび50ユーザが存在する場合、メタ・データベースに約 250MB のディスク容量が必要であることになります。なお、このサイズは個々のファイルの履歴が増えるにつれ、増えていく可能性があります。

    PERFORCEサーバにおけるファイル・アーカイブのサイズは、格納されている元々のファイル・サイズに依存し、さらに追加されるリビジョンに依存します。この成長を簡単に見積もった場合、元々のファイル・サイズの約3 倍となります。


    ネットワーク

    PERFORCEは、どのようなネットワークであっても問題なく動作することができます。これまで、ネットワークに関する制限は何もありませんでした。お そらく10MbpsのイーサネットよりはFDDI(Fiber Distributed Data Interface) の方が快適に動作するのでしょうが、逆に「T1(1Mbps)接続であってもローカルの環境と同様に動作する」という報告もあります。


    バーチャルマシン

    PERFORCE サーバ・プログラム(p4d)をバーチャルマシン上で動作させたとき、p4d は、フィジカルマシン上で動作させたときと同じだけのシステムリソースを使用します。一方バーチャルマシンは、それ自身が動作するために、相当な量のメモ リやその他のリソースを使用します。
    もし、p4d のパフォーマンス(速度性能)を気にされるのであれば、バーチャルマシン上で p4d を動作させるべきではありません。Perforce Software社の内部テストでは、p4d をバーチャルマシン上で動作させたとき、フィジカルマシン上で動作させたときと比べて、パフォーマンスが約 1/10 まで低下しました。また、お客様のバーチャルマシン・ソフトウェアによっては、パフォーマンス以外(例えば、動作の安定性など)の問題に遭遇するかもしれ ません。

    << PERFORCEに関するFAQ一覧へ戻る