テクニカルノート023  


Windows 環境におけるサーバの問題点
Windows における PERFORCE サーバの問題の要因



ウイルスチェックソフト

最近 Windows 上で最も多く見られる問題の1つは、ウイルスチェックソフトに関連するものです。 最新のウイルスと最も徹底したウイルスチェックソフトとは絶えず戦っていますが、これが Windowsアプリケーションに悪影響を及ぼすことが多くあります。

PERFORCE Windows サーバは、PERFORCEメタデータにアクセスする唯一のアプリケーションであると想定されています。 PERFORCE メタデータは、PERFORCEサーバのルート・ディレクトリ配下にある db.* ファイルに格納されています。PERFORCEサーバは内部的にファイル・ロックを使用して、メタデータ内の重要な領域に対する複数のクライアント・アクセスを同期しています。

多くのウイルスチェックソフトは動的に機能し、ファイルの使用中にそれらを監視しています。ファイルが更新された直後、ウイルスチェックソフトはファイル を開いてスキャンします。この動作が、PERFORCEサーバが次のクライアント要求を処理するのを妨げます。ウイルスチェックソフトは多くの場合、PERFORCEサーバとは異なるファイル・ロック形式やロック順序を使用しています。そのため PERFORCE サーバで DBエラーが発生し、クライアント・コマンドが強制終了されることになります。DB エラーの重大度によっては、PERFORCEサーバがシャットダウンされる可能性もあります。

PERFORCEサーバ稼動マシンではウイルスチェックソフトを使用しないことをお勧めします。可能であればサーバには専用のマシンを使用し、専用サーバを外部の影響から保護できる方策を採ってください。完全にデータが埋め込まれた PERFORCEクライアント・ワークスペースを作成し、そこでウイルスチェックソフトを実行します。PERFORCEサーバ稼動マシンでウイルスチェックソフトを実行しなければならない場合は、ディポ・ディレクトリ配下のメタデータ・ファイルやレポジトリ・ファイルを チェックしないように設定してください。TCP/IP データ・ストリームのフィルタリングを行うウイルスチェックソフトの使用は避けてください。


Logitech ビデオ・ドライバ

Logitech ビデオ・ドライバ(LVPrcSrv.exe)が PERFORCE Windows インストーラを終了させてしまうことが知られています。 このビデオ・ドライバはインストーラによるWin32 API の DuplicateHandle 関数の呼び出しを妨害し、エラーを収集できないままインストーラをただちに終了させます。 現時点で知られている唯一の対応策は、[タスク マネージャ]で LVPrcSrv.exe プロセスを強制終了し、PERFORCEインストーラを実行してから LVPrcSrv.exe プロセスを再起動することです。 Logitech社にはこの問題を連絡してありますが、回答は得られていません。


PERFORCE サーバのチェックポイント処理およびバックアップ

通常の PERFORCE サーバのチェックポイント処理を実行します。 PERFORCE のバックアップおよびリカバリの概念についてより詳しくは、 『システム管理者ガイド』を参照してください。チェックポイント処理が完了したことを確認するには、現在のジャーナル番号が付け替えられ、新しいジャーナル・ファイルが作成されたこ とを確かめます。 通常のチェックポイント処理による出力、"p4d -jc" は以下のように示されます。"p4 admin checkpoint" を使用している場合は、この出力は現れません。
Checkpointing to checkpoint.83...
Saving journal to journal.82...
Truncating journal...
最後の行が新しいジャーナルの作成を示していることに注意してください。この行がチェックポイント出力にない場合、そのチェックポイントが不完全である可 能性が高いといえます。この行がない場合は PERFORCE テクニカル・サポートに電話またはメールで連絡してください。

適切なシステム・バックアップ方法を構築してください。そしてバックアップが作動していることを確認してください。最も重要なのは、バックアップ媒体から確実にリカバリが可能であるようにすることです。バックアップの失敗やリカバリが不可能であることを、手遅れになるまでユーザが気付かないことがよくあり ます。


ディスク使用量の監視

PERFORCE サーバ稼動マシンに十分なディスク空き領域があるようにしてください。 PERFORCEサーバがディスク領域を使い果たすと、メタデータが破損する恐れがあります。ディスク領域を使い果たした可能性がある場合、PERFORCEサーバのルート・ディレクトリ、P4ROOT で "p4d -xv" コマンドを使用して PERFORCEサーバのメタデータをチェックすることができます。

