obter CPU por usuário

obter CPU por usuário

Trabalhando com o monit, preciso criar um alerta que obtenha o uso da CPU dos usuários do sistema, então:

top -b -n 1 -u user1 | awk 'NR>7 { sum += $9; } END { print sum; }'

parece uma boa solução, mas não tenho certeza se é confiável porque quando executo o comando acima, sempre altero (obviamente) o valor. Portanto, preciso de um uso "exato" da CPU pelo usuário dentro de 2 a 5 segundos, porque o VALUE será enviado como um alerta por email.

Responder1

Experimente isso

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -5

A saída será como

%CPU   PID USER     COMMAND
0.6 18695 mysql  /usr/sbin/mysqld
0.1   961 root     [kdmflush]
0.1   937 root     [kdmflush]
0.1  1025 root     [jbd2/dm-2-8]

informação relacionada