Version control 使用CruiseControl(StarTeam或替代品)时的版本控制服务器性能

Version control 使用CruiseControl(StarTeam或替代品)时的版本控制服务器性能,version-control,continuous-integration,cruisecontrol,starteam,Version Control,Continuous Integration,Cruisecontrol,Starteam,我们正在将CruiseControl与StarTeam服务器一起使用,并且StarTeam服务器崩溃时出现问题。我们想知道是不是我们对服务器的打击太大了。在3台CruiseControl机器和总共约30个项目中,我们每分钟左右都会登录StarTeam并检查修改情况。我们的大多数项目中都有大约20000个文件。有没有人对StarTeam在这种情况下的性能限制有过经验 我还对CruiseControl与其他版本控制系统(如TFS、performance、SVN等)的性能指标感兴趣。。。当使用Crui

我们正在将CruiseControl与StarTeam服务器一起使用,并且StarTeam服务器崩溃时出现问题。我们想知道是不是我们对服务器的打击太大了。在3台CruiseControl机器和总共约30个项目中,我们每分钟左右都会登录StarTeam并检查修改情况。我们的大多数项目中都有大约20000个文件。有没有人对StarTeam在这种情况下的性能限制有过经验


我还对CruiseControl与其他版本控制系统(如TFS、performance、SVN等)的性能指标感兴趣。。。当使用CruiseControl和大量文件项目时,他们是否存在可伸缩性问题?

我有一些使用Star Team进行持续集成的经验-尽管使用TeamCity,而不是CruiseControl。在我们的例子中,从TeamCity到StarTeam的定期连接几乎不被视为我们性能监控的一个亮点


你看过服务器上的StarTeam日志文件了吗通常位于代码库或配置单元的根目录中。我通常会发现日志足以解决任何问题。

您希望使用“复合修改集”进行研究,如下所述:

  • 第69页,共页
星际团队支持“触发器”吗?与CruiseControl机器每分钟检查存储库的更改不同,您可以让StarTeam机器通过触摸文件让CruiseControl知道代码何时更改


基本上,当对项目进行更新时,VCS会接触CruiseControl监视的文件(如project-a-update.txt)。一旦它注意到文件已更改,CruiseControl知道要从您的VCS进行更新。因此,它每N分钟轮询一个项目的单个文本文件,而不是整个存储库。

据我所知,StarTeam不支持触发器。CruiseControl.NET StarTeam任务只支持轮询,我还没有看到任何证据表明StarTeam支持本机触发器

我正经历着完全相同的问题,尽管是将星际团队推向极限。我不确定,但我开始认为崩溃问题与同时访问有关,因为当开发人员和CruiseControl高度活跃的项目时,问题会发生得更频繁


对变更进行投票的惩罚也变得相当严重。更糟糕的是,罚款增加了一倍。对StarTeam的第一个调用是调用“hist”以获取用于报告和触发构建的变更集,然后调用“co”对整个源代码树进行第二次检查,并检查任何过期或丢失的文件。如果有人能提出一种方法,在星际团队项目中创建一个触发器,从而消除这两种情况,我很乐意尝试一下。

我能找到的更多信息

StarTeam并不总是断开用户(或CruiseControl访问时的代理)的连接,并且可能导致同一用户/代理有几十个打开的连接/登录。不幸的是,很难确认这是否是一个相关问题,因为我无法可靠地使服务器过载


我们使用的是旧版本的StarTeam,它没有MPX。我想知道是否有人有在不同的支持MPX方法的持续集成环境中使用StarTeam的经验。

首先,我没有StarTeam的经验!不过我有CruiseControl和subversion的经验

你可以将你的计划间隔改为少于1分钟的时间——3-5分钟通常可以用来检查项目是否需要建设。但我承认可能有一个原因,你需要经常检查

Subversion的伸缩性非常好。这是因为每当cruise检查是否有更新时,它所做的只是比较项目的本地版本号和远程版本号,而不需要检查每个文件。因此,此检查的速度不受项目中文件数的影响


我希望这对您有所帮助。

在多个活动项目上运行CC时,我们最大的性能改进是在同一台机器上安装MPX缓存代理,并确保它存储文件属性和内容。(好吧,那就确保在构建中使用ccache。)


触发器的概念存在于StarTeam SDK中,但我不确定它与CC的集成程度。为了检查是否需要构建,我们将服务器的最后一次拉取保存在一个干净的目录中,并使用stcmd list比较更改。这非常快。

您认为它崩溃是因为您从这些项目加载了大量文件,还是因为您修改了大量文件并提交回StarTeam存储库?不幸的是,这些日志没有多大帮助-至少是目前的设置方式。他们只是显示登录的数量——博兰说这“太多了”。然而,这与CI有些不兼容。而且,我不相信简单的登录会像那样加载服务器。现在,日志文件只是显示我们的服务器每隔几分钟登录一次(15个项目,20分钟修改设置计时器)。日志不显示任何签出活动,只显示登录。我得到的消息是“登录太频繁了!”TeamCity使用的StarTeam客户端jar表现良好——检查完成后会断开连接。我的TeamCity服务器配置了十几个项目,并且(IIRC)它们大部分设置为每隔5分钟检查一次,其他项目每分钟检查一次。一个可能的变化是使用“MPX”服务,这应该是一个事件驱动的服务器更改“推送”。当发生更改时,服务器会通知订阅MPX提要的任何人。然而,这是Crui的一个巨大变化