Link to home
Start Free TrialLog in
Avatar of crp0499
crp0499Flag for United States of America

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.
Avatar of ste5an
ste5an
Flag of Germany image

SQL Server uses memory to buffer data to avoid slow disk IO. Thus all memory it acquired once will not be freed again (well, as a rule of thumb, cause it will, but only under some very limited memory pressure scenarios).

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.

Every day since install, the RAM works it's way up to 97% and the server becomes non-responsive.
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).
Avatar of crp0499

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.
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.

User generated image
Avatar of crp0499

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?
Avatar of crp0499

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...
Did you read through Philips articles...??
Avatar of crp0499

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.
Avatar of crp0499

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).
Avatar of crp0499

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)
Avatar of crp0499

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.
It's not using memory then!

if it was a memory leak the computer would crash....eventually....and apps would all start crashing
Avatar of crp0499

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
Avatar of crp0499
crp0499
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial