虚拟机上安装TFS,源代码管理操作反应可能会比较慢

(英文版本) 症状: 有客户报告当他们的TFS2008服务器完全是基于虚拟机(如VMWare或hyper-V)的情况下,源代码操作的服务器端响应可能会比较慢。具体症状有: 较大规模的源代码管理操作,比如在较大范围上作撤销已有变更集/打标签/迁入等操作时,服务器端响应可能会需要几分钟时间,极端情况下甚至会出现超时错误; 当错误发生时,观察SQL Server则会发现CXPACKET 和PAGEIOLATCH_SH 等待类型。同时操作系统性能观察器上能看到出现比较高的硬盘操作队列(disk queue)和较高的硬盘使用率(% Disk); TFS应用层服务器上的事件察看器出现一些包含SQL Server 超时(“timeout expired”)错误。 原因和解决方案: TFS版本操作的很大一部分逻辑是在SQL Server中通过存储过程实现的,其中涉及大量临时表操作,以及硬盘输入输出操作。一旦SQL Server因为某种原因性能下降,TFS版本管理操作性能就会明显受影响。 出现以上症状的一个常见原因是在某些虚拟机配置下,SQL Server 硬盘输入输出操作比较慢。解决方法是调整虚拟机配置,提高硬盘I/O速度,或者将SQL Server转移到一台专用虚拟机上,甚至将SQL Server移到一台物理机。 更多信息: SQL Server的超时分为连接超时和命令超时。 管理员可以通过修改%program files%/Microsoft visual studio {version} team foundation server/web services/web.config文件中的SQLTimeOut 值来调整TFS应用层 SQL Serve 命令超时时间,修改%program files%/Microsoft visual studio {version} team foundation server/web services/services/web.config 文件中的连接字符串来定义(比默认时间长的)连接超时时间。修改以上值不会提高版本控制操作的性能,但是至少可以让SQL Server 超时错误不那么容易被触发。 相关文档: 1. TFS在虚拟机上部署时的性能问题注意事项 http://blogs.msdn.com/bharry/archive/2008/06/27/tfs-on-hyper-v.aspx http://blogs.msdn.com/charles_sterling/archive/2006/11/22/how-to-boost-tfs-performance-under-a-vm-by-dugie.aspx…


TFS2008 SP1 + SQL 2008 SP1,生成新团队项目时失败?

(英文版本) 有客户报告出现以下问题:TFS2008 SP1使用SQL 2008 SP1作为数据库服务器,这种TFS服务器配置在建立新团队项目时失败(通常建立系统中的第一个团队项目时不会失败,问题从第二个团队项目的建立开始)。团队项目建立日志包含下面的详细信息: 2009-12-15 17:54:43Z | Module: Rosetta | Thread: 16 | Entering Initialize in RosettaReportUploader—begin Exception entry—Time: 2009-12-15 17:54:43ZModule: InitializerEvent Description: TF30207: Initialization for plugin “Microsoft.ProjectCreationWizard.Reporting” failedException Type: Microsoft.TeamFoundation.Client.PcwExceptionException Message: TF30224: Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are…


TFS slow response when doing version control operations

(Chinese Version) Symptom: ================ I’ve meet some cases where TFS version control operations can be quite slow when the TFS deployment is based on a virtual machine like VMWare or Hyper-V. Problem inludes When performing large updates to TFS, such as undo pending changes/label/checkin multiple items, user may experience slow server response up to several…


建立团队构建类型,请注意定制工作空间

