機械制御/振動騒音
IR情報 会社情報

PERFORCEテクニカルノート005

image_toyo_ss_img_perforce_title_perforce.gif.gif
テクニカルノート005
image_toyo_ss_img_all_line_yellow.gif.gif
image_toyo_common_spacer.gif.gif
PERFORCEを動作させるために推奨されるCPU、メモリ、ディスクおよびネットワーク構成
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
CPU
image_toyo_common_spacer.gif.gif
PERFORCEサーバがCPUリソースに対してかける負荷は比較的小さく、メモリやディスク性能の方がボトルネックとなる可能性は高いです。とは言え、CPU性能も重要なファクタであることに変わりはありません。重い操作や複雑な操作を滞りなく実行するためには、適切なCPU性能が必要となります。
image_toyo_common_spacer.gif.gif
PERFORCEサーバはforkモデル(Windowsの場合はthreadモデル)を用いており、個々のコマンドはそのプロセス(またはスレッド)自身で実行されます。そのため、マルチCPUを持つことによって、並行するプロセスが利用可能なCPUによって個別に処理できるようになります。しかし、マルチCPU構成におけるそれぞれのCPU性能も重要であり、無視してはいけません。膨大な処理を実行するコマンドが単一のプロセッサによって制限される可能性があり、データベースのロックの競合、応答の遅延を引き起こす場合があります。
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
メモリ
image_toyo_common_spacer.gif.gif
サーバのパフォーマンスは、十分なメモリがあるかどうかに大きく影響します。以下に示す式により、お使いのサーバに必要なメモリを見積もることをお勧めします。ただし、この計算は最低限の見積もりであり、使用方法を考慮していません。期待されるパフォーマンスがすべての状況において得られるわけではありません。
image_toyo_common_spacer.gif.gif
    ファイルの数
x 1.5 KB
 
= 必要なメモリの概算
入力してください!  
 
x 1.5 KB = MB

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

image_toyo_common_spacer.gif.gif
このように、もし1ファイルあたり 1.5KB、つまり100,000ファイルに対して 150MB のメモリがあれば、全ファイルを対象とした操作を実行した際にもページングは発生しなくなるでしょう。もちろん、複数の大きな操作が同時に発生したときには、ページングが発生しないようにさらにメモリを必要とする可能性はあります。しかし、実運用における大半の操作は、一部の少数ファイルに対して実行されるはずです。
image_toyo_common_spacer.gif.gif
ほとんどのインストールでは、システムにディポ内の1ファイルに対して1.5キロバイトのメモリがあれば十分です。
image_toyo_common_spacer.gif.gif
注意: Windows の32ビット・プラットホーム(Windows 2000と32ビット・バージョンの Windows 2003およびXPを含む)では、1プロセスあたりのメモリ使用量が2GBに制限されています。 Windows上では PERFORCEサーバは単一のプロセスとして稼動しており、各クライアント要求をそのプロセス内のスレッドとして処理します。トランザクション・ボリュームが非常に大きいサイトでは、この2GBの制限によってパフォーマンスや大きな処理が妨げられる可能性があります。Windowsの64ビット・プラットホームにはこのメモリ制限はありません。32ビット・バージョンの1プロセスあたり2GBの制限に行き当たる可能性のあるサイトでは、64ビット・バージョンのWindowsを使用することをお勧めします。
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
ディスク性能
image_toyo_common_spacer.gif.gif
PERFORCEサーバでは、ディスクの入出力について十分に配慮しています。メタデータはキーによって管理されており、ほとんどのアクセスは限られたデータ領域に対してシーケンシャル・スキャンで行われます。
image_toyo_common_spacer.gif.gif
唯一、ディスクに対して集中的な動作が発生するのはファイルのチェックイン時であり、ここでPERFORCEサーバは、ディポ(アーカイブ)内のファイルに対して書き込みやリネームを行わなければなりません。このときのパフォーマンスは、OSのファイルシステムの実装、特にディレクトリの更新が同期か非同期かに大きく依存します。
image_toyo_common_spacer.gif.gif
Perforce Software社として特定のファイルシステムを推奨することはありませんが、ディレクトリの更新が非同期であることから、Linuxが最も速いと考えます。しかしLinuxは、悪いタイミングで突然の電源断が発生したとき、完全にリカバリできない可能性があります。BSDのファイルシステム(Solarisでも使われています)は、遅いのですが、信頼性は高いと言えます。WindowsのNTFSファイルシステムは、これらの中間に位置します。おそらく、最良の組み合わせは、IRIXやOSFで使用されるファイルシステムでしょう。これらは、いずれも速く、しかも信頼性が高いです。
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
ディスク容量
image_toyo_common_spacer.gif.gif
ディスクの使用量は、次の3つの項目によって決定する必要があります。:
  1. クライアントのファイル
  2. PERFORCEサーバのメタ・データベース
  3. PERFORCEサーバのファイル・アーカイブ(ディポ・ファイル)
これらは、すべてユーザのデータに依存し、どの程度PERFORCEを使用するかに依存します。
image_toyo_common_spacer.gif.gif
クライアント・ファイルの容量とは、単純に、ある瞬間にクライアント・ワークスペース内に存在させるファイル・サイズの総和です。
image_toyo_common_spacer.gif.gif
PERFORCEサーバにおけるメタ・データベースのサイズは、詳細に計算することもできますが、概算で1ユーザ、1 ファイルあたり 0.5KB となります。つまり、10,000ファイルおよび50ユーザが存在する場合、メタ・データベースに約 250MB のディスク容量が必要であることになります。なお、このサイズは個々のファイルの履歴が増えるにつれ、増えていく可能性があります。
image_toyo_common_spacer.gif.gif
PERFORCEサーバにおけるファイル・アーカイブのサイズは、格納されている元々のファイル・サイズに依存し、さらに追加されるリビジョンに依存します。この成長を簡単に見積もった場合、元々のファイル・サイズの約3 倍となります。
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
ネットワーク
image_toyo_common_spacer.gif.gif
PERFORCEは、どのようなネットワークであっても問題なく動作することができます。これまで、ネットワークに関する制限は何もありませんでした。おそらく10MbpsのイーサネットよりはFDDI(Fiber Distributed Data Interface) の方が快適に動作するのでしょうが、逆に「T1(1Mbps)接続であってもローカルの環境と同様に動作する」という報告もあります。
image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_line_dot_526.gif.gif
バーチャルマシン
image_toyo_common_spacer.gif.gif
PERFORCE サーバ・プログラム(p4d)をバーチャルマシン上で動作させたとき、p4d は、フィジカルマシン上で動作させたときと同じだけのシステムリソースを使用します。一方バーチャルマシンは、それ自身が動作するために、相当な量のメモリやその他のリソースを使用します。
もし、p4d のパフォーマンス(速度性能)を気にされるのであれば、バーチャルマシン上で p4d を動作させるべきではありません。Perforce Software社の内部テストでは、p4d をバーチャルマシン上で動作させたとき、フィジカルマシン上で動作させたときと比べて、パフォーマンスが約 1/10 まで低下しました。また、お客様のバーチャルマシン・ソフトウェアによっては、パフォーマンス以外(例えば、動作の安定性など)の問題に遭遇するかもしれません。

 


image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_btn_yellow_bgwhite2.gif.gif戻る

PAGE TOP