There are times when the eviction server thread will contribute to eviction of clean and dirty pages. That doesn't make sense in busy workloads, where other operations can stall waiting for the eviction server to find work for them to do.
We should avoid using the eviction server for reconciliation if the cache is approaching full. We need to decide whether it's OK for the server to evict (free) clean pages. We also need to decide on the threshold for when the eviction server should contribute to eviction - in lower throughput workloads having the eviction server contribute to eviction is used as a mechanism to avoid churning the eviction queues.
This ticket resolves the performance problem of eviction server itself is doing the reconciliation instead of adding them to the eviction queue. With this fix, the eviction server is more concentrated on queuing the pages that need to be evicted, whereas eviction workers do the job of eviction by reading from the queue.