Provided by: smem_1.5-1.1_all 

NAME
smem - Report memory usage with shared memory divided proportionally.
SYNOPSIS
smem [options]
DESCRIPTION
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 systemwide. Both text mode and graphical
output are available.
OPTIONS
GENERAL OPTIONS
-h, --help
Show help.
SOURCE DATA
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 an uncompressed kernel image. This lets smem include the size of the kernel's code and
statically allocated data in the systemwide (-w) output. (To obtain an uncompressed image of a
kernel on disk, you may need to build the kernel yourself, then locate file vmlinux in the source
tree.)
-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. Example: --realmem=1024M
-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 running system.
REPORT BY
If none of the following options are included, smem reports memory usage by process.
-m, --mappings
Report memory usage by mapping.
-u, --users
Report memory usage by user.
-w, --system
Report systemwide memory usage summary.
FILTER BY
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 to.)
-M MAPFILTER, --mapfilter=MAPFILTER
Mapping filter regular expression.
-P PROCESSFILTER, --processfilter=PROCESSFILTER
Process filter regular expression.
-U USERFILTER, --userfilter=USERFILTER
User filter regular expression.
OUTPUT FORMATTING
-a, --autosize
Size columns to fit terminal size.
-c COLUMNS, --columns=COLUMNS
Columns to show.
-H, --no-header
Disable header line.
-k, --abbreviate
Show unit suffixes.
-n, --numeric
Show numeric user IDs instead of usernames.
-p, --percent
Show percentages.
-r, --reverse
Reverse sort.
-s SORT, --sort=SORT
Field to sort on.
-t, --totals
Show totals.
OUTPUT TYPE
These options specify graphical output styles.
--bar=BAR
Show bar graph.
--pie=PIE
Show pie graph.
REQUIREMENTS
smem requires:
• Linux kernel providing 'Pss' metric in /proc/<pid>/smaps (generally 2.6.27 or newer).
• Python 2.x (at least 2.4 or so).
• The matplotlib library (only if you want to generate graphical charts).
EMBEDDED USAGE
To capture memory statistics on resource-constrained systems, the the smemcap package includes a utility
named smemcap. smemcap captures all /proc entries required by smem and outputs them as an uncompressed
.tar file to STDOUT. smem can analyze the output using the --source option. smemcap is small and does
not require Python.
To use smemcap:
1. Install package smemcap on target system.
2. Run smemcap on the target system and save the output:
smemcap > memorycapture.tar
3. Copy the output to another machine and run smem on it:
smem -S memorycapture.tar
FILES
/proc/$pid/cmdline
/proc/$pid/smaps
/proc/$pid/stat
/proc/meminfo
/proc/version
RESOURCES
Main Web Site: http://www.selenic.com/smem
Source code repository: http://selenic.com/repo/smem
Mailing list: http://selenic.com/mailman/listinfo/smem
SEE ALSO
free(1), pmap(1), proc(5), ps(1), top(1), vmstat(8)
COPYING
Copyright (C) 2008-2009 Matt Mackall. Free use of this software is granted under the terms of the GNU
General Public License version 2 or later.
AUTHOR
smem was written by Matt Mackall.
03/15/2010 SMEM(8)