Solved

I need to provide proof to senior mgrs of an overkill memory request

Posted on 2009-04-05
14
280 Views
Last Modified: 2012-05-06
Okay so here is the problem. I have a senior developer in my office who is requesting the maximum amount of RAM (32GB) for a SQL server in our shop. I've asked for documentation of memory related errors or performance charts indicating a memory bottle neck but have not recieved anything. This is the first place I've been where they are considering a purchase with no documentation to say that it is necessary.

Server Specs: PowerEdge 2950 III, Single Xeon Quad Core 2.0GHz, 16GB RAM, 15k RPM hard disks (databases, Logs, & paging all on seperate redundant Raid 10 disk arrays), server 2003 Standard x64, sql server 2005 standard.

What does this server do? Well the most information I can give you is that it is the backend to a client portal that hosts less 1000 users. The client portal is for the clients to upload a file no larger than 1GB or 1 million records, but the average file is less than half of this amount.

My limitation on this is that I know very little about SQL so I do not attempt to challenge him on it. However I do know the hardware pretty well and he doesn't yet he he is constantly challenging me on server specifications. The problem is that our supervisors are clueless when it comes to this. So any thoughts?

I do have performance monitor files, with several SQL counters available for review if requested. Thanks in advance!

0
Comment
Question by:jwshambles
  • 5
  • 4
  • 3
14 Comments
 
LVL 11

Expert Comment

by:Quetzal
ID: 24073102
So the spec for the server as shown is your current spec (with 16 GB RAM)?  And the developer wants to max it out to 32 GB?  If that's the deal, then then marginal cost difference is something like $500, a relatively small percentage of the overall price of this spec.  IMHO, unless there is a budget concern, don't sweat it.  If there is a budget concern, then the whole spec should be revisited.
0
 

Author Comment

by:jwshambles
ID: 24073124
The 16GB is the current amount, It was at 4GB, but I have increased the amount to meet in the middle. He is still not satisfied and has 32GB stuck in his head. Budget is a concern because he is already on the next server, trying to request more memory for it with no documentation to back his request. In his opinion everyone of our SQL servers should be maxed out on memory, just because. If I could somehow create the illusion that the system had 32GB of RAM then I wouldn't have a problem.

0
 
LVL 11

Expert Comment

by:Quetzal
ID: 24073151
You have perfmon files for the same application on an existing server?
0
 
LVL 142

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 250 total points
ID: 24073187
yes, the more memory, the better.
having more memory than the database size however would not make any sense.

for the rest, the only thing to ensure is that the max memory setting of the sql server is so that it does NOT take ALL the ram (which is the default setting). so, on a 32GB ram, set the setting to 31000 (MB), so 1 Gigabyte ram is available for all the other stuff, including the OS itself. otherwise, your server will eventually start to swap data from memory to the pagefile, and make your sql server crawl slow like a dog...

0
 

Author Comment

by:jwshambles
ID: 24073235
Yes, but I couldn't attach them through here because they are not in an approved file format. They are .blg file types. I'd like to add that we are a small company and I'd like to have systems running optimum but I control the budget for IT/IS expenses and have to justify the need to spend the money. I've monitored the event viewer and performance monitor for any errors associated to memory but have found nothing. I have monitored SQL counters but that is where my knowledge is weak. I've got the information but do not know how to use it.
0
 

Author Comment

by:jwshambles
ID: 24073289
I realize more memory is better but it is not always a solution. When I set up specifications for a server I determine what the function and load is to be on the server and if later there is a hardware bottleneck found I make a determination at that time for the amount needed to reduce the bottleneck.

We have no performance gaurantees with the clients. As I stated the amount being uploaded and processed is usually under 500MB. The server serves one purpose and that is to take this data uploaded from the client portal; process it and load it into the appropriate tables. If I give it 32GB it will use 32 GB, if I give it 64GB it will use 64GB.

The memory allocation is not set to my knowledge. I'm looking for how I can determine whether or not 16GB is sufficient. I can tell when it is not usually by system errors but how can I do this by monitoring the following counters:

%Disk Time
%Processor Time
Available Bytes
Average Latch Wait Time
Average Disk Queue Length
Buffer Cache Hit Ratio
Latch Waits/sec
Page/sec
Processor Queue Length
SQL Re-Comiplations/sec
Total Server Memory
User Connections
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 11

Assisted Solution

by:Quetzal
Quetzal earned 250 total points
ID: 24073322
From http://www.windowsnetworking.com/articles_tutorials/Key-Performance-Monitor-Counters.html  

The Memory\Pages/sec counter indicates the number of paging operations to disk during the measuring interval, and this is the primary counter to watch for indication of possible insufficient RAM to meet your server's needs. A good idea here is to configure a perfmon alert that triggers when the number of pages per second exceeds 50 per paging disk on your system. Another key counter to watch here is Memory\Available Bytes, and if this counter is greater than 10% of the actual RAM in your machine then you probably have more than enough RAM and don't need to worry.

You should do two things with the Memory\Available Bytes counter: create a performance log for this counter and monitor it regularly to see if any downward trend develops, and set an alert to trigger if it drops below 2% of the installed RAM. If a downward trend does develop, you can monitor Process(instance)\Working Set for each process instance to determine which process is consuming larger and larger amounts of RAM. Process(instance)\Working Set measures the size of the working set for each process, which indicates the number of allocated pages the process can address without generating a page fault. A related counter is Memory\Cache Bytes, which measures the working set for the system i.e. the number of allocated pages kernel threads can address without generating a page fault.

Finally, another corroborating indicator of insufficient RAM is Memory\Transition Faults/sec, which measures how often recently trimmed page on the standby list are re-referenced. If this counter slowly starts to rise over time then it could also indicating you're reaching a point where you no longer have enough RAM for your server to function well.

0
 

Author Comment

by:jwshambles
ID: 24073407
I've attached an image of the performance monitor done over the past week with only memory counters added. I have collected a lot of data (see the above counters) so if there is something else I should add to this image let me know. I'm looking for help analyzing this data I have collected to determine if 16GB of RAM is sufficient or not. Thanks.
SQLMemory1.bmp
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 24074518
the page fault peaks indicate that the problem with the max memory setting configuration I mentioned should be checked and corrected first.
after that, collect the stats again to see if it helped.
for 16GB (=1600MB), you would set the value to 1500 (or less, if there are other applications running on the same box)
0
 

Author Comment

by:jwshambles
ID: 24087932
I checked this setting and it is set to the default of 2147483647. This is a dedicated SQL server and it is my understanding if you want SQL server to manage the memory you do not change this and that only if youhave other applications that require memory on the server should you chnage this and dedicate it to SQL. Anyone else have any ideas or suggestions?
0
 
LVL 142

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 250 total points
ID: 24088007
I ALWAYS change that default setting as part of the first actions after setting up the sql server instance.
please do so also. the problem is that you will ALWAYS have some sort of application running on the server, apart from the OS itself, which will use a bit of memory.
better play safe.
0
 
LVL 11

Assisted Solution

by:Quetzal
Quetzal earned 250 total points
ID: 24096289
Angel is on a good track.  See http://support.microsoft.com/kb/889654.

However, 16 GB = 16000 MB (not 1600).
0

Featured Post

Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

Join & Write a Comment

It is helpful to note: This is a cosmetic update and is not required, but should help your reports look better for your boss.  This issue has manifested itself in SSRS version 3.0 is where I have seen this behavior in.  And this behavior is only see…
In this article I will describe the Copy Database Wizard method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now