Olá pessoal,

Estava com ideia de saber o load (consumo de cpu) de cada consulta no
servidor, eu pesquisei mas não encontrei nada pronto que pudesse ajudar,
acabei fazendo um function em pl/phyton, que nada mais faz do que um "ps"
pegando o procpid e verificando o uso da cpu, ficou assim:

CREATE OR REPLACE FUNCTION public.pg_proc_load(procpid integer)
 RETURNS numeric
 LANGUAGE plpython2u
AS $function$
import commands
try:
cmd1 = 'ps --no-header -o"%C" -p' + str(procpid)
l = commands.getoutput(cmd1);
except:
l = 0.0

if len(l) == 0:
l = 0.0

return float(l)
$function$

o resultado é interessante, mas to achando o retorno muito lento, em média
uns 600ms, acho que o uso ta bem legal pra quem precisa ou quer monitorar o
load das consultas, por exemplo.

select pg_proc_load(procpid), current_query from pg_stat_activite;

Queria ver se alguém tem alguma sugestão para melhor a performance da
function, pois meu conhecimento de python também é bem básico.

Abraços,

*Hugo Bastos Bucker**
*
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a