最近、チームのインフラストラクチャをAD内のWindows10に更新しました。
以下を除いて、すべて正常に動作します。状況によってはパフォーマンスの低下が見られます。最初に観察されたのは、VS2017内のコンパイル後のPowershellスクリプトの実行速度がWindows 7よりも遅いためでした。Googleも役に立ちませんでしたが、今ではさらに調査する時間がありませんでした。最近、CIビルドファームも更新しました(CIサーバーとしてのTeamCity)。そこで、ビルド時間が100%以上増加しました。参照用のビルドは、アップグレード前に17分05秒のままで、7分33秒かかりました。
ここStackExchangeとgoogleでの調査は表現力がありませんでした。もう少し調査したところ、マシン(まだAD内)でローカルアカウントを使用してエージェントを実行すると、ビルド時間が約8分50秒になることがわかりました。
Buildjobには、さまざまなMSBuildステップ、nUnintランナー、およびいくつかのPowerShellステップが含まれています。ネットワークアクティビティはありません-すべてがエージェント上でローカルに実行されます。 1つのMSBuildステップは、以前は36秒、現在は1分02秒かかりました。 NUintステップと同じ-30秒対1分24秒(すべてADユーザーを使用)。
問題がどこにあるか提案はありますか?
解決策を見つけました。これは、Windows 10、MSBuild、および当社のインフラストラクチャを組み合わせたものでした。
TeamCityはMSBuild呼び出しをラップします。このラッパー、または内部の一部のWindowsコンポーネントは、「akamaitechnologies」と通信しようとします。CDNは、Microsoftがテレメトリに使用していることを知っています。当社のネットワークはプロキシの背後にあるため、リクエストをタイムアウトする必要があります。ドメインユーザーでは、このタイムアウトはローカルアカウントよりも驚くほど長くなりました。解決策(なぜ古いローカルアカウントでも機能したのか)は、システムプロキシをアクティブ化することでした。リクエストがプロキシからすぐに「拒否された」応答を受け取ることを知ってください。ビルド時間は通常の時間に短縮されました。
この問題で私を助けようとした人に感謝します!