![无法检查每个用户的 RAM 使用情况](https://linux22.com/image/848596/%E6%97%A0%E6%B3%95%E6%A3%80%E6%9F%A5%E6%AF%8F%E4%B8%AA%E7%94%A8%E6%88%B7%E7%9A%84%20RAM%20%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5.png)
我最近想检查服务器上每个连接用户的 RAM 使用情况,但找不到解决方法。请提出一些方法。
答案1
怎么样
ps aux | grep $USER | awk '{memory +=$4}; END {print memory }'
ps aux
:使用 BSD 语法查看系统上的每个进程。$USER
是当前用户;如果需要其他用户,请将其更改为实际名称。
现在来看看神奇的部分:
- awk 创建一个名为 memory 的变量并添加输出的第 4 列
ps auxU $USER
,当它结束时,它会打印计算出的金额。
补充:图解法。
smem 是一款能够提供大量 Linux 系统内存使用情况报告的工具。与现有工具不同,smem 能够报告比例集大小 (PSS),这是对虚拟内存系统中库和应用程序使用的内存量的更有意义的表示。
由于物理内存的很大一部分通常由多个应用程序共享,因此内存使用量的标准度量标准(称为驻留集大小 (RSS))将大大高估内存使用量。相反,PSS 会测量每个应用程序在每个共享区域中的“公平份额”,以提供实际的度量标准。
smem 具有许多特点:
系统概述 按进程、映射、用户列出列表 按进程、映射或用户过滤 来自多个数据源的可配置列 可配置的输出单位和百分比 可配置的标题和总计 从 /proc 读取实时数据 从目录镜像或压缩 tarball 读取数据快照 嵌入式系统的轻量级捕获工具 内置图表生成 smem 有一些要求:
- 一个相当现代的内核(> 2.6.27 左右)
- 较新的 Python 版本(2.4 左右)
- 用于图表生成的 matplotlib 库(可选,自动检测)
使用 smem
- 显示面向用户的视图:(
smem -u
更多内容见链接)'
安装: