SGE 集群中每个用户的内存使用情况

SGE 集群中每个用户的内存使用情况

我想自动估算集群 (SGE、ubuntu) 中给定用户执行的所有作业的每月内存使用量。我已经看到有很多工具可以计算特定用户的当前内存使用量,但我想计算已提交作业的 CPU 使用量。这可能吗?是否有任何工具可以查看已提交作业的历史记录并找到它们使用的内存?

谢谢

答案1

我刚刚意识到你可以检查用户使用了多少内存

qacct -j -o <username>

答案2

以下脚本计算/etc/passwd上个月每个用户(文件中的所有用户)的 CPU 时间(以小时为单位):

#!/bin/sh
bmonth=$(/bin/date +%m)
bmonth=$(($bmonth - 1))
year=$(/bin/date +%y)

if [ $bmonth -eq 0 ];then
    bmonth=12
    year=$((year-1))
fi

if [ $bmonth -lt 10 ];then
    bmonth=0$bmonth
fi

emonth=$(/bin/date +%m)
hour=00
minute=00
day=$(/bin/date +%d)
begin=$year$bmonth$day$hour$minute
end=$year$emonth$day$hour$minute

for user in $(/usr/bin/cut -d':' -f1 /etc/passwd); do
    /usr/bin/qacct -j -o $user -b $begin -e $end | /bin/grep cpu | /usr/bin/awk '{sum += $2} END {sum = sum/3600; print "'$user'", sum}' OFS='\t';
done

相关内容