Man Linux: Main Page and Category List


       memstat - Identify what’s using up virtual memory.


       memstat [-w][-p PID]


       memstat   lists  all  accessible  processes,  executables,  and  shared
       libraries that are using up virtual memory.  To  get  a  complete  list
       memstat  has  to  be  run  as root to be able to access the data of all
       running processes.

       First, the processes are listed.  An amount of memory  is  shown  along
       with  a  process ID and the name of the executable which the process is
       running.  The amount of memory shown does not include shared memory: it
       only  includes  memory  which  is  private  to  that process.  So, if a
       process is using a shared library like libc, the memory  used  to  hold
       that library is not included.  The memory used to hold the executable’s
       text-segment is also not included, since that too is shareable.

       After the processes, the shared objects  are  listed.   The  amount  of
       memory  is shown along with the filename of the shared object, followed
       by a list of the processes using  the  shared  object.  The  memory  is
       listed  as  the  total  amount  of  memory  allocated  to  this  object
       throughout the whole namespace.  In brackets also the  amount  that  is
       really shared is listed.

       Finally,  a  grand  total  is  shown.  Note that this program shows the
       amount of virtual (not real) memory used by the various items.

       memstat gets its  input  from  the  /proc  filesystem.   This  must  be
       compiled  into  your  kernel  and  mounted  for  memstat  to work.  The
       pathnames shown next to the shared objects are determined  by  scanning
       the  disk.   memstat  uses  a configuration file, /etc/memstat.conf, to
       determine which directories to scan.  This file should include all  the
       major  bin  and  lib  directories  in  your system, as well as the /dev
       directory.  If you run an executable which  is  not  in  one  of  these
       directories, it will be listed by memstat as ‘‘[0dev]:<inode>’’.

       The  -w  switch  causes  a wide printout: lines are not truncated at 80

       The -p switch causes memstat to only print data gathered  from  looking
       at the process with the gicen PID.


       These  reports are intended to help identify programs that are using an
       excessive amount of memory, and to reduce overall memory waste.




       ps(1),        top(1),        free(1),        vmstat(8),        lsof(8),


       memstat  ignores all devices that just map main memory, though this may
       cause memstat to ignore some memory usage.

       Memory used by the kernel itself is not listed.


       Originally written by Joshua Yelon  <>  and  patched  by
       Bernd  Eckenfels <>. Taken over and rewritten by Michael
       Meskes <>.