Linux查看某个用户使用总内存脚本

在之前记录过Valgrind的安装与使用

有时想要测试某个linux用户使用的总内存是否在增长,可以通过下面的python代码每隔一段时间做个统计

import psutil
import time

# 指定要监视的用户名
target_user = "yifan.wang"  # 替换为要监视的用户名

# 获取初始内存使用情况
initial_memory = psutil.virtual_memory().used

while True:
    # 获取指定用户的所有进程
    user_proc
Linux 系统中,直接查看**特定用户可用内存**并不是一个直接支持的操作,因为内存资源是系统级别的分配,通常不会绑定到具体用户。然而,可以通过一些命令和技巧来估算或监控特定用户运行的进程所占用的内存资源,并由此推断其可用内存使用情况。 ### 查看特定用户运行的进程及其内存使用情况 可以使用 `ps` 命令结合 `awk` 来统计某个用户运行的所有进程所占用的内存量。例如,假设要查看用户 `example_user` 的内存使用情况: ```bash ps -u example_user -o %mem,rss ``` - `%mem`:表示进程占用物理内存的百分比。 - `rss`:表示进程使用的物理内存大小(单位为 KB)。 如果要统计用户所有进程的内存使用量,可以结合 `awk` 实现: ```bash ps -u example_user -o rss --noheader | awk '{sum += $1} END {print sum/1024 " MB"}' ``` 该命令将输出该用户所有进程使用内存(以 MB 为单位)。 ### 使用 `top` 或 `htop` 查看特定用户的进程 也可以使用 `top` 命令并过滤特定用户的进程: ```bash top -u example_user ``` 在 `top` 界面中,可以看到该用户所有进程的内存使用情况。 如果安装了 `htop`,其界面更加友好,并支持按用户过滤进程。 ### 使用 `smem` 查看用户内存使用统计 `smem` 是一个高级内存统计工具,支持按用户维度查看内存使用情况: ```bash smem -u -n | grep example_user ``` - `-u`:按用户统计内存使用。 - `-n`:显示数值的可读格式(如 MB)。 输出结果中将包括用户 `example_user` 的内存使用用户独占内存(USS)、共享内存(PSS)等信息。 ### 监控内存泄露或长期内存使用趋势 如果关注的是**内存泄露**问题,可以定期记录上述命令的输出,并观察其内存使用是否持续增长。例如,使用 `watch` 命令实时监控: ```bash watch "ps -u example_user -o rss --noheader | awk '{sum += \$1} END {print sum/1024 \" MB\"}"" ``` 这将每隔几秒刷新一次,显示该用户内存使用量。 ### Linux 系统本身不提供直接查看“特定用户可用内存”的命令,但可以通过统计其运行的进程来推断内存使用情况。主要工具包括 `ps`、`top`、`htop` 和 `smem`,结合脚本可以实现更精细的监控和分析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值