There can be any of following reasons for the cause of above note:
A workflow being executed on a large number of items.
Multiple workflows instances are being initiated on the same site within a small amount of time.
Performance stress of SharePoint farm environment.
When an item is added to the library it takes some times to initiate the workflow.
When Workflow mail generating is not very fast due to heavy load on server.
- When Workflows take more time to Initiate the workflow on current item.
The above points doesn't mean always that we have to add more RAM to the current farm environment but might be a reason sometimes when a farm environment running with limited RAM on them. But initially before considering an additional hardware try to change following configurations for workflow:
Increase Throttle Size
Increase Batch Size
Time Out
Workflow Timer Interval
AutoCleanUpDays
Increase Throttle Size
The Workflow throttle setting controls how many Workflows can be processing at any one time on the entire server farm. By increasing the throttle it will allow the number of Workflows execution or can be initiated at a time.
Use below PowerShell command to get the current Throttle Size:
Get-SPFarmConfig | Select WorkflowPostponeThreshold
Use below PowerShell command to set new Throttle Size:
Set-SPFarmConfig -WorkflowPostponeThreshold 100
Increase Batch Size
This is the size that determines number of events processed for a single Workflow instance. Default value is 100, but it can be range from 1 to any number.
Use below PowerShell command to get the current Batch Size:
Get-SPFarmConfig | Select WorkflowBatchSize
Use below PowerShell command to set new Batch Size:
Set-SPFarmConfig -WorkflowBatchSize 200
Time Out
This decides the time out of the Workflow event. The default value is 5 and can be any integer. The time is in minute.
Use below STSADM command to get the current Time Out value:
stsadm -o getproperty -pn workflow-eventdelivery-timeout
Use below STSADM command to get the current Time Out value:
stsadm -o setproperty -pn workflow-eventdelivery-timeout -pv “15″
Workflow Timer Interval
This setting is applicable at Web Application level and not the farm level. The workflow timer interval specifies how often the workflow SPTimer job fires to process pending workflow tasks. This interval also represents the granularity of delay timers within your workflow. If a timer is set to delay for one minute, but the interval timer fires only every five minutes, the workflow delays for five minutes, not one minute.
Use below STSADM command to get the current Workflow Timer Interval value:
stsadm -o getproperty -pn job-workflow -url <Web Application Url>
Use below STSADM command to get the current Workflow Timer Interval value:
stsadm -o setproperty -pn job-workflow -pv “Every 10 minutes between 0 and 30″ -url <Web Application Url>
Hope this information helps!!!
Source