SharePoint2013ワークフローマネージャーバックエンドのCPU使用率が高い
最近、WFEで高いCPU使用率が発生し始めたオンプレミスファームにSharePoint2013があります。サーバーは現在99%で何日もロックされており、サーバーを引き起こしているサービスはすべてワークフローに関連しています。
何が原因なのかわかりません。レールから外れているワークフローを見つけることができないようです。これが原因であると考えられる唯一のことです。ワークフローファームは正常な状態にあるように見えますが、再構成することは、現時点では実際にはオプションではありません。これにより、当社が大きく依存しているワークフローの実行中のすべてのインスタンスが終了します。私たちのファームは、1つのWFE、1つのアプリサーバー、および1つのデータベースサーバーで構成されています。ワークフローはWFEで構成されており、これはベストプラクティスではないことを認識しています。
CPU使用率が高くなるとすぐにスローされ始めた2つのイベントは次のとおりです。
ServiceBus threw MessageNotFound exception while trying to receive a deferred message. Deferred message context details: MessageId = 573074, ActionNamespace = Microsoft.Workflow.Management, ActionName = Terminate, InstanceId = {6b339f70-34ce-464a-8b62-e27dea949015}, ResumptionKey = (null), MessageTraceId = {44259071-166f-4d87-b770-d26787e35b85}
/sharepoint/default/81f1359d-754d-4ef9-b013-c63410d5762b/156d509e-da00-4f68-be8e-2ded413ffb90/53a8f467-11ff-ff92-ee48-0070fd375256_dbbeb1cc-941b-4cfb-a778-59bd88be507d: The instance attempted to process the same message too many times. The message may be causing an unexpected failure. The limit is controlled by the MaxMessageProcessingAttemptsOnUnknownFailure and MaxMessageProcessingAttemptsOnKnownFailure system configuration values (currently set to 10 and 1000). The actual values seen are 0 and 1000.
この問題に関する洞察をいただければ幸いです。
回答
これはワークフローマネージャーの急いでの負荷であり、このような重大な状況を回避するには、サーバーのメモリを増やす必要があります。
以下に示すように、最大許容相関フィルターを増やしてみてください。
停止-SBFarm
PowerShellを実行します。
Set-SBRuntimeSetting -Name MaximumNumberOfCorrelationFiltersPerTopic -Value 1000000
SBMessageContainer01に対してSQLクエリを実行します。
UPDATE TopicsTable SET MaxCorrelationFilters = 1000000
開始-SBFarm
これを行った後、高消費に対処するために現在のサーバーのメモリを増やすことを忘れないでください
さらに、通常、ワークフローをWFEサーバーではなくアプリサーバーにインストールすることをお勧めします。
参考までに同様の問題:
https://social.msdn.microsoft.com/Forums/en-US/374dcdbf-1022-4d72-9ca5-33ec05d1c712/designer-workflow-statusterminated-the-workflow-exceeded-the-maximum-number-of-attempts-to?forum=sharepointcustomization
SharePoint2013ワークフローマネージャー1.0によりサーバーのCPUが高くなる