#!/bin/bash
#Script: gp_conn_cpu_mon.sh
#Author: goopand#gmail.com
cur_date=`date "+%Y%m%d"`
cur_hour=`date "+%H:%M"`
cur_time=`date "+%Y-%m-%d %H:%M:%S"`
cur_hm=`date "+%Y-%m-%d %H:%M"`
echo "==========`date "+%Y-%m-%d %H:%M:%S"`=========="
echo
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
total_conn=`psql -d postgres -c "select count(*) from pg_stat_activity where procpid <> pg_backend_pid()" | head -3 | tail -1 | awk '{print $1}'`
active_conn=`psql -d postgres -c "select count(*) from pg_stat_activity where procpid <> pg_backend_pid() and current_query <> '<IDLE>'" | head -3 | tail -1
| awk '{print $1}'`
idle_conn=`expr ${total_conn} - ${active_conn}`
echo "[Connections Info]"
echo "Total: ${total_conn}"
echo "Active: ${active_conn}"
echo "Idle: ${idle_conn}"
echo
echo "[Current Active Query]"
psql -d postgres -c "select datname,procpid,usename,current_query,query_start,backend_start,client_addr,client_port,application_name from pg_stat_activity where procpid <> pg
_backend_pid() and current_query <> '<IDLE>'"
echo
echo "[CPU Usage(%)]"
gpssh -f /home/gpadmin/gpconf/all_hosts < /home/gpadmin/monitor/sh/get_cpu_usage.cmd | \
grep "]" | awk -F"[" '{print $2}' | awk -F"] " '{print "[" $1 "]" $2}' | sort -t"]" -k 2rn | awk -F"]" '{print $1 "] " $2}'
echo; echo; echo; echo; echo;
get_cpu_usage.cmd 文件内容如下:
top -bn 2 -d 0.02 | grep 'Cpu(s)' | tail -n 1 | gawk '{print 100 - $5}'