我知道很多人都使用这种配置运行,它对他们很有效。我知道至少有一家公司的负载相当大(全球 24x7 开发,白天大约有 200 名用户访问系统),这种配置对他们来说效果很好。当 SQL 服务器被虚拟化时,他们确实遇到了问题,但自从 SQL 被赋予它自己的盒子以来,它们一直运行良好。关键是(与生产中使用的所有 VM 一样)确保 AT VM 有足够的资源,并且不会与主机设备上的其他 VM 竞争过于激烈。在资源不足的情况下,在 IIS 中运行的 ASP 工作进程可能会开始大量回收,这可能会导致一些问题。
虽然 AT 的 IO 相当低,但它实际上会缓存在版本控制中上传的文件,以避免在有人请求特定版本时必须从存储在数据库中的 delta 重新构建文件。因此,仍然值得对生产 VM 进行所有常见的良好实践,例如使用固定磁盘等
正如您所注意到的,应用程序层不执行繁重的 I/O,并且通常是虚拟化的良好候选者。我不知道您的具体环境,因此使用代表性负载对其进行测试将是获得明确答案的最佳方式,但它具有“它适用于我”的批准印章 :) 数据层 (SQL Server) 运行直接在硬件之上要好得多(但听起来这就是你正在做的事情)。
如果您在托管 TFS 应用层 VM 的服务器上运行多个 VM,请注意(我知道这非常明显)其他 VM 将争夺与 TFS VM 相同的资源(RAM、CPU、网络、和磁盘),因此请进行相应的计划。
我知道很多人都使用这种配置运行,它对他们很有效。我知道至少有一家公司的负载相当大(全球 24x7 开发,白天大约有 200 名用户访问系统),这种配置对他们来说效果很好。当 SQL 服务器被虚拟化时,他们确实遇到了问题,但自从 SQL 被赋予它自己的盒子以来,它们一直运行良好。关键是(与生产中使用的所有 VM 一样)确保 AT VM 有足够的资源,并且不会与主机设备上的其他 VM 竞争过于激烈。在资源不足的情况下,在 IIS 中运行的 ASP 工作进程可能会开始大量回收,这可能会导致一些问题。
虽然 AT 的 IO 相当低,但它实际上会缓存在版本控制中上传的文件,以避免在有人请求特定版本时必须从存储在数据库中的 delta 重新构建文件。因此,仍然值得对生产 VM 进行所有常见的良好实践,例如使用固定磁盘等