Sql-server – Run out of virtual memory after added to triple physical RAM and change SQL Server memory option

memoryperformanceperformance-tuningsql serversql-server-2008-r2windows-server

Recently, we added some physical RAM to our server which running SQL Server 2008 R2 instance, the total memory was changed from 64GB to 192GB.

And we tuned the memory option of SQL Server by changing the 'min server memory' from 16GB to 64GB, and the 'max server memory' from 48GB to 128GB.

And the pagefile of Windows Server 2008 R2 is left unchanged with 64GB.

But after two days later, Windows Server reported run out of virtual memory, some 'Windows successfully diagnosed a low virtual memory condition' events can be found in EventLogs. We cannot connected via remote desktop client, and cannot launch mmc or notepad application even though operating from console, only Explorer and task manager can be opened. at that time, about 50% physical memory was used.

And now, we change 'min server memory' back to 16GB, the server runs without any resource exhaustion detector events, but the physical RAM usage was always lower than 64GB.

SQL Server Version:

Microsoft SQL Server 2008 R2 (SP1) – 10.50.2769.0 (X64) Jun 24 2011
13:09:43 Copyright (c) Microsoft Corporation Enterprise Edition
(64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

Please help us to solve it.

Thanks.

Best Answer

I believe your virtual memory should be, at minimum, the same size as your physical memory.

I once had a new server deployment that had tested well, but performed terribly under a full load. MS got involved, and finally figured out we had a 16GB page file, with 128GB physical memory. Their recommendation was that the page file be at least 1.5 times as large as physical memory.

Bumping our page file size up to 192 GB got performance back to normal. Not sure if 1.5 X physical memory is truly required (in fact, I doubt it), but page file significantly less than physical memory does seem to be a Bad Thing.

NOTE: Our system at the time was Windows Server 2008R2, SQL Server 2008.