SUMMARY: LONG: where has all my real memory gone???

From: Donald McLachlan (don@mars.dgrc.doc.ca)
Date: Mon Nov 16 1992 - 21:05:53 CST


It seems my memory was there, and could be freed up by any process
that really needed it.

I freed it up by doing ...

        dd if=/dev/zero of=/dev/null bs=65536k count=5

This uses a 64MByte buffer (the size of my physical memory) which forced my
system to give dd all available memory and use swap space for the rest.
This is SLOW. Do not do it when the system is busy.

But when it was all over, I had 58Mbytes free.
For various trials, smaller buffer sizes free "buffer size" memory.

Here are the juicey tid-bits of info people provided. THANKS ALL.

- The various tools all lie through their teeth when it comes to real
  memory. A big consumer of memory, which isn't reported by anything, is
  mapped files, random stuff kept in the buffer cache, etc.

- [...] pageout numbers are low. As
  long as that's the case, you're not running into lack of memory. A lot
  of that junk (that's taking up memory) will be flushed as soon as
  anything else wants it.

- Also check the output of the (undocumented) 'vmstat -b' option for some
   interesting numbers.

- How much of your swap is used at the moment (pstat -T)?

- You might want to look at vmpage to see how pages are *really* being used.

What is vmpage, and where do I get it?

- Under SunOS 4.1.x, there isn't a fixed-size disk buffer cache. Instead,
  ALL virtual memory is used as the cache (all VM not being used by the
  kernel or by running processes). Hence most of your physical memory will
  be holding cached data.

- Other commands to use to get a feel for what is really going on ...

        pstat -s
        df /tmp (if you are using tmpfs which uses memory) I'm not.



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:06:53 CDT