smem命令可导出进程内存报表,支持按进程、用户、过滤条件导出,指定字段、单位、总计及生成png图表。

直接用 smem 命令配合输出重定向就能导出进程内存消耗报表,关键是要选对视图、排序和格式。
按进程导出详细内存报表
默认命令会列出所有进程的 USS、PSS、RSS 等指标,按 PSS 降序排列:
-
smem -s pss > process_report.txt—— 导出纯文本报表,含表头和完整列(PID、USER、COMMAND、USS、PSS、RSS 等) -
sudo smem -s pss -c "pid user command uss pss rss swap" > clean_report.txt—— 指定列名导出精简字段,适合后续分析 -
smem -s pss -p --no-header > report.csv—— 加-p显示百分比,--no-header去掉表头,方便导入 Excel 或 CSV 工具
按用户或过滤特定进程导出
若只需某类进程或某个用户的内存数据,可结合过滤选项:
-
smem -u -p > users_memory.txt—— 按用户汇总 PSS 占用,显示每个用户的总内存占比 -
smem -P '^(chrome|firefox)$' -s pss -c "pid user command pss rss" > browser_mem.txt—— 正则匹配进程名,只导出浏览器相关进程的内存数据 -
smem -U 'john' -s pss > john_processes.txt—— 仅导出用户 john 启动的所有进程内存使用情况
导出带单位和总计的实用报表
让报表更易读,可添加单位缩写与汇总行:
-
smem -k -s pss -t > report_with_total.txt——-k启用 KiB/MiB/GiB 自动单位,-t在末尾追加总计行(Total PSS、RSS 等) -
smem -R 16384 -s pss -p > scaled_percent.txt—— 若系统物理内存识别不准,可用-R 16384手动指定为 16 GiB,使百分比计算更准确
生成可视化图表辅助分析
报表不只是文字,smem 可直接输出 PNG 图表文件:
-
smem --pie name -s pss --pngfile pie_pss.png—— 生成按进程名划分的 PSS 饼图 -
smem --bar user -s pss --pngfile bar_users.png—— 生成按用户分组的 PSS 条形图 - 注意:需提前安装
python-matplotlib和python-tk(Ubuntu/Debian)或python3-matplotlib(较新发行版)