(English version of this post) 在团队浏览器2008中定义团队构建类型时,向导会提供此次构建的默认工作空间,映射到“$/<team_project_name>” 即团队项目源代码管理根目录。很多时候这个默认设置并非最佳选择。为了让构建更加高效,建议此处修改工作空间,使其“服务器端源代码控制文件夹”仅包含构建需要访问的路径。忽略此处定制而使用默认设置给构建带来的坏处有以下几点(非完全列表): 1. CoreGet target 默认情况下获取整个工作空间范围的源代码文件。如果工作空间映射范围太大,则CoreGet执行时会造成非必要的文件下载,尤其是整个项目源代码较多,但构建仅涉及其中一小部分时的情况下,默认工作空间映射会浪费更多时间和硬盘空间; 2. CoreLabel target默认情况下将标签设置在整个工作空间范围。然而通常用户希望每次构建仅label构建涉及的源代码文件,而不是整个团队项目范围。 3. GenCheckinNotesUpdateWorkitem target 比较两个标签–一当前构建的,何上次成功构建的–来得到与当前构建相关联的变更集和工作项集合。当CoreLabel 应用于整个团队项目源代码范围,GenCheckinNotesUpdateWorkitem 也会令构建报告中包含整个团队项目范围的变更集和工作项,而其中有些可能与此次构建根本不相关。 我遇到的一个相关实例是,客户希望在代码的一个分支上进行构建,但是发现构建报告竟然涵盖了其他分支上发生的变更集和工作项。导致项目组无法按照分支进行信息追踪。解决方法既是将构建的工作空间限制在目标代码分支上,而不是整个团队项目范围。 产品组的Jim和Buck对此问题进行了详细的解释。在此致谢。


TFS 2008 SP1 & SQL 2008 SP1 combination fails to create new team project

(Chinese Version) In a TFS2008 SP1 deployment with SQL 2008 SP1 as the database server, new team project creation can fail very fast. The creation log contains the detail resembling this: 2009-12-15 17:54:43Z | Module: Rosetta | Thread: 16 | Entering Initialize in RosettaReportUploader—begin Exception entry—Time: 2009-12-15 17:54:43ZModule: InitializerEvent Description: TF30207: Initialization for plugin “Microsoft.ProjectCreationWizard.Reporting”…


Where to find the TFS new team project creation logs?

TFS 2005 / 2008 creates a verbose text log file when creating anew  team project. It can be opened directly from the URL at the bottom of the project creation result(success/failure) dialog. In case you missed it, you can always find it back(unless you have manually deleted it.). Use the project creator’s account, log on…


Where to find the TFS installation log?

TFS write verbose log files during installation & upgrade. These log files contain rich information for troubleshooting.  You may want to check them by yourself, or submit them to a Microsoft technical support engineer when necessary. The log files are placed under the operation account’s temp folder. To get them , one Log on to…


How to collect a TFS Best Practice Analyzer Report?

Sometimes when you work with a Microsoft TFS support technician you will be asked to collect and submit a TFS BPA (Best Practice Analyzer) report. So why and how to do it? A BPA report typically means a TFS system health-check report. It contains information about: The TFS server operating system hardware capacity and configuration;…


SQL 服务使用localSystem帐户,如何安装TFS 2005 SP1?

(English Version) 如果在TFS2005部署中,数据层服务器上SQL 服务运行在localsystem帐户下,而不是一个域用户帐户,那么TFS2005 SP1安装可能会遇到下面的问题:   症状: ============= l  TFS2005 SP1安装程序中途消失,没有任何错误信息出现; l  SP1没有成功安装。且安装程序消失之后,客户端无法访问TFS服务; l  SP1安装日志中可以看到如下内容(采自英文版) 08/29/07 17:06:22 DDSet_Status: Commandline: “C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\TFSQuiesce.exe” /n:”Quiesce ATDT” …… Blocking service account from accessing database TFSActivityLogging Could not obtain information about Windows NT group/user ‘KF\tfsservice’, error code 0x5. …… Workflow ‘Quiesce ATDT’ failed!…

1

Install TFS 2005 SP1 with SQL Service running under LocalSystem account

(Chinese Version)    One may encounter this problem when applying Team Foundation Server 2005 Service Pack 1, in a deployment where the SQL service runs under LocalSystem account instead of a domain account.   Symptom: ===================== l  The TFS2005 SP1 setup program disappears mystically and quietly. It does not raise any error message. l  After…

2