Hi Techies,
First of all, thank you all for replying my question.
Environment - Production:
MS SQL Server 2008 R2 installed in Windows 2008 server 64 bit (Dedicated) (Installed memory 28GB). This DB is replicated to three more physical read only servers & this primary DB is connected to 8 web servers which are in load balancing.
Current Scenario:
After SQL server in action for some time (Variable) there is a shoot up of memory in the windows server. please find the screen shot below,
I am very sure this is not because of memory leaks & it is cache stored.
Resolution:
I implemented the below code & scheduled a job which runs in a interval and flushes the unused memory. This in-turn brings down the memory to considerable GB. Please find the code below,
---------------------------------------------------------
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO
WaitFor Delay '00:00:45'
GO
sp_configure 'max server memory', 24576;
GO
RECONFIGURE;
GO
---------------------------------------------------------
This was been running successfully for past three years without any issues.
Question:
1) Is this right approach to do ?
2) Pros & Cons
3) Leaving cache at high value is normal ?
4) Any other alternate solution ?
With Best Regards,
Karthik