hpc高性能集群统计每个用户CPU使用率和内存
时间: 2024-03-24 16:37:13 浏览: 225
在 HPC 高性能集群中,通常使用作业调度系统(如 Slurm、PBS 等)来管理和调度作业。因此,统计每个用户的 CPU 使用率和内存使用情况,可以结合作业调度系统提供的工具来实现。
以 Slurm 作业调度系统为例,可以使用 `sacct` 命令来获取作业的资源使用情况,并通过 `awk` 命令将结果按照用户进行分类汇总。
以下是一个简单的 Shell 脚本,可以实现统计每个用户的 CPU 和 Memory 使用率:
```bash
#!/bin/bash
# 获取当前所有用户名称
users=$(sacct -n -X -o User | sort | uniq)
# 遍历每个用户,并统计 CPU 和 Memory 使用率
for user in $users
do
# 统计 CPU 使用率
cpu=$(sacct -n -X -o "CPUUsage" -u $user | awk '{sum += $1}; END {print sum "%"}')
# 统计 Memory 使用率
memory=$(sacct -n -X -o "MaxRSS" -u $user | awk '{sum += $1}; END {print sum "KB"}')
# 输出结果
echo "用户 $user 的 CPU 使用率为:$cpu,Memory 使用情况为:$memory"
done
```
这个脚本首先使用 `sacct` 命令获取所有作业的信息,并通过 `awk` 命令将结果按照用户名称进行分类汇总。然后遍历每个用户,再次使用 `sacct` 命令获取该用户的作业信息,并使用 `awk` 命令分别统计该用户的 CPU 使用率和 Memory 使用情况。最终输出结果类似于:
```
用户 user1 的 CPU 使用率为:10%,Memory 使用情况为:102400KB
用户 user2 的 CPU 使用率为:5%,Memory 使用情况为:51200KB
用户 user3 的 CPU 使用率为:0%,Memory 使用情况为:0KB
```
你可以将这个脚本保存为一个文件,例如 `check_usage.sh`,然后通过 `chmod` 命令赋予执行权限,即可在终端中执行该脚本,如下所示:
```bash
chmod +x check_usage.sh
./check_usage.sh
```
注意:这个脚本需要使用管理员权限才能获取所有作业的信息。另外,由于作业调度系统的不同,具体实现细节可能会有所不同。
阅读全文