Процент использования ЦП — это отношение общего времени активности ЦП к времени, прошедшему с часов на вашей стене. Если вы попытаетесь сравнить одно процессорное время с другим процессорным временем, это не процент использования. Для этого нет названия, это просто отношение одного процессорного времени к другому процессорному времени.
Вы уже заявили, что знаете, как получить прошедшее время процессора (, взяв разницу времени процессора до и после менструации ), так что просто разделите это время на настенные часы.
cgroup=$(awk -F: '$2 == "cpu,cpuacct" { print $3 }' /proc/self/cgroup)
tstart=$(date +%s%N)
cstart=$(cat /sys/fs/cgroup/cpu/$cgroup/cpuacct.usage)
sleep 5
tstop=$(date +%s%N)
cstop=$(cat /sys/fs/cgroup/cpu/$cgroup/cpuacct.usage)
bc -l <<EOF
($cstop - $cstart) / ($tstop - $tstart) * 100
EOF
Если вы хотите избежать вызоваdate
(и cat
), вы можете использовать что-то вроде:read tstart _ < /proc/uptime
.