Please Help With NMON Data

Hi guys, I am an Oracle DBA and I have an account with some databases on an AIX 5.3 server. I am trying to figure out if I really need to add memory to this box or not, the account team keeps pushing me to make a decision and I don't want to waste their money if I don't need to right now, we could spend it elsewhere that need it more.

Don't think I haven't bothered to look up stuff and read, I have been a lot. I started an nmon cron report 24 hours ago, then I downloaded the Nmon Analyzer for Excel, what it does is takes the nmon report and convert it into easy to read graphs. Attached to this post is an excel sheet with 3 sheets, one for MEM, MEMNEW, and MEMUSE. I have read up on paging, the free list, virtual vs. physical, but I just haven't been able to fully comprehend all the facets of it. Can one of you who is good with AIX just take a quick peak at this spreadsheet and give me your opinion? I would appreciate your advice much. Thanks.

OK you need to read up on the AIX Virtual Memeory manager. AIX is rather intelligent in how it deals with memory, and basically it will allow the memory of the AIX Instance (Machine, LPAR or whatever these days) to fill up until it has very little memory left (usually a few hundred pages or so) and then clears out a small amount of memory to give you some extra pages.

The result of this is that the state of memory for a system that has been up and running for a while is usually full. The key indicator here is whether or not the AIX instance is really starting to use the paging space.

There is another graph in the NMON analyser for that, or else you can look at it via vmstat. Try those and let us know hoe you get on.

I have been reading up on it, and it is confusing to me, thats why I was hoping someone with experience could just take a quick look at the graph, I doubt it would take more than a minute or two.

---------- Post updated at 02:29 AM ---------- Previous update was at 02:28 AM ----------

I asked 6 AIX Sa's about it and they all told me that they weren't really knowledegable with performance data. I was pretty surprised, since I work for the biggest corporation in the US.

It is as ross.mather says - not sure from your answer if you understood it from his explanation or not.

To keep it short - don't worry, it is normal to have low free memory on AIX. Did you experience any slowdowns or are you just trying to get a clue about the retrieved data? There is much more to obeye than just the output you posted; i.e. this output alone is not helpfull.

If you are unsure if your system is ok, post the following using code tags please (taken at peak times), so we can get a first glimpse at it:

oslevel -s
vmo -x| grep -iE "maxperm%|minperm%|maxclient%|lru_file_repage"
vmstat 1 20
vmstat -v

If all that performance stuff is too much to read up or to understand without explanations etc. (no offence) there is a tool that is very good at analyzing performance bottle necks and it also suggests changes to improve on it:

sarcheck - UNIX / Linux Performance Tuning and Kernel Tuning with graphs and analysis

It describes in well readable text after an analyzing run, what it found and what to do. You can get a shareware version to test it. I don't work for them but we tried it out and it is really good.

Hi Nibbsbitt,

you are running currently between 70 and 80% computational memory on an oracle box. Since oracle is doing its processing in memory and each DB connection is forking 1 to n processes which each require their own amount of memory, IBM and oracle recommend to keep the computational memory around 70-75% and never to exceed 80% on an AIX box. Performance problems with Oracle usually start somewhere between 80 and 90% since for each forked process first memory needs to get freed up - depending on the amount of DB connections this can be a big workload.
I would be interested in your free list in peak times (output of vmstat -I 5 5) to be more clear but right now I would say that you are not yet in trouble but you should either consider adding memory in the near future because you will be when the DB continues growing or other options to reduce memory consumption (review SGA sizes - they tend to be way too big). In addition make sure that lru_file_repage is set to 0.

Hope that helps
kind regards
zxmaus