使用流程检测数据进行高速缓存调优
在 Process Admin Console 的“服务器管理”区域中,您可以选择监控 > 检测以在“检测”监控器中显示流程检测数据。 如果显示的数据指示高速缓存设置的高速缓存未命中数意外高,那么可以编辑 100Custom.xml 文件并覆盖高速缓存设置的有问题的缺省值;但是,并非所有高速缓存都是可配置的。 “检测”监控器的 PO 工厂和存储库部分中反映了持久对象 (PO) 工厂高速缓存设置和存储库高速缓存设置。 在某些情况下,您可能需要用新值来覆盖高速缓存设置的缺省值。
有关使用 "检测" 监视器来显示或记录流程检测数据的更多信息,请参阅主题 捕获流程检测数据。 有关 "检测" 监视器中未反映的高速缓存和与高速缓存相关的设置的信息,请参阅主题 高速缓存和与高速缓存相关的设置。
不可配置的高速缓存
- ContextAndTypeTreeElements
- ContextTreeElements
- 依赖关系
- ManagedAssets
- ProjectDependency
- SOAPConnector.XMLTypeDescriptors
- UUIDListKey
- Version Details
- VersionSummaryId
- WebAPIUserID
- XMLTypeDescriptorContextContextAndTypeTreeElements
PO 工厂高速缓存设置和存储库高速缓存设置
对于 PO 工厂高速缓存设置和存储库高速缓存设置,90% 的高速缓存命中率被视为相当令人满意。 然而,高于 50% 的高速缓存未命中率则需要进行调查。 要提高高速缓存命中数与高速缓存未命中数的比率,可以为 100Custom.xml 文件中的高速缓存设置指定新值。 这些新值将覆盖高速缓存设置的现有缺省值,这些缺省值通常位于其他 XML 配置文件 (例如 00Static.xml 文件)中。 通常,修改高速缓存设置是一项迭代任务。
有关 100Custom.xml 文件及其关联 XML 配置文件的使用和位置的信息,请参阅主题 100Custom.xml 文件和配置 及其子主题。
以下部分中描述了“检测”监控器中反映的 PO 工厂高速缓存设置和存储库高速缓存设置:
PO 工厂高速缓存设置
持久对象 (PO) 工厂是用于创建持久对象的类。 每个持久对象类型均有一个 PO 工厂,每个 PO 工厂有一个高速缓存,用于对此类型持久对象进行缓存。
Business Automation Workflow中有两种类型的 PO 工厂设置: 已版本化和未版本化。 对于已版本化持久对象,每次更改对象时,新对象都将单独进行保存而不会覆盖旧版本。 这样您就可以查看随时间发生的更改。 对于未版本化持久对象,仅保留最新修改,并将丢弃较旧的版本。
下表列出位于“检测”监控器的 PO 工厂 > 高速缓存命中数和 PO 工厂 > 高速缓存未命中数部分中的已版本化和未版本化持久对象。 该表还列出您可能需要覆盖以提高高速缓存命中数与高速缓存未命中数之比的对应的 PO 工厂高速缓存设置。 除非另行指出,否则 XML 配置文件中会启用所有高速缓存设置。
| “检测”监控器中 PO 的类型 | 设置与描述 | 要在 100Custom.xml 文件中添加或更新的设置 |
|---|---|---|
其中之一:
人工制品 BPDArtifactReference BPD参数 BlueprintSubscription BPD活动 BPD参数 教练 CoachResource CoachView 连接器 贡献 ESArtifact EnvironmentVariable EnvironmentVariableSet Epv EpvVar EventSubscription ExtendedProperty ExtendedPropertySet HistoricalScenario InfoPathForm 布局 ManagedAsset 公制单位 参与者 ProjectDefaults ProjectDependency RefPO 报告 ReportVariable ResourceBundleGroup SLA 记分牌 SimulationScenario TimingInterval TrackingGroup UITheme UserAttributeDefinition WebService |
|
|
其中之一:
BPMSnapshotStatus CaseProperty ECM对象 EnvironmentType GovernanceAssignment GovernanceEvent MonitorProjectInterchange PCIndexAction PCIndexer PC注册 优先级 ProjectSubscribed ProjectSubscription RepositoryLog SharedToolKitUsage 快照 TimePeriod |
|
|
其中之一:
项目 ContentObject ContentObjectInstance |
|
|
存储库高速缓存设置
下表列出“检测”监视器的存储库部分中反映的存储库高速缓存设置。 在某些情况下,您可能需要覆盖高速缓存设置值,以提高高速缓存命中数与高速缓存未命中数之比。 除非另行指出,否则 XML 配置文件中会启用所有高速缓存设置。
| 名称 | 设置与描述 | 要在 100Custom.xml 文件中添加或更新的设置 |
|---|---|---|
分支上下文高速缓存 |
branch-context-max-cache-size 此设置指定在“分支管理器”高速缓存中保留的分支上下文的最大数量,此高速缓存中包含有关内存中 Snapshot 内容的元数据,并且用于提高特定操作的性能。 缺省值为 64。 该设置位于适用的 .00Static.xml 文件中,但是必须将该设置添加到 100Custom.xml 文件来更新该设置的缺省值。 如果流程应用程序特别大,并且 Business Automation Workflow 服务器中存在内存问题,那么可能需要减小设置的值,尤其是在为每个已部署的 Snapshot 创建新分支的运行时服务器上。 同样,对于内存受约束环境中的 Process Server,减小“分支管理器”高速缓存大小可减小大型流程应用程序的堆内存。 但是,如果编写的流程应用程序对于 Toolkit 具有大量依赖关系,那么您可能需要增加此设置的值。 具有一个业务对象的 Toolkit 用于分支高速缓存条目和 Snapshot 高速缓存的内存小于 1 MB。 Process Portal 应用程序使用大约 11 MB 内存。 系统数据 Toolkit 使用几百 MB 内存。 由于项目中工件之间的关系十分复杂以及每个项目中工件的数量,内存使用情况也千差万别。 因此,很难精确预测在调整分支高速缓存时将使用的其他内存量。 要计算在部署了多个流程应用程序的 Workflow Server 环境 上以牺牲内存为代价的速度的最佳值,一种方法是在数据库中获取表 LSW_BRANCH 的行计数,将此数乘以 1.1,然后将结果用作 branch-context-max-cache-size 设置的值。 此方法会假定所有流程应用程序使用均相对频繁,并且您需要其在内存中的上下文。 如果已部署单个流程应用程序,那么最佳值为此流程应用程序的依赖关系数加一。
注: 每当从 Workflow Server 环境部署或删除新的流程应用程序或 Snapshot 时,都需要考虑调整高速缓存大小。
|
|
Snapshot 上下文高速缓存 |
snapshot-cache-size-per-branch 此设置指定在 Workflow Center中为单个分支高速缓存的快照数。 缺省值为 64。 在 Workflow Server 环境中,可以保留缺省值,因为在 Workflow Server上会忽略此设置。 每个已部署的 Snapshot 都会部署到 Workflow Server上的唯一分支,这意味着 Snapshot 高速缓存仅包含一个条目。 Snapshot 高速缓存独立于分支高速缓存进行调整。 每个分支高速缓存条目都包含一个 Snapshot 高速缓存。 在 Workflow Center中,分支上的所有 Snapshot 都使用相同的分支高速缓存条目; 因此, Snapshot 高速缓存中的条目数可能不止一个。 所需的条目数量取决于已访问的 Snapshot 的数量。 当激活快照时,或者当 Process Designer 用户在特定快照版本中查看工件和/或回放工件时,将访问快照。 因此,仅对 Workflow Center 服务器需要调整快照高速缓存大小。 是否需要调整 Snapshot 高速缓存取决于预计的使用模式。 Snapshot 高速缓存条目可能相当大,因为它们取决于应用程序内容。 Snapshot 高速缓存条目达到数百 MB 也并不罕见。 大小取决于给定 Snapshot 中工件的复杂性和数量。 对于非常大的项目和流程应用程序,减小 snapshot-cache-size-per-branch 设置的值可以降低堆内存需求(但由于更频繁的使用数据库而导致相应的性能下降)。 该设置位于适用的 00Static.xml 文件中,但是必须将该设置添加到 100Custom.xml 文件来更新该设置的缺省值。 |
|