Es habitual en entornos Data Warehouse encontrarse con problemas de rendimiento y sobrecarga de máquina.
A continuación se listan comandos Unix para revisar procesos y temas de rendimiento (CPU, memoria). Son comandos que se pueden integrar en un script de Unix para revisar la situación de la máquina. Cada vez, las herramientas de integración de datos facilitan utilidades que muestran trazas sobre el rendimiento, pero no deja de ser útil disponer de scripts propios.
Procesos en máquina:
ps –ef
Para paginar
ps –ef | more
Número de procesos de un usuario determinado:
ps -ef -o pid,ppid,pcpu,time,nice,user,vsz
pid: proceso
ppid: proceso padre
pcpu: porcentaje de cpu
time: tiempo desde q empezó el proceso
nice: prioridad
user: usuario
vsz: tamaño del proceso en memoria virtual
comm: comando/script ejecutado
etime: tiempo de ejecución
args: nombre completo del comando ejecutado
Consumo CPU y memoria:
ps aux USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND root 16388 44,6 1,0 40 20624 - A 22 ago 5448:13 wait root 24582 44,2 1,0 40 20628 - A 22 ago 5402:35 wait usuario 1810598 25,0 1,0 57988 30564 - A 12:03:15 0:09
El tercer campo es la CPU. El siguiente paso es ordenar la salida de ps aux, queremos que la ordene por el tercer campo. El sort por defecto ordena por el primero, luego hay que indicarle con la opción +2 que se vaya 2 campos más adelante. Por defecto ordena en ascendente, luego para que sea descendente le ponemos –r. Por último hay que considerar que ordena alfabéticamente y queremos que ordene por número esto se lo indicamos con la opción –n. El resultado final es el siguiente:
ps aux | grep usuario | sort -r -n +2
Si queremos ordenarlo por memoria usuada, teniendo en cuenta que MEM es el cuarto campo:
ps aux | grep usuario | sort -r -n +3
Ver prioridades: campo PRI
ps -ef -o user,pid,pri,comm,pcpu | grep usuario PRI (-l and l flags) The priority of the process or kernel thread ; higher numbers mean lower priority.
También marca la prioridad el campo nice (ni)
ps -ef -o user,pid,pri,ni, comm,pcpu | grep usuario
Estadísticas de estado de servidor:
vmstat 2 VMSTAT
Donde podemos destacar:
procs: (procesos) r: ejecutables. b: bloqueados. w: desplazados a disco. memory :(memoria expresada en KB) free: libre. Pi: paginación input Po: paginación output swap cpu : (procesador) us: procesos de usuario. sy: del sistema. id: desocupado. Porcentaje CPU inactiva. in: interrupciones por segundo. cs: cambios de contexto por segundo.
Lo ideal es q pi y po sean 0 lo que indicaría que no hay paginación a disco. (no hace swap para utilizar memoria de disco cuando se queda sin memoria RAM )
Uptime:
Comando para evaluar la carga de máquina. Media del número de procesos en el último minuto, cinco últimos minutos y quince últimos minutos
uptime 07:44 activada 13:17, 2 usuarios, promedio de carga: 1,15, 1,21, 1,18
Los tres últimos valores representan el numero promedio de procesos en cola de ejecución.
1,15: promedio último minuto
1,21: promedio últimos 5 minutos
1,18: promedio últimos 15 minutos
Para saber si un sistema está sobrecargado dividir el valor promedio por el número de procesadores del servidor. Valores por encima de 1 indican sobrecarga.
ps -ef | grep usuario | wc -l
Campos de consulta en un ps (listado de proceso)