工作跟踪、进程和项目限制

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文定义了对工作跟踪操作和工作跟踪自定义设置的操作和对象限制。 除了对特定对象的指定硬性限制外,还适用一些实际限制。 自定义工作项类型(WIT)时,请考虑对对象施加的限制。

工作项和查询

定义工作项或运行查询时,请记住以下操作限制:

Object 限制
添加到工作项的附件 100
附件大小 60MB
长文本字段 1-M 个字符
查询执行时间 30 秒
查询结果 20,000 个项目
查询长度 32,000 个字符
文件夹下的共享查询 999 个查询
分配给工作项的工作项链接 1,000
分配给工作项的工作项标记 100
工作项修订 (REST API) 10,000
每个项目最喜欢的查询数 200 个查询

适用于 Azure DevOps Services 的 REST API 强制实施 10,000 个更新的工作项修订限制。 此限制限制通过 REST API 进行的更新,但来自 Web 门户的更新不会受到影响。

Object 限制
长文本字段 1-M 个字符
分配给工作项的工作项标记 100
分配给工作项的工作项链接 1,000
添加到工作项的附件 100
附件大小 4 MB 到 2 GB
查询执行时间 6 分钟
查询结果 20,000 个项目
查询长度 32,000 个字符
文件夹下的共享查询 999 个查询
每个项目最喜欢的查询数 200 个查询

默认的最大附件大小为 4 MB。 可将 最大大小更改为 2 GB

若要提高查询性能,请参阅 “定义查询/最佳做法”。

积压工作、板、仪表板和团队

使用团队、工作项标记、积压工作和板时,将应用以下操作显示和对象限制。

用户界面 限制
积压工作 10,000 个工作项
Boards 1,000 张卡片(不包括“建议”和“已完成”工作流状态类别中的这些卡片)
任务板 1,000 个任务
区域路径 每个项目 10,000 个
区域路径深度 14
每个团队的区域路径 300
迭代路径 每个项目 10,000 个
迭代路径深度 14
每个团队的迭代路径 300
项目仪表板 每个项目 500 个。 可在项目级别访问,并且有权访问该项目的任何人都可以使用。
团队仪表板 每个团队 500 个。 特定于团队,用于跟踪团队特定的指标和数据。
Teams 每个项目 5,000 个
工作项标记 每个组织或集合 150,000 个标记定义
每个项目的交付计划 1,000
每个工作项类型的模板 100

每个积压工作最多可以显示 10,000 个工作项。 此限制适用于积压工作可以显示的内容,不适用于可以定义的工作项数,因为没有特定的限制。 如果积压工作超出此限制,请考虑添加团队并将一些工作项移动到新团队积压工作。

提示

如果即将达到仪表板限制,请参阅以下步骤来管理和清理仪表板:

  • 查看使用情况: 识别不再使用的仪表板或重复项。 可以通过检查上次访问的日期或咨询团队成员来执行此操作。
  • 合并仪表板: 合并类似的仪表板以减少总数。 可以通过向单个仪表板添加多个小组件来完成此操作。
  • 存档旧仪表板: 如果不再需要某些仪表板,但想要保留数据,请考虑导出数据和存档仪表板。
  • 使用对象限制跟踪器功能: 提供对资源使用情况(包括仪表板)的实时可见性。 此功能可帮助你 主动管理限制并避免潜在问题

其他说明:

  • 已完成或关闭的工作项在积压工作和版块上不显示,一旦更改 日期 超过一年。 你仍然可以使用查询列出这些项。 若要使其显示在积压工作或板上,请进行轻微更改以重置显示时钟。
  • 避免嵌套同一类型的积压工作项。 有关详细信息,请参阅 修复重新排序和嵌套问题
  • 避免将相同的区域路径分配给多个团队。 有关详细信息,请参阅 多团队板视图的限制。
  • 默认情况下,工作项限制可能最初设置为较低的值。

使用团队、工作项标记、积压工作和板时,将应用以下操作限制。 默认和最大限制。

用户界面 限制
积压工作 999 个工作项
Boards 400 张卡片
每个项目的仪表板数 500
任务板 800 个工作项
Teams 每个项目 5,000 个
工作项标记 每个项目 150,000 个标记定义
每个工作项类型的模板 100

每个积压工作最多可以显示 999 个工作项。 如果积压工作超出此限制,请考虑创建团队并将部分工作项移动到新团队积压工作。

其他说明:

对于本地 XML 进程模型,可以通过编辑 ProcessConfiguration.xml 文件来修改积压工作和任务板限制。 有关详细信息,请参阅 进程配置 XML 元素参考

项目

Azure DevOps Services 将每个组织限制为每个组织 1,000 个项目,比之前的 300 个项目限制增加。

注意

超过 300 个项目,某些体验(如从 Visual Studio 连接到项目)可能会降级。 对于本地 Azure DevOps Server,没有硬性限制,但性能问题可能会出现,因为项目数接近 300。 迁移到 Azure DevOps Services 时,观察最大限制为 1,000 个项目。 如果集合超出此限制,请拆分集合或删除旧项目。

