优化 Project Server 2013 中的性能

摘要:了解优化 Project Server 2013 部署性能的指导原则。
适用于:Project Server 2013

优化

本文档和相关内容包含有关优化 Project Server 2013 场以优化性能的信息和建议。

基线

通常,建议您限制在任意给定时间保存的基准数。 硬限制为在任意给定时间只支持 11 个基准。

数据库服务器优化

假设 Project Server 2013 是数据密集型应用程序,则优化数据库层可以显著提高性能。 有关优化 SQL Server 设置的广泛指导,请参考“SQL Server 储容量规划及配置”主题。 下面的一些建议强调了在 SQL Server 主题中所做的设置:

  • 将数据库文件和事务日志文件从 OS 驱动器中分离,最好将每种文件放入不同分区。 这种方法可减少主机操作系统与 SQL Server 之间的 IO 争用以及 SQL 数据库文件与日志文件之间的 IO 争用,根据所使用的恢复策略,这些文件通常具有不同的更新模式。

  • 将 TempDB 分离到其各自的分区中。 将数据库分割为若干个物理文件,理想情况下,可分割的数量可与数据库服务器上的处理器数量一样多。

考虑利用 RAID 子系统来满足您的数据需求。 注意 - RAID 5 对于中型和大型数据集大小是可接受的,但 RAID 10 是理想的选择。
注意 - 将索引移动到其自己的分区上。

优化主项目

在 Project Server 中使用主项目功能时,请注意,主项目时间表中的更改将影响主项目中的子项目的时间表。 因此,极大型主项目的时间表更改执行起来可能很慢,因为其子项目时间表可能需要更新。

安全设置优化

注意 - 如果使用 SharePoint 权限模式,则不需要进行优化。

在“项目权限模式”中,为用户选择的安全设置可能会对性能特征产生重大影响。 这是因为它们既确定用户在查看项目时加载的数据量,又确定为确定用户有权访问哪些数据集而执行的安全检查的复杂性。

例如,管理员将有权访问您在 Project Server 中存储的所有项目,因此在与这些项目交互时需要加载所有数据。 团队成员可能不需要访问所有数据,因此可以通过安全类别来限制发送给这些成员的数据量:

  • 尽可能使用组和类别,而不是需要增加安全检查复杂性的更精细的权限。
  • 尝试限制用户对他们需要访问的项目的安全权限。 这样,他们只需加载与 Project Server 交互时所需的数据。

视图优化

  • 应尝试限制提供给用户的数据,方法是将给定视图中的列数仅限于对该视图拥有权限的用户需要查看的列。 还请注意,添加“自定义域”列将对视图性能产生更不利的影响。

  • 还可以使用筛选器来限制在加载特定视图时必须加载的数据量。 但请注意,具有复杂逻辑的筛选器将需要进行额外计算,因此可能会降低性能。

自定义域优化

使用自定义域对性能的影响取决于所使用的自定义域(“部门”和“企业”自定义域)的若干个方面。 下面是有关自定义字段性能方面的一些注意事项和建议。

  • 自定义域对性能的影响将取决于:

    • 自定义域对性能的影响将取决于:

      • 所使用的自定义字段中存储的数据数量。 (它们通常是稀疏的,还是给定的自定义字段列中是否有大量数据?)
      • 对于公式域,所用公式越复杂,对性能产生的负面影响越大。
      • 出现自定义域的级别:
    • 所使用的自定义字段中存储的数据数量。 (它们通常是稀疏的,还是给定的自定义字段列中是否有大量数据?)

    • 对于公式域,所用公式越复杂,对性能产生的负面影响越大。

    • 自定义字段出现在的级别。 通常,数据集中的任务远多于项目,因此,在任务级别应用的自定义域对性能产生的负面影响远大于项目级别自定义域。

  • 通常的惯例是尝试限制所使用(尤其是在任务级别)的自定义域的数量。 一般情况下,尝试使用小于 10-15 个任务级别的企业自定义域。

  • 在观察的大多数客户数据集中,在从 Project Professional 向服务器进行保存时的主要瓶颈是任务和分配自定义域。

本地自定义域优化

与有关优化自定义域使用的建议一致,也可以通过限制 Project 客户端中使用的本地公式域的数量来优化本地公式域的使用。

自定义字段的性能影响尤其取决于尽可能限制公式字段的使用,因为它们需要额外的数据传输,从而增加保存到服务器所需的时间。

页面有效负荷优化

