我应该如何在服务器上实现大致正确的每用户监控?我想要一种根据用户的使用情况在用户之间分摊服务器成本的方法。在较新的机器(RHEL6)上我会使用cgroups
;在较旧的内核上,进程计数和ps
平均值。这些是最好的方法吗?
答案1
测量消费过程可以测量用户在服务器上的消费情况。为了测量进程的消耗,我建议使用顶上软件。
答案2
它可能对您有帮助:
#!/bin/bash
total_mem=0
printf "%-10s%-10s\n" User MemUsage
while read u m
do
[[ $old_user != $u ]] && { printf "%-10s%-0.1f\n" $old_user $total_mem;
total_mem=0; }
total_mem="$(echo $m + $total_mem | bc)"
old_user=$u
done < <(ps --no-headers -eo user,%mem| sort -k1)
#EOF