有关详细信息,请参阅将数据从 Azure DevOps Server 迁移到 Azure DevOps Services

流程自定义

对可以为进程定义的对象数施加许多限制。 有关详细信息,请参阅自定义工作跟踪体验

下表列出了可为继承和托管 XML 进程模型定义的最大对象数。 虽然这些限制是硬性限制,但实际限制也可能适用。

Object 继承 托管 XML
组织中可以拥有的进程数 128 64
为进程定义的工作项类型 64 64
为组织定义的字段 8192 8192
为进程定义的字段 1024 1024
为工作项类型定义的字段 1024 1024
为组织或集合定义的选取列表 2048 -
为列表定义的选取列表项 2048 2048
Picklist 项字符长度 256 -
为工作项类型定义的工作流状态 32 16
为工作项类型定义的规则 1024 1024
为工作项类型定义的操作 1024 1024
为规则定义的操作 10 10
为流程定义的项目组合积压工作级别 5 5
为进程定义的类别 - 32
为进程定义的全局列表 - 256
列出全局列表中定义的项 - 1024
工作项附件大小 60MB 60MB

有关 Hosted XML 进程模型的其他限制和符合性要求,请参阅 使用 Hosted XML 时自定义进程。

注意

对于托管 XML 进程模型,可以在所有 WIT 中指定的所有全局列表中定义大约 10,000 个项。

下表列出了可为继承模型和本地 XML 进程模型定义的最大对象数。 虽然这些限制是硬性限制,但实际限制也可能适用。

Object 继承 本地 XML
组织中可以拥有的进程数 64 64
为进程定义的工作项类型 64 64
为集合定义的字段 8192 1024
为进程定义的字段 1024 1024
为工作项类型定义的字段 1024 1024
为集合定义的选取列表 1024 空值
为列表定义的选取列表项 2048 2048
Picklist 项字符长度 256 空值
为工作项类型定义的工作流状态 32 16
为工作项类型定义的规则 1024 1024
为流程定义的项目组合积压工作级别 5 5
为进程定义的类别 空值 32
为进程定义的全局列表 空值 256
列出全局列表中定义的项 空值 1024

注意

对于本地 XML 进程模型,可以为所有 WIT 中指定的所有全局列表定义大约 10K 项。

实际限制

为了最大程度地减少性能问题,建议遵循以下指南:

  • 限制定义的自定义字段数。 所有自定义字段都占进程、集合或组织允许的总数。 可以为不同 WIT 中的同一字段指定不同的行为,例如规则和选取列表。
  • 限制为 WIT 定义的规则数。 虽然可以为 WIT 创建多个规则,但当用户添加或修改工作项时,其他规则可能会对性能产生负面影响。 当用户保存工作项时,系统将验证与该工作项类型的字段关联的所有规则。 在某些情况下,规则验证表达式可能太复杂,SQL 无法高效计算。
  • 限制定义的自定义 WIT 数。
  • 限制定义的自定义字段数。 所有自定义字段都占进程、集合或组织允许的总数。 可以为不同 WIT 中的同一字段指定不同的行为,例如规则和选取列表。
  • 限制为 WIT 定义的规则数。 虽然可以为 WIT 创建多个规则,但当用户添加或修改工作项时,其他规则可能会对性能产生负面影响。 当用户保存工作项时,系统将验证与该工作项类型的字段关联的所有规则。 在某些情况下,规则验证表达式可能太复杂,SQL 无法高效计算。
  • 限制定义的自定义 WIT 数。
  • 限制定义的可报告字段数。 可报告字段可能会影响数据仓库的性能。

注意

工作项规则验证超过 SQL 限制:每个项目定义单个 SQL 表达式,以便在创建或更新工作项时验证工作项。 此表达式随项目中所有工作项类型指定的规则数一起增长。 字段的每个行为限定符都会增加子表达式的数量。 嵌套规则、仅适用于转换的规则,或针对另一字段的值设置的规则将更多条件添加到 IF 语句。 表达式达到特定大小或复杂性后,SQL 将无法再对其进行计算并生成错误。 若要解决此错误,请删除某些 WIT 或消除某些规则。

速率限制

为了降低成本并提高可伸缩性和性能,Azure DevOps Services(与许多软件即服务解决方案一样)使用多租户。 为了确保良好的性能并最大程度地降低中断风险,Azure DevOps Services 会限制个人可以消耗的资源,以及他们可以向某些命令发出的请求数。 超过这些限制后,后续请求可能会延迟或阻止。

大多数速率限制是通过 REST API 调用或非优化查询达到的。 有关详细信息,请参阅速率限制最佳做法(避免达到速率限制)。

迁移和导入限制

从本地迁移到 Azure DevOps Services 时,可能会遇到多种大小限制,包括:

  • 超出建议大小的数据库大小
  • 超出建议大小的最大表大小
  • 超出支持大小的数据库元数据大小

有关详细信息,请参阅将数据 从 Azure DevOps Server 迁移到 Azure DevOps Services ,并 排查导入和迁移错误