Jenkins(1.477、1.480.3、および1.508)を実行しているVM(VMWareクラスター内)があり、SVNリポジトリ(Collabnet SVN 1.7.5-3150.92)へのコミットのビルドを実行します。リポジトリにはSSL接続を介してアクセスします。セキュリティ上の理由から、どちらのコンピューター(ビルドサーバーまたはSVNサーバー)もインターネットにアクセスできません。JenkinsビルドがSVNの開始を開始すると、ジョブのコンソールが更新され、「https://vcfs01.redacted-address.com/svn/MTCM/Trunk」が30〜90秒間更新されます。更新が開始されると、かなり高速になります。
Jenkinsを犯人として除外するために、TortoiseSVNを使用してビルドサーバーからチェックアウトすることで同じ問題を再現しました。Tortoiseでも同じ遅延が発生し、ファイルの転送が開始されると、転送速度は50〜70 KB / sの範囲になります(これはすばらしいことです)。
Kasperskyを使用しており、Kasperskyを搭載したプログラマーPCでは問題が発生しないため、問題として除外しました。また、100%確実にするために、両方のサーバーを除外しようとしました。
しばらくの間、WireSharkでhttp://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab?dca976bb02bdc2e3からのHTTP GETの試行を確認したため、これは証明書失効チェックの問題であると確信していました。 。このKB記事の手順を使用して、JenkinsサーバーとSVNサーバーの両方で証明書失効チェックを無効にしました(後者が問題になるとは思えませんが)。この変更を行うと、windowsupdateサーバーへの接続は試行されなくなりましたが、代わりにhttp://crl.globalsign.com/gs/gsorganizationvalg2.crlからのHTTPGETが表示されました。CRLチェックの無効化に関するこの記事に出くわしました。両方のサーバーについてそこでの手順を実行しましたが、外部(インターネット)アドレスへのHTTPGETは表示されなくなりました。
Jenkinsサーバーがインターネットにアクセスできる場合、Tortoiseではハンドシェイクに約5秒かかります(ファイアウォールがアクセスを阻止する場合は約90秒です)。Tortoiseの高速ハンドシェイクにもかかわらず、Jenkinsの速度はファイアウォールが設置されていたときと同じです。
Jenkinsについて調査し(Jenkinsをバージョン1.477から1.508に更新しました)、シンボリックリンクに問題があるSVNKitに関する記事を見つけました。私の知る限り、シンボリックリンクは使用されていません。
WireSharkで見ているのは、JenkinsサーバーとSVNサーバーの間に初期アクティビティ(暗号化された接続の作成)があることです。最初のアクティビティが約30秒経過した後、さらにアクティビティがあります(アプリケーションデータが送信されます)。アプリケーションデータの後、さらに約30秒の遅延があり、さらにアプリケーションデータが送信され、暗号化された接続がリセットされ、更新が開始されます。
@Chrisと@Barmarが書いたことについてネットワーキンググループと話し、ネットワーキンググループは次のように述べました。
私たちのDNSサーバーにはすでに逆168.192ルックアップゾーンがあり、かなりの数のサーバーが配置されています。内部サーバーの古い不正なエントリを検索することを除いて、これらのゾーンで何もする必要はほとんどありませんでした。
これはルックアップの問題ではないと思いますが、ここで頭を悩ませています。Jenkinsマシン(172.25.2.106)とSVNサーバー(172.25.2.106)の間のフィルター処理されたキャプチャは、パケット送信間の一時停止を示しています。
これらは両方ともWin2K8R2DatacenterVMwareマシンです。私たちのネットワークグループによると、これらのサーバーのDNSエントリ/ルックアップは構成され、正しく機能しています。