静的解析,構成管理,MISRA-C,コードレビュー,バグトラッキング,リバースエンジニアリング
ソフトウエア開発支援ツール
SOFTWARE SOLUTIONS
ソフトウェア開発における品質の向上、および生産性の向上を目指して、最適な開発支援ツールを提供します。
PERFORCEの製品概要 > 技術情報 > テクニカルノート > テクニカルノート1175

![]() |
|||
Windows環境での2009.2サーバのパフォーマンス Windowsでブロック不可のソケットの問題により同期が遅くなる現象への対応策 2009.2リリースでは、PERFORCE APIのネットワーク層が大幅に変更されました。この変更はリリースノートに以下のように記述されています。 #203942 (Bug #32494) ** クライアント/サーバのネットワーク接続処理は、ハングアップしないよう に調整されました。サーバ・ロジックの変更により、TCPの送信/受信バッ ファを独自のバッファで補完し、ポーリングを使用してTCPがバッファリン グしない内容をバッファリングするようになりました。この変更によって、 サーバの"himark limit"を任意に高く設定できます。 この2009.2 APIの変更では、一部のPERFORCEユーザが特定のTCP構成を使用している場合に発生していた同時書き込みによるネットワーク・デッドロック状況を回避するのに加えて、PERFORCEのパフォーマンス改善のためにTCPのチューニングがより柔軟に行えるようになっています。 一部のWindowsオペレーティング・システムでは、変更されたAPIを2009.2のPERFORCEサーバで稼動させると、期待されるとおりに動作しません。すべてのWindowsオペレーティング・システムに影響するわけではありませんが、以下のMicrosoftサポート文書に記述されているように、ブロック不可のselect()呼び出しが低速になることがあります。
この問題に対処するには、上記リンクのMicrosoftサポート文書の「方法4」に記述されているとおり、レジストリ・エントリNonBlockingSendSpecialBufferingを設定してください。このレジストリ変更はPERFORCEサーバが稼動しているマシン上で行います。Perforce Software社では、影響を受けているWindowsオペレーティング・システムでのPERFORCE同期処理におけるパフォーマンスの問題を解決する方法として、上記のレジストリ・エントリの調整が望ましいと判断しました。 ブロック不可のselect()呼び出しが低速になる現象は、以下のオペレーティング・システムで確認されています。 Windows XP ProfessionalWindows Server 2003では、PERFORCEサーバが稼動しているマシン上で以下のようにレジストリを変更してください。 レジストリ・エントリは以下のように表示されるべきです。HKEY_LOCAL_MACHINE この変更を行った後、システムの再起動が必要になります。NonBlockingSendSpecialBuffering REG_DWORD 0x00000001 (1) 上記のレジストリ・キーの名前と場所はWindowsのほとんどのバージョンに適用されます。しかし、Windowsのバージョンによっては、このレジストリ・パラメータの設定が異なるか、存在しない可能性があります。 お使いのWindowsのバージョンに上記のレジストリ・キーが存在しない場合は、弊社テクニカルサポートに連絡してください。 |







