公司企业8-配置管理制度 19-服务器部署的关键因素.doc
StarTeam服务器部署的关键因素1 、服务器端组件部署策略根据StarTeam所支持团队的大小,需要采取不同的部署方案来保证StarTeam的性能及可靠性。存储库大小、并发用户数、是否部署StarTeam MPX、应用程序的复杂程度(指自定义表单、自定义字段等)等等,都会对StarTeam的性能产生影响。根据经验数据,团队的大小在一定程度上与project、view的数量成正比,而project、view的数量又决定了存储库中数据量,所以我们可以使用并发用户数来界定StarTeam配置库(Server Configuration)的大小。根据并发用户数多少把StarTeam配置库分为三种类型:1. 小型配置库:并发用户数不超过50;2. 中型配置库:并发用户数不超过100;3. 大型配置库:并发用户数达到并超过100;1.1 一个服务器上部署多个配置库对于小型或中型的配置库,可以把所有的StarTeam服务器端组件(StarTeam Server、 Database等)都部署到一台机器上。下图给出了相应的部署图。一台机器上所有配置库的并发用户之和不能超过100,但一台服务器的并发用户数的峰值到达100时,建议把服务器上的某个配置库迁移到另一台机器上。StarTeam Server相关的Root Message Broker进程、Root Cache Agents进程、Database Server进程以及所有的StarTeam Server进程都运行在一台机器上,因此对机器配置有以下要求:ü Database Server进程需要分配一个CPU及1G内存;ü 每增加一个StarTeam配置库需要分配一个CPU及1G内存;1.2 中型配置库当并发用户数达到中型配置库的标准时,首先需要为Database提供一个单独的机器安装。下图给出了相应的部署图。如图,除数据库独立外,其他进程仍然可以运行在同一台机器上。Database Server进程占用的负载被转移后,允许的并发用户数可以到达200300。然而对于有多个配置库的情况,vaults和databases会分布在不同磁盘上,不利于备份和管理,因此建议把需要备份的数据放到一个公用的磁盘上,如下图所示:1.3 大型配置库大型配置库是指可以支持100个以上并发用户的配置库。对于大型配置库,需要给每个StarTeam Server进程提供单独的机器,Database Server进程也需要单独的机器支持,Root Message Broker进程,Root Cache Agents进程最好也使用单独的机器(MPX)支持。特别是当并发用户数达到并超过200、300时,MPX进程运行在单独的机器上会很好的消除StarTeam Server上的网络阻塞和资源争用。下面给出了多个大型配置库的部署图:对于大型配置库的部署需要注意:1. 每个StarTeam Server进程需要运行在一个单独的机器上,机器配置需要满足2 CPU、2 G内存用于支持100200的并发用户,200个以上的并发用户需要4 CPU、4 G内存;如果预期用户数还会持续增加,推荐使用4 CPU、4 G内存;2. Database Server进程需要运行在单独的机器上,多个StarTeam配置库可以共享一个Database Server。StarTeam server和Database Server之间需要1G的高速网络连接。3. Root Message Broker进程,Root Cache Agents进程可以运行在同一台机器上,称为MPX。每个Cache Agent需要访问相应的vault,此时高速网络连接并不是必须的,通过网络的文件访问就足够了。如果需要使用工作流Notification Agent,也可以部署到这台机器上。4. 所有的StarTeam vault和database 使用一个公共的存储服务器管理。2 、影响服务器性能的因素对于StarTeam服务器端硬件的选择,需要考虑各方面的因素,例如,计划部署几个配置库(Server Configuration)、配置库中大概会有多少工作产品、预期的并发用户数、预期组织内项目及人员的增长情况等等。即使对这些因素有明确的的预期,在评估硬件需求的过程中也仅仅是估算,而不可能做到精确的计算。这是因为,配置库使用过程中会有一些不确定因素,例如文件大小、配置库增长情况、同时进行签出操作的并发用户数等等。正是因为有这些不确定因素,我们更需要了解StarTeam服务器端的各种服务对那种硬件资源的占用得更多。下面介绍StarTeam服务器端的各种服务对不同硬件资源的占用情况。122.1 StarTeam Server进程相关StarTeam Server进程对硬件资源的占用按重要级别排序依次为:1) 内存StarTeam Server进程推荐的最小内存为256M。如果需要支持1020个用户,内存必须达到512M;当并发用户数介于50100之间时,必须有12G的内存支持StarTeam Server进程;而并发用户数超过200时,必须有24G内存支持。注意:对于32位的Windows操作系统,给一个进程分配的最大虚拟内存是2G,当2G内存都被使用的情况下,StarTeam Server进程可以把最大虚拟内存调至3G。2) CUPCPU的速度、一二级缓存大小等参数都会对StarTeam Server的性能产生影响,由于它是多总线的架构,多个CUP对提高StarTeam Server的性能有帮助。当预期并发用户数介于2550之间时,可以考虑使用带有双核处理器的机器;当并发用户数介于50100之间时,可以考虑使用带有四核处理器的机器。3) 网络在并发操作较多的情况下,网络带宽对StarTeam Server的性能有较大影响。如果使用独立于StarTeam Server的数据库服务器,那么需要在这两台服务器之间提供100M-1G的内网带宽。当连接StarTeam Server服务器的客户端很多,且执行的操作,例如批量的文件签出操作,也相当多时,客户端和StarTeam Server服务器端的网络连接将称为瓶颈。带宽为100M的内网将足以支持100200个并发用户,当并发用户数超过200时,需要考虑使用1G的带宽。事实上,所有的StarTeam Server进程都是处理到数据库和Vault的I/O操作,下面介绍数据库和Vault对硬件资源的占用情况。2.2 数据库相关数据库也是StarTeam服务器端的一部分,需要考虑数据库的配置、备份、收缩等操作。当需要考虑数据库硬件选择时,下面给出了一些参考意见:1) 内存与StarTeam Server类似,数据库系统也是使用内存缓存机制来改进性能的。对于大型的StarTeam配置库,需要将数据库系统放到单独的服务器上,并使内存大小足以满足数据库服务的需要。2) 磁盘阵列使用磁盘阵列会在很大程度上提高数据库I/O操作的性能,不同的RAID级别对性能改进和容错能力有不同程度的支持,可以考虑对数据库使用某种级别的磁盘阵列。3) CPU与StarTeam Server类似,数据库系统也支持多线程,使用速度更快,多个处理器的系统也会提高数据库系统的性能。4) 网络前面提到过,如果有单独的数据库服务器,那么就要求在数据库服务器与StarTeam Server服务器之间使用高速的专线网络连接。2.3 Vault相关所有基于文件的操作都是针对Vault进行的,例如签入、签出操作,添加附件等等。Vault由Cache、Archive、Attachments组成,下面给出针对这几个部分的I/O操作:1) CacheCache是Vault中使用最频繁的部分,签入文件时会向cache中新增文件;签出时,如果cache中已经有这个文件就直接签出,如果没有这个文件,待签出文件会被添加到cache中。2) ArchiveArchive的使用频率仅次于Cache,每个文件在签入时,会向archive中新增文件,或者更新archive中已有的文件。文件签出时,如果在cache中没有找到相应的文件,就会访问archive中的文件。3) AttachmentsAttachment中的文件的使用频率更低,只有当通过CR、task、topic和requirement对象访问时,才会向Attachment文件夹中添加文件或读文件。注意避免将Cache和Archive安装到系统盘。如果数据库和StarTeam Server在同一台机器上,避免将数据库数据文件与Vault存储在一个盘。如果有多个磁盘,请将数据库、Cache、Archive和系统分布在不不同的磁盘,从而使允许的I/O并发数最大。如果对Vault采用RAID机制,会提高Cache和Archive的性能。但是,由于Cache中的数据来源于Archive,因此RAID的容错特性只对Archive有效。2.4 MPX Message Broker相关MPX可以降低网络拥塞,即使是将Message Broker与StarTeam Server进程部署到同一台机器上。但是在没有增加硬件的情况下,StarTeam MPX会使客户端相应时间和服务器端吞吐量有一定增涨。因为,MPX Message Broker是独立的进程,可以通过把该进程与StarTeam Server进程部署到两台不同的服务器上来缓解网络拥塞。另外,MPX Message Broker进程对所在服务器的要求并不高,内存大小和CPU数量对Message Broker进程并没有影响。因为,Message Broker进程只起通信服务器的作用,对内存和CPU的占用很少,而且几乎没有磁盘I/O操作。2.5 使用性能相关如何使用StarTeam进行配置管理也会对某些特定操作的性能产生很大影响,下面总结了会对内存占用、数据库性能、客户端响应速度产生较大影响的因素:l 同时连接的客户端数:每个并发连接都会在StarTeam Server进程中占用少量的资源,每个活动的客户端请求也会分配到一个工作线程和一个可用的数据库连接;l 打开的视图个数:使用StarTeam客户端打开的每个视图都需要缓存一些与视图相关的信息。在一个客户端session内,暂时回滚到某个以前的视图也需要缓存一些信息;l 每个视图中item的个数:一个活动视图需要的缓存大小与视图中显示的项的个数成正比;l 分支视图的个数及层次:分支视图的数量和层次越多,针对特定事务启用的数据库进程也越多;l 可派生视图的创建:创建可派生所需要的时间与父视图中显示的工作产品的数量成正比。3 、数据库容量规划相关StarTeam支持Oracle、Microsoft SQL Server(以及MSDE)和IBM DB2数据库。当存储库支持的是小型团队(50100人),而工作产品数量不超过中型(数千个工作产品)时,可以使用MSDE作为数据库存储库。当存储库需要支持大型团队(几千或上百个用户),或者工作产品数量巨大(上万或者更多)时,需要选择一种商业数据库。StarTeam存储库的增长主要取决于一些三种类型的信息:Object表:StarTeam会为每一类进行版本控制的对象(文件、文件夹、CR、Task和topic)建一个相应的表存储工作产品类型相关的数据。会给每个对象的初始版本创建一条记录,当对象被修改时,也会给后续的修订创建相应的记录。每个对象的记录将占用100200字节,此外,每个工作产品表可以有24个索引,每个索引可以使每条记录的数据量增加50。可以假设每个对象的修订占用400个字节,并以此进行粗略的估计。视图成员(Item)表:当向StarTeam视图中增加需要版本控制的对象时,会创建一个视图成员,或称为项。通过item将对象和视图关联起来了,并使用item来存储对象在视图中的特定属性。所有的item数据都存储在一张有索引的单独的表中,同时,表和索引记录中,每个item都需要300字节的空间。注意,当对象在多个视图中共享时(例如,从父视图派生一个子视图),每个视图中item的个数都在增加。例如,当1000个文件在三个不同的视图中都出现时,会创建3000个项(大概需要900K)。Log表:在存储库中,StarTeam维护了两种不同类型的日志表,记录不同的事务。在Audit表中,记录StarTeam中所有对象的版本变化,类似流水账。在Security Log表中记录安全相关的事件,包括工作产品相关的变更(例如,权限调整),session相关的事件(例如,登录失败)。这两类表中记录都相对较小,不过表中的记录都会持续增长最终达到限制的大小。表大小的增长取决于这些事件发生的频率。StarTeam配置库的大小和增长率可以通过上述三种信息类型的数据量及变化情况进行估计。4 、Vault容量规划相关前面提到过,每个StarTeam配置库都包含一个Vault,而Vault又是由archive、cache、attachment三部分组成,这三个部分还可以部署在不同的地方。对于新的StarTeam配置库,这三个文件夹都是空的,只有当文件对象被添加到配置库中时,才会向archive、cache、attachment文件夹中新增vault文件。对archive文件夹大小的增长产生影响的因素有:l 当向配置库中添加需要版本控制的文件时,会相应的新增一个archive文件;l archive文件包含版本控制文件的初始化内容及一小段的信息。默认情况下,这些信息是经过压缩的,所以初始archive文件会比原始文件要小。压缩比根据数据类型不同而不同,例如对于已经压缩过的文件格式(如,.zip和.gif)实际上不会再压缩了,而对于文本文件,因为有许多空白空间和重复的内容,压缩比将接近5:1。下表给出了默认压缩情况下,典型的原始文件与archive文件压缩情况:文件类型原始大小初始archive文件大小压缩率Text(HTML)29KB10KB.36Binary(PDF)248KB186KB.75Source(C+)33KB8KB.24l 可以针对某些文件选择不同的压缩类型。默认的压缩是在效率和压缩大小之间的平衡点。对于不同需要可以选择“压缩速度最快”、“压缩比最大”或者“不压缩”;l 当版本控制文件的新修订被签入时,修订信息被附加到相应的archive文件上。如果文件是文本类型的,修订信息默认按增量存储并与变更的大小成正比。对于二进制文件,整个新的修订都默认被附加到archive文件上。这两种情况对应的压缩比都与初始文件的压缩比相同。可以使用这种方法估算某个文件在archive中占用空间的大小;l 注意:因为Archive文件的大小限制在4G以内,所以对于较大的文件,archive的压缩技术将影响可以存储的文件的最大修订;对cache文件夹大小的增长产生影响的因素有:l 当配置库中某个文件的新版本被提交到配置库时,会在cache文件夹中保存一个副本。因为,文件被提交到配置库以后会经常有签出操作,所以这个副本可以提高后续签出操作的效率;l 如果需要签出最新的或是历史的修订版本,而这个文件版本在cache中无法找到时,会到archive文件夹中找到相应的修订版本并在cache文件夹中添加一个副本;l Cache文件夹中会维护一个包含所有文件名的近期使用文件列表。当一个新文件添加到cache中,或者cache中的某个文件被使用时,该文件的文件名会出现在近期使用列表的第一个;l Cache文件夹的总文件大小由StarTeam Server的后端线程监控,一旦超出最大容量限制,会从近期使用文件列表的最后一部分找到近期最少使用的文件并删除该文件;l Cache文件夹允许的最大容量为4G(对于StarTeam 5.4版本);l 出于性能方面的考虑,Cache文件夹必须能够保存所有版本控制下文件的最新修订;Attachment文件夹中存储CR或者其他对象的附件,这些文件不需要进行版本控制,它们存储时并没有进行压缩和增量存储。相对于Archive文件夹,此文件夹的总大小和增长率都较低。5 、服务器各组件硬件配置建议下面分别给出StarTeam Server进程及Database Server进程单独部署时,所要求的最低的和推荐的硬件配置。3455.1 StarTeam和MSDE部署在一台机器上当使用MSDE作为数据库时,数据库和StarTeam相关的服务进程都在同一台机器上,下面给出了这台机器的硬件配置要求:注册用户数最低配置推荐配置小于50Pentium® 4, 1.3 GHz,1.5 GB of RAMDual Pentium 4, 1.3 GHz+,2GB of RAM50100Dual Pentium Xeon, 2.26GHz+,2.5 GB of RAMDual Pentium Xeon, 2.26GHz+,2.5 GB of RAM注意:当注册用户数超过100时,不推荐使用MSDE。5.2 StarTeam Server进程部署在单独的机器上当StarTeam Server进程单独部署时,参考以下配置建议:注册用户数最低配置推荐配置小于50Pentium 4, 1.3 GHz, 512 MB of RAMDual Pentium 4, 1.3 GHz+, 1 GB of RAM50100Dual Pentium 4, 1.3 GHz, 1 GB of RAMDual Pentium 4, 1.3 GHz+, 2 GB of RAM100200Dual Pentium Xeon 4, 2.26 GHz and1.5 GB of RAM.Dual/Quad Pentium Xeon 4, 2.26 GHz and 2.5GB of RAM.大于200Any high performance EnterpriseServer with RAID system(recommended), quad processors with2.26 GHz+, 4.0 GB of RAMAny high performance EnterpriseServer with RAID system(recommended), quad processors with2.26 GHz+, 4.0 GB of RAM5.3 Database Server硬件推荐当Database Server进程单独部署时,参考以下配置建议:注册用户数硬件配置数据库小于50Pentium 4, 1.3 GHz, 1 GB of RAM最低配置:MSDE 2000 SP2建议配置:SQL Server, Oracle, DB250100Dual Pentium 4, 1.3 GHz,2 GB of RAM最低配置:MSDE 2000 SP2建议配置:SQL Server, Oracle, DB2100200Dual/Quad Pentium Xeon 4, 2.26 GHzand 2-3GB of RAM建议配置:SQL Server, Oracle, DB2大于200Any high performance EnterpriseServer with RAID system(recommended), quad processorswith 2.26 GHz+, 4.0 GB of RAM建议配置:SQL Server, Oracle, DB2