smem - Report memory usage with shared memory divided proportionally.
smem reports physical memory usage, taking shared memory pages
into account. Unshared memory is reported as the USS (Unique Set Size).
Shared memory is divided evenly among the processes sharing that memory.
The unshared memory (USS) plus a process's proportion of shared memory
is reported as the PSS (Proportional Set Size). The USS and PSS only
include physical memory usage. They do not include memory that has been
swapped out to disk.
Memory can be reported by process, by user, by mapping, or system-wide.
Both text mode and graphical output are available.
By default, smem will pull most of the data it needs from the /proc
filesystem of the system it is running on. The --source option lets
you used a tarred set of /proc data saved earlier, possibly on a
different machine. The --kernel and --realmem options let you
specify a couple things that smem cannot discover on its own.
-K KERNEL, --kernel=KERNEL
Path to kernel image. This lets smem include the size of the kernel's
code and statically allocated data in the systemwide (-w) output.
-R REALMEM, --realmem=REALMEM
Amount of physical RAM. This lets smem detect the amount of memory used
by firmware/hardware in the systemwide (-w) output. If provided, it
will also be used as the total memory size to base percentages on.
-S SOURCE, --source=SOURCE
/proc data source. This lets you specify an alternate source of the
/proc data. For example, you can capture data from an embedded system
using smemcap, and parse the data later on a different machine. If the
--source option is not included, smem reports memory usage on the
If none of the following options are include, smem reports memory usage
Report memory usage by mapping.
Report memory usage by user.
Report systemwide memory usage summary.
If none of these options are included, memory usage is reported for all
processes, users, or mappings. (Note: If you are running as a non-root
user, and if you are not using the --source options, then you will
only see data from processes whose /proc/ information you have access