Liste as utilizações da CPU para cada tela

0

Como posso listar todas as telas lançadas com screen juntamente com suas utilizações de CPU? ( screen -ls fornece as listas de telas, mas não a utilização da CPU)

Por utilização da CPU de uma tela, quero dizer a soma das utilizações de CPU dos processos que foram lançados na tela.

    
por Franck Dernoncourt 08.01.2016 / 22:04

1 resposta

2

Esta não é uma resposta completa, mas posso atualizá-la mais tarde.

O seguinte conjunto de uma linha, se colocado em um arquivo chamado cpu_usage_for_pid.sh , aceitará um PID como um argumento e imprimirá a soma da porcentagem de uso da CPU desse PID e de todos os seus PIDs filhos.

#!/bin/bash

awk '{sum += $2} END{print sum}' <(ps -o pid,pcpu p "$(pstree -p "$1" | awk -F '[^0-9][^0-9]*' -v thepid="$1" 'NR = 1 {printf "%d", thepid} { for (i=1; i<=NF; i++) { if ($i != "") { printf ",%d", $i }}}')")

Neste momento, minha VM tem apenas 0% de uso para todos os processos, por isso é difícil testá-la. Mas você o executa como ./cpu_usage_for_pid.sh 1241 .

Este é um protótipo, não para uso em produção.

De A Arte da Programação Unix , que citou Mike Lesk:

...he'd lash together some combination of shell scripts and awk code that did roughly what was needed, tell the customers to send him some clerks for a few days, and then have the customers come in and look at their clerks using the prototype and tell him whether or not they liked it. If they did, he would say “you can have it industrial strength so-many-months from now at such-and-such cost”

:)

    
por 08.01.2016 / 23:41