SMEM(8) SMEM(8)

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 dif‐
ferent 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
-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 smem source 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. Obtain the smem source at http://selenic.com/repo/smem

2. Compile smemcap.c for your target system.

3. Run smemcap on the target system and save the output:
smemcap > memorycapture.tar

4. 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)

linux smem 查看各进程使用memory情况的更多相关文章

  1. Linux下查看某个进程打开的文件数-losf工具常用参数介绍

    Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux操作系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还 ...

  2. linux下查看当前进程以及杀死进程

    ###linux下查看当前进程以及杀死进程 查看进程 ps命令查找与进程相关的PID号: ps a :显示现行终端机下的所有程序,包括其他用户的程序. ps -A :显示所有程序. ps c :列出程 ...

  3. Linux下查看某个进程的网络带宽占用情况

    说明: 1.可能查看某个进程的带宽占用需要明确知道PID.进程名字.发送速度.接收速度. 2.很遗憾,在Linux原生的软件中没有这样的一款,只能额外装,最符合以上的情况就只有nethogs. 3.n ...

  4. [转] linux 下查看一个进程运行路径的方法

    http://blog.csdn.net/brioxu/article/details/5104736 在linux下查看进程大家都会想到用 ps -ef|grep XXX ps -aux | hea ...

  5. linux下查看哪个进程占用内存多

    1.用top命令 1.top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容.可以 ...

  6. Linux下查看哪些进程占用的CPU、内存资源

    1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps a ...

  7. linux 下查看java进程

    linux下查看出问题的java进程,便于发现程序问题.命令如下: 找到存在问题的java进程号,ps -ef|grep java ,如进程30021 卡住,需要查看该进程信息,那么敲入命令: jst ...

  8. linux下查看运行进程详细信息

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个 ...

  9. linux 下查看一个进程执行路径

    在linux下查看进程大家都会想到用 ps -ef|grep XXX 但是看到的不是全路径.怎么看全路径呢? 每一个进程启动之后在 /proc以下有一个于pid相应的路径 比如:ps -ef|grep ...

随机推荐

  1. 面试题28:单链表一次遍历删除从后往前的第n个节点

    class Solution { public: ListNode *removeNthFromEnd(ListNode *head, int n) { ListNode* fake = ); fak ...

  2. Go RabbitMQ (一)

    RabbitMQ 简介 RabbitMQ是一个消息代理,用来负责接收和转发消息. 术语 生产者:生产者是负责发送消息的 队列:队列是RabbitMQ用来存储消息的,受主机内存和磁盘大小的限制,本质上是 ...

  3. 【设计模式】工厂模式 Factory Pattern

    1)简单工厂(不是模式) 简单工厂只是一种变成习惯,并非23种设计模式之一. 简单工厂提供将实例话那种类型留给运行时判断,而非编译时指定.简单工厂模式就是由一个工厂类根据传入的参数决定创建出哪一个类的 ...

  4. Oracle 通过字段名查询其所在的表

    select owner , table_name , column_name from dba_tab_columns where column_name='LOG_TYPE' ;

  5. Red Hat Linux 无法使用yum命令

    一:首先提供部分Red Hat 镜像下载地址 1.rhel-server-6.8-i386-dvd.iso 链接: https://pan.baidu.com/s/18VqxRgBMuAJE7Ty0H ...

  6. webpack 项目实践

    1,必要的环境 node 环境 下载地址(http://nodejs.cn/) npm 貌似 下载地址(https://www.npmjs.com/)不过,貌似 Node 安装可自带 npm. 2, ...

  7. Promise异步编程整理

    1.单线程模型 单线程模型指的是,JavaScript 只在一个线程上运行.也就是说,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待. 注意,JavaScript 只在一个线 ...

  8. PHP错误日志和内存查看

    1.通过命令查看服务器上一共开了多少的 php-cgi 进程: ps -fe |grep "php-fpm"|grep "pool"|wc -l 2.查看FPM ...

  9. node.js和JavaScript的关系

    node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时环境. 一.类比JavaScript和java JavaScript java V8 JVM node.js JRE ...

  10. Multipath多路径冗余

    一.什么是multipath 多路径冗余I/O(Multipath I/O)是指服务器通过多条物理路径连接到块存储设备. 为了避免存储链路单点故障,保证在磁盘阵列控制器切换时数据访问的不间断,多链路负 ...