为 Project Server 队列服务配置最大作业处理器线程数

 

上一次修改主题: 2015-03-09

利用 Microsoft Office Project Server 2007 队列服务,您可以配置每种队列类型的最大处理器线程数。

Project Web Access 服务器设置中的“队列设置”页有一项“最大作业处理器线程数”设置,其默认值为 4(针对每个队列类型)。调整这些值时需要考虑很多事项。因为过多的作业处理器线程不仅会对应用程序服务器的性能产生负面影响,还会造成超时和内存异常错误。例如,管理员可能尝试将时间表和项目队列上的最大作业处理器线程数从 4 个增加到 10 个,以便满足月底这段时间内预期会增加的时间表提交数和项目更新需求。但是,如果未经仔细考虑随意增加线程数,则会对性能造成负面影响。

队列旨在限制作业的处理速度,以便分散可能会造成服务器过载的最大使用量。就项目管理而言,这可以对服务器起“调配”作用,防止服务器尝试同时执行过多任务。

队列多线程处理

由于队列为多线程,因此它可以:

  • 快速处理作业。

  • 避免在一个作业遇到问题时完全停止作业处理。

下表介绍了单线程队列和多线程队列中作业的处理顺序。在本例中,三个项目的保存和发布顺序如下:

  1. 保存并发布项目 1。

  2. 保存并发布项目 2。

  3. 保存项目 3。

  4. 重新打开、编辑、保存和发布项目 2。

下表介绍了在单线程环境中队列如何尝试处理作业。列标题 T1 至 T9 是指时间段。所有操作都将在第九个时间段结束时完成。请注意,第一个项目 2 发布作业被跳过以便优化,因为队列检测到稍后会发生相同的项目 2 发布作业。此外,项目 1 和项目 2 的报告作业具有较低的优先级,因此会在稍后处理它们。

线程 T1 T2 T3 T4 T5 T6 T7 T8 T9

线程 1

项目 1:保存

项目 1:发布

项目 2:保存

项目 2:发布(跳过)

项目 3:保存

项目 2:保存

项目 2:发布

项目 1:报告

项目 2:报告

下表介绍了在多线程环境(在本例中为 3 个线程)中队列如何尝试处理作业。与上述示例相比,它将多花费超过一半的时间来尝试处理相同的操作。请注意此环境是如何允许在同一个线程上处理所有互联作业(例如,与项目 1 保存和发布相关的所有作业)的。如果互联中的某个作业失败,它可能会阻止对同一个互联中的其他作业进行处理,但是这不会影响其他线程中的其他作业。

线程 T1 T2 T3 T4 T5 T6 T7 T8 T9

线程 1

项目 1:保存

项目 1:发布

项目 1:保存

项目 1:报告

线程 2

项目 2:保存

项目 2:保存

项目 2:发布

项目 2:报告

线程 3

项目 3:保存

建议的设置

开始时,我们建议您根据可用的处理器(或内核)数量设置最大处理器线程数。例如,如果 Project Server 应用程序服务器使用单个双核处理器,那么将该设置配置为每个队列两个线程是一个不错的开端。如果应用程序服务器使用四个双核处理器,则可以使用每个队列八个线程的设置。此外,还可以根据事务量以及事务的平均大小相应地调整这些设置(例如,发布 10 行的项目与发布 1000 行的项目时应采用不同的设置)。

您还应该考虑服务器场拓扑以及服务器场上运行的其他应用程序。例如,如果应用程序服务器同时用作前端 Web 服务器或同时运行搜索或其他处理器密集型活动,则应相应地调整该设置。此外,您可以监视性能计数器、应用程序日志和 ULS 日志,并据此微调队列,使其与正常的服务器负载相协调。