`
netcome
  • 浏览: 479607 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

smem memory reporting tool

阅读更多

smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size (PSS), which is a more meaningful representation of the amount of memory used by libraries and applications in a virtual memory system.

Because large portions of physical memory are typically shared among multiple applications, the standard measure of memory usage known as resident set size (RSS) will significantly overestimate memory usage. PSS instead measures each application's "fair share" of each shared area to give a realistic measure.

 

smem has many features:

 

  • system overview listing
  • listings by process, mapping, user
  • filtering by process, mapping, or user
  • configurable columns from multiple data sources
  • configurable output units and percentages
  • configurable headers and totals
  • reading live data from /proc
  • reading data snapshots from directory mirrors or compressed tarballs
  • lightweight capture tool for embedded systems
  • built-in chart generation

smem has a few requirements:

 

  • a reasonably modern kernel (> 2.6.27 or so)
  • a reasonably recent version of Python (2.4 or so)
  • the matplotlib library for chart generation (optional, auto-detected)

Sample output

Here are some smem graphs showing how RSS exaggerates memory usage. Note how apps that share libraries are over-reported on the RSS side and nearly vanish on the PSS side. The X server is also shares memory heavily, it's real memory usage is about 5 times smaller.

 

Using smem

Show basic process information smem
Show library-oriented view smem -m
Show user-oriented view smem -u
Show system view smem -R 4G -K /path/to/vmlinux -w
Show totals and percentages smem -t -p
Show different columns smem -c "name user pss"
Sort by reverse RSS smem -s rss -r
Show processes filtered by mapping smem -M libxml
Show mappings filtered by process smem -m -P [e]volution
Read data from capture tarball smem --source capture.tar.gz
Show a bar chart labeled by pid smem --bar pid -c "pss uss"
Show a pie chart of RSS labeled by name smem --pie name -s rss

Getting smem

To get the latest release version, click here.

The latest source code can be grabbed from smem's Mercurial repository here with the command:

hg clone http://selenic.com/repo/smem

Feedback

Write to the smem list at smem@selenic.com.

http://www.selenic.com/smem/

分享到:
评论

相关推荐

    smem在Android中的使用

    在Android系统中,`smem`是一个非常有用的工具,它用于查看系统内存的状态,包括物理内存和内核内存。这个工具对于系统开发者、调试人员以及性能优化专家来说是必不可少的,因为它提供了对内存分配和使用情况的深入...

    smem-1.5.zip

    smem是一款命令行下的内存使用情况报告工具,他能够给用户提供Linux系统下的内存使用的多种报告,seme与现有工具不同的是,可以报告PSS情况(实际使用的物理内存(PSS),从而可以衡量虚拟内存系统库和应用程序所占用的内存...

    smem-map - The Static Memory Mapper-开源

    smem-map是一款强大的开源工具,专门用于分析进程的虚拟内存空间,帮助用户识别那些内存区域的内容保持静态不变。这个工具对于系统管理员、开发者以及性能优化专家来说尤其有用,因为它能够提供深入的内存使用情况...

    share memory

    2. **smem_alloc, smem_get_entry, smem_find**:这些函数允许MODEM在Share Memory中分配和查找结构化数据,AP则可以在合适的时间进行读取。通常,MODEM负责写入数据,而AP负责读取,反向操作并不建议。 3. **SMD ...

    arch_arm_mach-msm_smem_log_qualcommmsm7200_exploredr1_linuxkerne

    这个组件可能涉及到在ARM架构上的硬件接口,用于在Qualcomm MSM7200处理器上记录和管理共享内存(Shared Memory,简称SMEM)的日志数据。 描述中的"linux driver qualcomm msm platform SMEM LOG"进一步确认了这是...

    SMEM_Fully_Pipelined_Design:SMEM ++,用于基因组测序的全流水线和时间多路复用SMEM播种加速器

    SMEM_Fully_Pipelined_Design SMEM ++,用于基因组测序的全流水线和时间多路复用SMEM播种加速器 此发布的代码是SMEM FPGA内核代码,其详细信息在我们的论文中进行了描述。 最初的实现是在harp2上的,并且存在版权...

    抓取memory的shell(native和hprof)

    生成的HProf文件可以用各种工具打开,例如Eclipse的MAT (Memory Analyzer Tool)或IntelliJ IDEA的内置分析器,它们可以帮助开发者识别内存泄漏、对象引用链和内存占用过高的问题。 在实际操作中,抓取和分析HProf...

    smem-1.4.tar.gz_physical_uss

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

    linux-memory-manage.rar_Linux 内存管理_linux_memory_内存管理 linux_内存管理

    9. 内存管理工具:`free`命令显示当前系统的内存使用情况,`top`和`htop`可以实时监控进程内存占用,`smem`报告详细的内存使用报告,包括物理和交换内存。 10. 调优策略:Linux内存管理可以通过调整内核参数来优化...

    arm linux smemcap tool

    smemcap 是arm v7 嵌入式环境用来cap smaps ,capture的资料在pc 端用smem 分析

    在Linux中可视化显示内存占用情况的方法.docx

    smem的安装可以在Debian、Ubuntu或Linux Mint上使用apt-get install smem命令,在Fedora或CentOS/RHEL上使用yum install smem python-matplotlib命令进行安装。 使用smem可以检查内存使用情况,例如可以使用smem...

    监控内存使用状态.rar

    例如,Java应用可以使用JVisualVM或MAT (Memory Analyzer Tool)来分析内存使用情况,找出可能的内存泄漏。 总之,监控内存使用状态是确保系统稳定运行的重要手段。通过各种工具和技术,我们可以有效地监控内存,...

    DSP指令大全(最全).doc

    3. 符号位不扩展的加法:ADDS指令用于不扩展符号位的加法,`ADDS Smem, src`将Smem中的无符号值与累加器中的值相加,保留符号位不变。 二、减法指令 1. 基本减法:SUB指令从累加器中减去源操作数,例如`SUB Smem, ...

    rgb转lab代码matlab-SMEM:快照多光谱内窥镜检查

    快照多光谱内窥镜检查(SMEM) 该存储库包含穆乔,马佳伟,于振明,徐坤等人撰写的论文《快照多光谱内窥镜检查(光学信函,2020年)》的代码。 、、、 概述者 此源代码提供了端到端DNN,用于重建快照压缩成像器捕获...

    Qualcomm平台开发如何抓取Log.

    SMEM(SMall MEMory) Log是一种特殊的日志类型,通常包含了关于内存分配的信息。在Qualcomm平台中,有两种主要的方法来抓取SMEM Log: 1. **使用Trace32**: - 如果拥有Trace32工具,可以在`AMSS\products\76XX\...

    last_radio_log.rar_The Crash

    描述中提到的“Extract the log from a modem crash through SMEM”指出了问题的关键——通过系统内存映射(System Memory Enhanced Mode, SMEM)来提取Modem崩溃时的日志。这涉及到故障排查、日志分析以及移动设备...

    高通平台debug工具介绍

    f3 log 记录了高通平台上的错误信息,而 smem log 记录了高通平台上的内存信息。获取 f3 log 和 smem log 可以按照以下步骤进行: 1. 准备高通平台上的 dump 信息 2. 使用 dump 信息获取 f3 log 和 smem log 获取 ...

    DSP指令系统

    - **ADD Smem[, SHIFT], src[, dst]**:允许用户指定移位量,将Smem左移指定位数后再与src中的值相加。 - **ADDXmem, SHFT, src**:与上一条类似,但是操作数取自Xmem。 - **ADDXmem, Ymem, dst**:两个操作数Xmem和...

    基于DSP的汇编语言

    ADD指令的格式为:ADD Smem, src, 其中Smem是源操作数,src是目的寄存器。例如: ```assembly ADD @x2, A ``` 这条指令将x2的值加到累加器A中。 减法运算 在这个实验中,我们使用SUB指令来实现减法运算。SUB指令...

Global site tag (gtag.js) - Google Analytics