I have a customer who's Workflow server is very busy. They execute in excess of 15000 new workflow instances per day. At any given time, there are up to 25000 instances running/waiting.
I have noticed that the memory usage of the Workflow Service consistently grows and does not seem to drop by much during quiet times (weekends). Memory usage will start at about 150MB on the Monday and grow to as much as 3.5GB by Friday. If one looks at usage over the weekend, it does not seem to drop by much. A simple reboot of the workflow server will "reset" memory usage down to lower levels again and this cycle repeats weekly.
I have run tests on a Workflow Server where I manually call the .Net Garbage Collector and compare this to when I run the same testing workflows without calling the Garbage Collector. The results seem to be very conclusive for me and memory usage seems a lot more consistent and a lot lower.
My questions is this, will I be creating new problems for myself if I manually call the .Net Garbage Collector in the production environment? I am concerned that I am possibly going to affect the long term functionality of the WF system by doing this. I know WF has it's own internal Garbage Collection process, but clearly, in this environment, this process seems to be lacking a bit.
Thanks
Sheldon