crp0499
asked on
High RAM usage on VM, no known cause
I have a hyper-V server running 2012 R2. 20 cores and 256 gigs RAM. On the host is a VM (server 2016) with 8 cores and 64 gigs RAM statically assigned. That server runs an SQL 2016 application for route automation. The VM is five days old, just built, prepped and put into production.
There seems to be a memory problem.
Every day since install, the RAM works it's way up to 97% and the server becomes non-responsive.
Task Manager, Resource Monitor and RAM Map DO NOT show any process using this RAM.
I repeat, the process using the RAM does not show in task manager, resource monitor or RAM Map.
I'm having the dickens finding out what is eating up the RAM and need someone to make some suggestions that might help me zero in on this.
I've thought about the 2012 R2 host and the 2016 VM and maybe its a hyper-visor issue, so, anyone know any issues with 2016 running in a VM on 2012 R2?
Anyone have any software they know of that might show me where the RAM is allocated that is not showing in the programs mentioned above that I'm using? Something other than RAM Map maybe?
Anyway, that's the ghost I'm chasing.
Thank you for any feedback you might have.
There seems to be a memory problem.
Every day since install, the RAM works it's way up to 97% and the server becomes non-responsive.
Task Manager, Resource Monitor and RAM Map DO NOT show any process using this RAM.
I repeat, the process using the RAM does not show in task manager, resource monitor or RAM Map.
I'm having the dickens finding out what is eating up the RAM and need someone to make some suggestions that might help me zero in on this.
I've thought about the 2012 R2 host and the 2016 VM and maybe its a hyper-visor issue, so, anyone know any issues with 2016 running in a VM on 2012 R2?
Anyone have any software they know of that might show me where the RAM is allocated that is not showing in the programs mentioned above that I'm using? Something other than RAM Map maybe?
Anyway, that's the ghost I'm chasing.
Thank you for any feedback you might have.
ASKER
The server, it's OS and data drives are on 12GB/S SSD drives. The SQL DB itself is <300 gigs. SQL mem capped at 85% of available, so 85% of 64gigs, or 54gigs.
I do not think the RAM is the issue either. I think the committed memory, once released, is not being flushed since there are no processes using the amounts shown. For now, I'm going to schedule a nightly reboot, but keep poking it.
I do not think the RAM is the issue either. I think the committed memory, once released, is not being flushed since there are no processes using the amounts shown. For now, I'm going to schedule a nightly reboot, but keep poking it.
You should NOT install Hyper-V and SQL on same computer.
SQL is using whole available memory on server if you will not set it differently.
If you want to free some memory just go to SQL Management Studio, login to instance, right click on it, go to Properties / Memory and define MAXIMUM SERVER MEMORY in MB
Restart server or SQL service.
SQL is using whole available memory on server if you will not set it differently.
If you want to free some memory just go to SQL Management Studio, login to instance, right click on it, go to Properties / Memory and define MAXIMUM SERVER MEMORY in MB
Restart server or SQL service.
ASKER
Clarifying Tom. The host is 2012 R2 - Datacenter. The VM in question, running on the host, is server 2016, running an SQL route automation app. As noted above, we have already capped SQL RAM usage to 85% of available, so 54 gigs.
I always thought Microsoft recommended using a higher Host OS or the same as the VM Guests!
Have you read through Philip Elders. EE articles and see if anything jumps out from those articles which is setup incorrectly?
Have you read through Philip Elders. EE articles and see if anything jumps out from those articles which is setup incorrectly?
ASKER
Hello Andrew. I "thought" the same, but:
You can run Windows Server 2016 as Guest on Windows Server 2012 R2:
https://technet.microsoft.com/en-us/library/dn792027(v=ws.11).aspx
Still, I'm wondering. Also, I spoke to some fellow admins at one of the colos I cover and lots of peeps are doing it just fine so...
You can run Windows Server 2016 as Guest on Windows Server 2012 R2:
https://technet.microsoft.com/en-us/library/dn792027(v=ws.11).aspx
Still, I'm wondering. Also, I spoke to some fellow admins at one of the colos I cover and lots of peeps are doing it just fine so...
Did you read through Philips articles...??
ASKER
No. I'm reading on TechNet just now to see if there's anything. What's REALLY odd is that the RAM usage shows to be at 97%, but the usage is not shown in task mgr or RAM Map. It's like the RAM is not flushing clean when something is removed.
use Resource monitor task manager / performance / open resource monitor. The system will use all available memory for caching.. My Machine has 32GB of ram and running processes have 37GB committed. so only about 5 GB has to swap.
If the system doesn't use all of the available memory then you wasted money buying the ram.
If the system doesn't use all of the available memory then you wasted money buying the ram.
ASKER
Still no discovered culprit here. We "think" the software running on this server has a memory leak. For now, we scheduled a nightly reboot, which fixes things until we can upgrade the version of software we are running. It's route automation and it's several versions old.
I thought it is a SQL Server???
You should not run other software on a SQL Server box. Cause rebooting in your case can result in a noticable performance loss (cold buffers, plan compilation).
You should not run other software on a SQL Server box. Cause rebooting in your case can result in a noticable performance loss (cold buffers, plan compilation).
ASKER
The route automation software uses SQL and that software and SQL live on the same VM. That's how the Techs from the software company installed it. Our SQL DB is small <300 gigs, so that doesn't bother me. It's their software that we "think" has the memory leak. So, the nightly reboot is fine for now.
memory leak would cause it.... watch the app, it will grow...(task manager)
ASKER
That's the thing Andrew. It doesn't grow in task manager. The RAM is full, but nothing shows that is using that much RAM. Am I making sense?
All 64 gigs of RAM is showing used (well, 97%) but there is nothing in task manager using that much RAM. Even RAM Map doesn't show it. What the developer is thinking is that committed RAM is not released when the program no longer needs it so it's not registering as being used by the program, but it's still showing in the total RAM.
All 64 gigs of RAM is showing used (well, 97%) but there is nothing in task manager using that much RAM. Even RAM Map doesn't show it. What the developer is thinking is that committed RAM is not released when the program no longer needs it so it's not registering as being used by the program, but it's still showing in the total RAM.
It's not using memory then!
if it was a memory leak the computer would crash....eventually....and apps would all start crashing
if it was a memory leak the computer would crash....eventually....and
ASKER
They do. The Memory column reads 97% but ALL of the processes listed only equal about 20%. That's what I'm chasing. I can't find out WHAT is causing the memory to be full when all of the processes listed do not account for it.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Thus you need to check the SQL Server min. and max. memory settings. The max. memory setting in SQL Server should leave 2-4GB of RAM free to the amount installed, when there is no other service running on that machine. The ideal value must be found by trail and error. But on my machines, they work very well.
Well, RAM usage is imho not the problem.
How big is your biggest database? Does it fit into memory? How high is your LPE?
When you say route automation, those are pretty complex algorithms, requiring a lot of data (re)read. So can you monitor what happens on that machine (IO, CPU, network, RAM).