チェックポイント作成時に "-z" オプションを使用し、"p4d -z -jc"を実行すると、チェックポイントで使用される領域が節約できます。チェックポイントの実行および検証の際、安全のために保存する必要があるのは、最新の2、3のチェックポイントとそれらに対応するジャーナル・ファイルだけです。ただしこれは、使用するシステム・バックアップのスケジューリングによって異なりま す。


Windows アップデートの適用

Microsoft 社は Windows アップデートを適用する便利な方法を提供しています。 しかし弊社では、Windowsアップデートを手動で適用することを推奨します。可能であれば、アップデートを削除しなければならない場合に備え、バックアップ・オプションを選択してく ださい。システムが不安定になる前と後とを明確に判定できるようにアップデートをスケジューリングしてください。少なくとも、システム・セキュリティ攻撃を防ぐためのセキュリティ・パッチを適用してください。原則として、弊社ではすべての最新セキュリティ・アップデートをサポートしようとしています。セ キュリティ・アップデートの実行後に問題にお気付きの場合は、PERFORCEテクニカル・サポートに電話またはメールで連絡してください。その際に問題が Windowsアップデートに関連する可能性があることをお伝え頂ければ、問題解決に役立ちます。


システム・メモリ使用量

大規模なサイトを管理している場合、Windows x86 / 32 ビット・アプリケーションが使用できる仮想メモリは最大で 2GBであることに注意することが重要です。 お使いのサーバのメモリ使用量が 2GB に近づいている場合、Windows x64 / 64 ビット用のPERFORCE サーバをご提供します。このサーバ・バージョンは、NTX64 であり、PERFORCE 2006.1 の Windowsインストーラで示されます。2006.1 の Windows インストーラには NTX86 と NTX64 の 2 つの PERFORCEサーバが含まれています。インストーラは自動的にどちらがインストールされるかを検出します。

弊社では、Windows 32 ビットのパフォーマンス上の問題から、Windows 32 ビット boot.ini のフラグに /3GB または /PAE を使用しないことをお勧めします。


ネットワーク・ディスクのパフォーマンス

PERFORCEサーバのメタデータにネットワーク・ディスクを使用すると、サーバのパフォーマンスが遅くなります。通常のローカル・エリア・ネットワークでは、最大デー タ転送速度は毎秒 100 メガビットです。データは 1 バイトずつ、10 ビットのフレームに入っています。 LAN は最高で毎秒10MB転送することができますが、より現実的には、転送速度は毎秒 4~6MB です。 ギガバイト単位のネットワークの場合、これらの数値を10倍してください。どちらの場合でも、通常は安価な SATA ドライブの方が高速です。

大規模なサイトでは、PERFORCEサーバのレポジトリ・ファイルの保存にネットワーク・ストレージを使用している場合があります。これにより PERFORCEサーバのアクセスが遅くなる可能性がありますが、IT 管理の面でやむを得ない選択といえるでしょう。 この場合は、PERFORCEサーバ・マシンとネットワーク・ストレージ・デバイスとの間にギガバイト単位のネットワーク接続を使用するようにしてください。 弊社ではディスク・パフォーマンスの試験に関心のあるお客様向けに、ディスク・スループットの試験ツールを用意しています。電子メールでPERFORCE テクニカル・サポート宛に "fstst" ツールを要求してください。


Windows サービスの権限をチェックする

PERFORCE サービスは、デフォルトでは PERFORCE Windows インストーラによって LocalSystemユーザ・アカウントを使用するよう構成されていますが、これとは異なるユーザ・アカウントを PERFORCEサービスに割り当てる必要がある場合があります。その場合、このユーザ・アカウントにはマシンのレジストリへのアクセス権限がなくてはなりません。レジストリへのアクセス権限を確認するには、そのユーザとしてログオンし、次のコマンドを実行してください。
p4 set -S Perforce
このコマンドが成功すれば、そのユーザ・アカウントはレジストリに対して必要な権限を持っています。また、そのユーザ・アカウントにはPERFORCEサーバのルート(P4ROOT)配下のディレクトリ構造にアクセスする権限がなくてはなりません。権限があるかどうか不明な場合は、目的とするPERFORCE サーバのルート・ディレクトリの配下に、このユーザでファイルまたはディレクトリを作成してみてください。

戻る