I'm using Orleans 9.1.2 in production environment, monitoring metrics counter dotnet.thread_pool.work_item.count.
After time elapsed, the counter grows faster and faster per minute.
This phenomenon disapeared after setting StatelessWorkerOptions.RemoveIdleWorkers to false, or remove all stateless workers.
Maybe it's related to the following code which been added after Orleans 9?
if (strategy.RemoveIdleWorkers && options.RemoveIdleWorkers)
{
_minIdleCyclesBeforeRemoval = options.MinIdleCyclesBeforeRemoval > 0 ? options.MinIdleCyclesBeforeRemoval : 1;
_inspectionTimer = new Timer(
static state => ((StatelessWorkerGrainContext)state!).EnqueueWorkItem(WorkItemType.CollectIdleWorkers, CollectIdleWorkersSentinel),
this,
options.IdleWorkersInspectionPeriod,
options.IdleWorkersInspectionPeriod);
}
I'm using Orleans 9.1.2 in production environment, monitoring metrics counter dotnet.thread_pool.work_item.count.
After time elapsed, the counter grows faster and faster per minute.
This phenomenon disapeared after setting StatelessWorkerOptions.RemoveIdleWorkers to false, or remove all stateless workers.
Maybe it's related to the following code which been added after Orleans 9?