确定给定页面加载时间的最重要因素之一是需要在给定页面请求上访问的数据量。 该数据量在很大程度上由 Web 部件数量、Web 部件的类型以及在给定页面中提供的数据量决定。 下面是关于限制 Project Server 页面的有效负荷的一些常规建议:

  • 将这些 Web 部件加载的数据量仅限于它们需要加载的数据。

  • 有效负荷注意事项对项目详细信息页面 (PDP) 特别重要,在这些页面中,通常给定页面上的 Web 部件较多,出现的自定义更多。

队列优化

Project Server 2013 利用排队系统处理它为请求提供服务的方式,从而使其可以为更多请求提供服务。 可以通过“队列设置”页更改有关如何运行队列的特定设置。 本节简要说明了您可以修改的设置以及如何为了满足需要对其进行优化。 最大线程数 (1-20,默认为 4) :这决定了队列在任何给定时间可以并行处理多少个作业。 请注意,这适用于场中的所有计算机 - 如果你有三个应用程序服务器,并且将该项目队列的此值设置为 4,则一次最多可以处理 12 个独立的项目作业。

最大线程数 (1-20,默认为 4) :这决定了队列在任何给定时间可以并行处理多少个作业。 请注意,这适用于场中的所有计算机 - 如果你有三个应用程序服务器,并且将该项目队列的此值设置为 4,则一次最多可以处理 12 个独立的项目作业。

如果您发现排队的作业从同步工作负荷中提取过量资源,则可尝试以下操作:

如果您有大量并行处理的作业(也就是说,您在检查队列状态时同时看到有多个作业处于“正在处理”状态),则可尝试减小线程计数。

工作负荷进程优化

如何操作和维护 Project Server 部署的某些方面可以帮助改进 Project Server 的感知性能。 本节涵盖一个业务或与 IT 相关的进程修改的列表,该列表有助于在用户很可能与系统交互时改进 Project Server 的感知性能。

  • 时间表和状态提交:
    • 如果可能,请尝试交错安排用户提交状态更新和时间表的时间。 这样可通过在较大时间间隔内分布负荷来减小峰值期间的系统压力。
  • 备份:
    • 如果可能,应尝试在非高峰时段运行备份进程,因为这些进程是资源密集型进程,会降低用户在运行时尝试使用系统时的感知性能。
  • 报告:
    • 与备份过程一样,应尝试运行 OLAP 多维数据集的生成,以便在非高峰期进行报告,因为这些进程是资源密集型进程,会降低用户在运行时尝试使用系统时的感知性能。
  • SharePoint 权限模式:
    • 如果启用 SharePoint 权限模式,则无需“SharePoint 用户同步”即可获得更好的性能。

工作流优化

在使用工作流功能时,请注意以下操作将会损害部署性能:

  • 如果数据库中存储了大量项目,则在“服务器设置”中加载“更改或重新启动工作流”页面可能会需要很长时间。
  • 从“服务器设置”中的“更改或重新启动工作流”页面为大量项目重新启动或更改 EPT。
  • 具有用户数量非常巨大的审批流程。
  • 从工作流阶段同时提交项目,而不需要签入。

通常,建议尽量减少上述操作或在低流量时间段执行这些操作,以优化感知性能。

自定义解决方案(可编程性)优化

在开发与 Project Server 可编程接口交互的自定义解决方案时,请考虑以下性能建议:

  • 如果要部署事件处理程序,请注意这些事件处理程序是同步的。 在自定义解决方案中使用事件处理程序时应谨慎,因为如果这些事件处理程序未有效利用,它们会显著降低 Project Server 的性能。

    注意

    事件处理程序可以在另一台计算机上运行。

  • 您的自定义解决方案应尝试限制它在 Project Server 中对排队操作进行的调用,以防队列超载。
  • 对于业务线 (LOB) 应用程序,当在 Project Server 与其他应用程序之间自动进行数据移动时,如果您注意到与这些应用程序类型之间的同步会显著降低性能,则建议您在非高峰时段运行这些同步。
    • 强烈建议客户对其 LOB 应用程序性能及其面向用户的性能进行测试和监视。
    • 尽量利用固有的 Project Server 域而非自定义域在 Project Server 与 LOB 应用程序之间实现所需同步。
    • 尽量将在 LOB 应用程序与 Project Server 之间移动的数据减少为实现所需功能所需要的最小子集。

Project Server 2013 SDK 和相关文章针对在开发自定义解决方案时保持高性能提供了进一步建议。

另请参阅

Project Server 2013 中的性能和容量计划概述

Project Server 2013 中的容量计划策略

Project Server 2013 的性能和容量硬件建议

Project Server 2013 中的纵向扩展和横向扩展拓扑

优化 Project Server 2013 中的性能

Project Server 2013 中的性能计数器

Project Server 2013 中的性能疑难解答

(Project Server 2013) 的典型数据集