Sidebar

Script para monitorear los procesos que consumen mucho CPU en Sybase-Unix

/***********************************************/
/* Script monitor CPU (UNIX-ASE) */
/* http://www.dbasupport.com.mx */
/* Author: Carlos Contreras --> CContreras */
/**********************************************/

Detalles:

Nombre del usuario que se encuentra consumiendo mayor CPU.

A nivel query (sql), detalla los comandos que se encuentra ejecutando en el momento
dicha conexión.

Nos muestra el porcentaje de CPU utilizado por dicho proceso.

Nota: Como podrán observar, la información proviene del campo CPU de la tabla sysprocesses
de master, por lo que el porcentaje va orientado a ticks, que son ciclos de reloj de
sistema operativo.


****************************************SHELL**************************************

function DefineVariables {
#Se definene las variables de ambiente
export SYBASE=/binarios/sybase
export PATH=/binarios/sybase/ASE-12_0/bin:/binarios/sybase/OCS-12_0/bin:$PATH
export SHLIB_PATH=/binarios/sybase/ASE-12_0/lib:/binarios/sybase/FTS-12_0/lib:/binarios/sybase/OCS-12_0/lib:/usr/lib:/lib:/usr/lib/Motif1.H
export SYBASE_OCS=OCS-12_0
export SYBASE_ASE=ASE-12_0
SCRIPTS=/filesystem/dba_scripts/
ISQL=$SYBASE/OCS-12_0/bin/isql
DATE=`date +%y%m%d_%T`
export DATE
}

DefineVariables

rm /filesystem/dba_scripts/salida_prmon.out
rm /filesystem/dba_scripts/prmon.out
cd /filesystem/dba_scripts/

$ISQL -Usa -SINSTANCIA -Ppassword -i/filesystem/dba_scripts/query.sql -o/filesystem/dba_scripts/prmon.out
VARIABLE=$(cat /filesystem/dba_scripts/prmon.out | grep -v spid | grep -v "------" | grep -v affected)
export VARIABLE
#echo $VARIABLE
$ISQL -Usa -SINSTANCIA -Ppassword << EOF >> /filesystem/dba_scripts/salida_prmon.out
select distinct b.name from sysprocesses a, syslogins b where b.suid=a.suid and a.spid=$VARIABLE
go
dbcc traceon(3604)
go
dbcc sqltext($VARIABLE)
go
dbcc traceoff(3604)
go
select distinct (select (cpu*100) from sysprocesses where spid=$VARIABLE)/(select sum(cpu) from sysprocesses)
as PORCENTAJE
from sysprocesses
go
exit
EOF

FINAL=$(cat /filesystem/dba_scripts/salida_prmon.out | grep -v affected | grep -v System | grep -v DBCC)
export FINAL

echo $FINAL > /filesystem/dba_scripts/Salidas_Mon_CPU/monitor_$DATE


Tips BD