2

StarTeamサーバーでCruiseControlを使用していますが、StarTeamサーバーのクラッシュに問題があります。サーバーに大きな打撃を与えているのではないかと考えています。3台のCruiseControlマシンと合計約30のプロジェクトにわたって、StarTeamにログインし、1分ごとに変更をチェックしています。私たちのプロジェクトのほとんどには、最大20,000個のファイルが含まれています。StarTeamを使用したこのタイプのシナリオでのパフォーマンス制限の経験がある人はいますか?

また、TFS、Perforce、SVNなどの他のバージョン管理システムでのCruiseControlのパフォーマンスメトリックにも興味があります。CruiseControlや多数のファイルを含む多数のプロジェクトを使用する場合、スケーラビリティの問題がありますか?

4

6 に答える 6

1

継続的インテグレーションにStarTeamを使用した経験はありますが、CruiseControlではなくTeamCityを使用しています。この場合、TeamCityからStarTeamへの定期的な接続は、パフォーマンスモニタリングのブリップとしてほとんど登録されません。

サーバー上のStarTeamログファイルを見ましたか?-通常、コードボールトまたはハイブのルートディレクトリにあります。私は通常、問題のトラブルシューティングに十分なログを見つけました。

于 2008-11-05T08:02:26.113 に答える
1

複数のアクティブなプロジェクトで CC を実行したときの最大のパフォーマンス改善は、MPX キャッシュ エージェントを同じマシンにインストールし、ファイル属性とコンテンツを確実に保存するようにしたことです。(それと、ビルドで ccache を使用することを確認してください。)

トリガーのアイデアは StarTeam SDK に存在しますが、それが CC とどの程度統合されているかはわかりません。ビルドが必要かどうかを確認するために、サーバーからの最後のプルをクリーンなディレクトリに保持し、stcmd リストを使用して変更を比較します。これは非常に高速です。

于 2009-03-23T08:19:25.180 に答える
1

ここで説明されているように、「複合修飾セット」の使用を検討したいと考えています。

StarTeam は「トリガー」をサポートしていますか? CruiseControl マシンでレポジトリの変更を毎分チェックする代わりに、StarTeam マシンを使用して、ファイルに触れることでコードが変更されたことを CruiseControl に知らせます。

基本的に、プロジェクトが更新されると、VCS は CruiseControl が監視するファイル (project-a-update.txt など) にアクセスします。ファイルが変更されたことに気付くと、CruiseControl は、VCS から更新を実行する必要があることを認識します。そのため、リポジトリ全体ではなく、N 分ごとにプロジェクトごとに 1 つのテキスト ファイルをポーリングしています。

于 2008-11-05T22:37:20.107 に答える
0

私が知る限り、StarTeam はトリガーをサポートしていません。CruiseControl.NET の StarTeam タスクはポーリングのみをサポートしており、StarTeam がトリガーをネイティブにサポートしているという証拠はどこにも見当たりません。

StarTeam を限界まで押し上げても、まったく同じ問題が発生しています。確かではありませんが、プロジェクトが開発者や CruiseControl によって非常にアクティブである場合に問題が頻繁に発生するため、クラッシュの問題は同時アクセスに関連していると考え始めています。

変更のポーリングのペナルティも非常に大きくなっています。さらに悪いのは、ペナルティが 2 倍になることです。StarTeam への最初の呼び出しは、"hist" の呼び出しで、ビルドをレポートおよびトリガーするための変更セットを取得します。次に、"co" の呼び出しで、ソース ツリー全体の 2 回目のチェックを行い、古いものや不足しているものがあればチェックアウトします。ファイル。いずれかを排除する StarTeam プロジェクトの周りにトリガーを作成する方法を誰かが提案できる場合は、ぜひ試してみたいと思います。

于 2008-11-11T16:55:44.600 に答える
0

まず、私は StarTeam の経験がありません! ただし、CruiseControl と転覆の経験はあります。

スケジュールの間隔を 1 分未満に変更できます。プロジェクトをチェックしてビルドが必要かどうかを確認するには、通常 3 ~ 5 分で十分です。しかし、非常に頻繁に確認する必要がある理由があるかもしれません。

Subversion は非常にうまくスケーリングします。これは、Cruise が更新があるかどうかを確認するたびに、プロジェクトのローカル バージョン番号とリモート バージョン番号を比較するだけで、各ファイルを確認する必要がないためです。したがって、このチェックの速度は、プロジェクト内のファイルの数には影響されません。

これがお役に立てば幸いです。

于 2009-01-29T02:59:37.900 に答える