+ All Categories
Home > Documents > Monitorización _ Www.postgresql.org

Monitorización _ Www.postgresql.org

Date post: 03-Dec-2015
Category:
Upload: olmes-ramos-cardenas
View: 21 times
Download: 3 times
Share this document with a friend
8
Anuncios Google ► CPU monitor ► PostgreSQL ► Linux redes ► Linux CP
Transcript
Page 1: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 1/8

Sobre PostgreSQL-es

ContenidosPrincipal

Sobre PostgreSQL

Primeros pasos

Documentación

Artículos / Trucos

Comunidad /

Soporte

Noticias

Descargas

Enlaces

Galerias de

imágenes

BuscarBuscar en este sitio:

Buscar

Anuncios

MonitorizaciónVie, 18/02/2011 - 15:07 — rafaelma

Una de las tareas más importantes de un administrador de bases dedatos es monitorizar los sistemas a su cargo para saber como estánfuncionando y planear futuras modificaciones y actualizaciones de losmismos.

Este artículo es una introducción a la monitorización de sistemas de bases de datos ensistemas Linux/Unix y está basado en un entrenamiento especializado que se impartio enel PGDay Latinoamericano 2011 en Cuba. Más adelante escribiremos otros artículos másespecíficos que nos ayuden a usar e interpretar los datos obtenidos de monitorizarnuestros sistemas.

En nuestro caso, monitorizar significa vigilar el funcionamiento de un sistema, servicio oactividad. Bajo nuestro punto de vista existen dos tipos de monitorización:

Ad Hoc: Monitorización específica en caso de problemas o pruebas. Se utilizageneralmente para investigar una situación puntual en la que intentamos encontraruna explicación a un suceso, cambio o problema.Preventiva: Detecta interrupciones de servicios, alerta sobre posibles problemas ycrea gráficos con tendencias y datos históricos sobre nuestros sistemas. Este tipode monitorización está automatizada y nos ayuda a descubrir cambios en nuestrossistemas que provocan o pueden provocar problemas en un futuro cercano.

Existen numerosos programas que nos pueden ayudar a realizar la monitorización denuestros sistemas PostgreSQL. A continuación teneis los mas usados en el mundo deprogramas de código abierto.

Ad Hoc: vmstat, iostat, sar, ps, top, iotop, htop, etc en la linea de comandos devuestro sistema operativo, e información interna de vuestra instalacion postgreSQLvia las vistas y tablas de sistema en la base de datos.Preventiva: "Nagios" para detectar y alertar sobre posibles problemas y "Munin"para crear gráficas históricas con las tendencias y uso de nuestros sistemas.

Los elementos a monitorizar son todos aquellos que nos puedan dar información sobrecomo nuestro sistema está funcionando y comportandose. Tendremos que monitorizar loscomponentes de la infraestructura necesaria para que nuestro sistema funcione, losservidores que estamos utilizando, el uso de los recursos que se están utilizando y lainformación interna en la base de datos que nos de datos sobre como se está usandoPostgreSQL.

Mi menuBlogs / bitácoras

Foros

Encuestas

Inicio desesiónUsuario: *

Contraseña: *

¿Qué código ves en laimagen?: *

Enter the characters shownin the image.

Iniciar sesión

Entrar usando

OpenID

Crear nueva cuenta

Solicitar una nueva

contraseña

PostgreSQL

Inicio

Anuncios Google   ► CPU monitor  ► PostgreSQL  ► Linux redes  ► Linux CPU

Page 2: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 2/8

Algunos de los elementos más importantes que se suelen monitorizar son los siguientes:

Servidor: Disponibilidad y posibles problemas del hardwareCPU: Carga del sistema y uso de la CPUMemoria: Carga y uso de la memoria, uso de la memoria de intercambio (swap)Red: Disponibilidad de los componentes de red, tráfico de entrada y salida.Discos / almacenamiento: Espacio utilizado, I/O (Input/Output) del sistemaPostgreSQL: Número de conexiones, número de transacciones, transaccionesabiertas, bloqueos, espacio usado, tipo de comandos usados, etc, etc

Ademas de estos elementos, suelen existir características específicas a cada sistema quecada administrador deberá identificar y monitorizar de la mejor manera posible.

Monitorización Ad Hoc

Como ya hemos comentado, este tipo de monitorización se utiliza generalmente parainvestigar una situacion puntual, en la que entramos en el sistema, recogemos los datosdeseados por un periodo de tiempo y pasamos a su posterior análisis para intentarencontrar una explicación a la situación o problema que estamos intentado resolver.

Herramientas del sistema operativo

A continuación teneis una breve introducción a las herramientas del sistema operativousadas más a menudo en esta monitorización. Todas estas herramientas se pueden usarcon multitud de opciones y parámetros, para obtener información detallada sobre losmismos usar el comando "man programa"

vmstat: Este comando se suele usar para obtener, entre otras cosas, información sobreel uso de memoria, swap, I/O total y cpu del sistema. La primera fila del resultado pordefecto da los valores medios desde la última vez que se arranco el sistema. Es unprograma que te da información global e instantanea del sistema en un momentodeterminado.

En sistemas debian/ubuntu este programa esta incluido en el paquete procps y si no estainstalado se puede instalar con el siguiente comando:

$ sudo apt-get install procps

Un resultado típico de ejecutar este comando podria ser el siguiente:

$ vmstat -n 1 10procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----r b swpd free buff cache si so bi bo in cs us sy id wa0 0 1368 401736 529112 4844136 0 0 15 26 24 6 5 1 94 10 0 1368 397884 529112 4844140 0 0 0 124 523 1399 1 0 99 00 0 1368 401976 529112 4844140 0 0 0 0 566 1648 1 0 99 00 0 1368 398752 529112 4844140 0 0 0 0 488 1447 1 0 99 00 0 1368 403588 529112 4844140 0 0 0 0 520 1550 2 0 98 00 0 1368 398720 529112 4844140 0 0 0 0 565 1525 1 0 99 00 0 1368 400232 529116 4844144 0 0 0 124 551 1609 1 0 99 00 0 1368 396132 529116 4844144 0 0 0 0 519 1395 1 0 99 00 0 1368 400720 529116 4844144 0 0 0 440 673 1892 1 0 98 11 0 1368 397076 529116 4844144 0 0 0 0 500 1443 1 1 99 0

Page 3: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 3/8

El tamaño de bloque por defecto es 1024 bytes (1Kb) y el significado de las distintascolumnas es el siguiente:

r: Procesos esperando por tiempo de ejecución (run time)b: Procesos en estado de espera sin interrupciones(uninterruptible sleep)

swpd: Cantidad de memoria virtual en usofree: Cantidad de memoria ociosabuff: Cantidad de memoria usada por bufferscache: Cantidad de memoria usada caches

si: Cantidad de memoria grabada en disco (swap-in)so: Cantidad de memoria leida del disco (swap-out)

bi: Bloques recibidos por los dispositivos de bloques (bloques/s)bo: Bloques enviados por los dispositivos de bloques (bloques/s)

in: Número de interrupciones por segundocs: Número de cambios de contexto por segundo (context switches)

us: Tiempo de cpu de procesos de usuario (nice incluido)sy: Tiempo de cpu de procesos del kernelid: Tiempo de cpu ociosowa: Tiempo de cpu esperando por I/Ost: Tiempo de cpu "robado" a una maquina virtual

iostat: Este comando se suele utilizar para obtener información sobre la entrada/salidade datos de todos los dispositivos, particiones y sistemas de ficheros NFS. Por defecto, elprimer resultado da los valores medios desde la última vez que se arranco el sistema. Esun programa que te da información sobre el I/O del sistema para todos los dispositivos enun momento determinado.

En sistemas debian/ubuntu este programa está incluido en el paquete sysstat y si no estainstalado se puede instalar con el siguiente comando:

$ sudo apt-get install sysstat

Un resultado típico de ejecutar este comando podria ser el siguiente:

$ iostat -k -p 1 2avg-cpu: %user %nice %system %iowait %steal %idle 4.78 0.19 0.60 0.79 0.00 93.64

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 5.50 59.00 106.86 19921681 36081584sda1 1.62 6.75 17.93 2279650 6053108sda2 0.08 3.05 0.02 1031003 7032sda3 3.80 49.19 88.91 16610176 30020076sda4 0.00 0.00 0.00 740 1368sdb 0.00 0.01 0.00 3460 44sdb1 0.00 0.01 0.00 3340 44

avg-cpu: %user %nice %system %iowait %steal %idle 0.99 0.10 0.54 0.00 0.00 98.37

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.20 25.60 0.00 128 0sda1 0.00 0.00 0.00 0 0sda2 0.20 25.60 0.00 128 0sda3 0.00 0.00 0.00 0 0sda4 0.00 0.00 0.00 0 0sdb 0.00 0.00 0.00 0 0sdb1 0.00 0.00 0.00 0 0

El tamaño de bloque por defecto usado por este programa es 512 bytes. El parámetro -knos cambia el valor de bloque a 1024 bytes (1Kb). El significado de las distintas columnases el siguiente:

tps: Número de peticiones I/O (transferencias) a un dispositivokB_read/s: kB por segundo leidos del dispositivokB_wrtn/s: kB por segundo escritos en el dispositivokB_read: Número total de kB leidos del dispositivokB_wrtn: Número total de kB escritos en el dispositivo

sar: Este programa se suele utilizar para recolectar y grabar información sobre nuestrosistema durante un periodo de tiempo.

En sistemas debian/ubuntu este programa está incluido en el paquete sysstat y si no estainstalado se puede instalar con el siguiente comando:

$ sudo apt-get install sysstat

La recolección de datos se llama desde cron (/etc/cron.d/sysstat), y por defecto no estáactivado. Para activar la recolección de datos una vez instalado deberemos cambiar unparámetro en el fichero /etc/default/sysstat y arrancar el servicio:

ENABLE="TRUE" en /etc/default/sysstat

Page 4: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 4/8

$ sudo /etc/init.d/sysstat restart

Un resultado típico de ejecutar este comando despues de un tiempo desde que se activala recolección de datos podria ser el siguiente:

$ sarLinux 2.6.35-24-generic (core2) 01/29/2011 _x86_64_ (4 CPU)

12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:05:01 AM all 0.72 0.14 0.95 0.19 0.00 97.9912:15:01 AM all 0.74 0.15 0.95 0.09 0.00 98.0712:25:01 AM all 0.73 0.15 0.90 0.05 0.00 98.1712:35:01 AM all 0.74 0.14 0.93 0.15 0.00 98.0512:45:01 AM all 1.08 4.80 3.27 0.07 0.00 90.7812:55:01 AM all 0.96 3.67 2.59 0.10 0.00 92.6801:05:01 AM all 0.72 0.14 0.90 0.19 0.00 98.0401:15:01 AM all 0.76 0.13 0.97 0.07 0.00 98.0601:25:01 AM all 0.70 0.15 0.90 0.06 0.00 98.2001:35:01 AM all 0.70 0.13 0.89 0.11 0.00 98.1701:45:01 AM all 0.68 0.14 0.90 0.10 0.00 98.18

ps: Este programa nos da información sobre los procesos que se están ejecutando ennuestro sistema. En el caso de procesos PostgreSQL nos puede dar información muyvaliosa sobre cuantos procesos PostgreSQL se están ejecutando y que están haciendo.

Un resultado típico de ejecutar este comando para obtener los procesos PostgreSQL delsistema, ordenados por el momento en que empezaron a ejecutarse, podria ser elsiguiente:

$ ps auxww | grep "postgres: " | sort -k 9

postgres 30758 .... 07:10 0:00 postgres: autovacuum launcher process postgres 30759 .... 07:10 0:00 postgres: stats collector process postgres 30757 .... 07:10 0:00 postgres: wal writer process postgres 30756 .... 07:10 0:01 postgres: writer process postgres 862 .... 07:59 0:00 postgres: postgres postgres [local] idle in transactionpostgres 1921 .... 09:22 0:00 postgres: postgres postgres 127.0.0.1(39475) idle postgres 21074 .... 14:14 0:04 postgres: postgres pgbench [local] COMMIT postgres 21073 .... 14:14 0:04 postgres: postgres pgbench [local] UPDATE waiting

Los que nos suelen interesar en este caso son los procesos creados por conexiones declientes a nuestro servidor PostgreSQL. Estos procesos se muestran con el siguienteformato:

postgres: usuario dbase maquina(puerto) actividad

Como podeis ver, podemos obtener información sobre que usuario está utilizando el clientepara conectarse, a que base de datos se está conectando, desde que máquina y puerto(o socket [local]) se ha conectado y que está haciendo. Los valores de la actividad queestá realizando podrán ser:

idle in transaction: El proceso ha abierto una transacción pero no la ha cerrado todavia.idle: El proceso está conectado pero sin hacer nada.COMANDO: El proceso está ejecutando el comando COMANDOCOMANDO waiting: El proceso quiere ejecutar el comando COMANDO, pero estábloqueado y esperando a poder ejecutarse

Vistas y tablas de sistema internas en PostgreSQL

Además podemos obtener información sobre como esta funcionando PostgreSQLinternamente a través de las vistas y tablas de sistema en la base de datos. En sucesivosartículos iremos viendo que tipo de información contienen y como interpretar estasvista/tablas de sistema.

Para que muchas de estas vistas/tablas funcionen debemos tener activados estosparámetros en nuestro sistema, track_counts, track_functions, track_activities, bien en elfichero postgresql.conf o definidos con SET / ALTER DATABASE en la sesión o base dedatos de la que queremos obtener información.

Existen muchas vistas y tablas internas pero las que se usan mas comunmente paraobtener información de PostgreSQL son las siguientes:

pg_roles: Información sobre todos los roles y usuarios definidos en la base de datos.

postgres=# SELECT * from pg_roles ;

rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolconnlimit | rolpassword | rolvaliduntil | rolconfig | oid ----------+----------+------------+---------------+-------------+--------------+-------------+--------------+-------------+---------------+-----------+----- postgres | t | t | t | t | t | t | -1 | ******** | | | 10(1 row)

pg_database Información sobre todas las bases de datos definidas en nuestro sistema.

postgres=# SELECT * from pg_database ;

datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace | datacl -----------+--------+----------+-------------+-------------+---------------+--------------+--------------+---------------+--------------+---------------+------------------------------------- template1 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | t | -1 | 11866 | 654 | 1663 | {=c/postgres,postgres=CTc/postgres} template0 | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | t | f | -1 | 11866 | 654 | 1663 | {=c/postgres,postgres=CTc/postgres} postgres | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 11866 | 654 | 1663 | pgbench | 10 | 6 | en_US.UTF-8 | en_US.UTF-8 | f | t | -1 | 11866 | 654 | 1663 | (4 rows)

Page 5: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 5/8

pg_locks: Información sobre los bloqueos activos en nuestras bases de datos. Vistacomplicada de entender pero muy valiosa en ciertas situaciones.

postgres=# SELECT * from pg_locks ;

locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted ---------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+------+------------------+--------- relation | 16385 | 16392 | | | | | | | | 3/2666 | 2711 | AccessShareLock | t relation | 16385 | 16392 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t virtualxid | | | | | 4/2692 | | | | | 4/2692 | 2710 | ExclusiveLock | t relation | 11874 | 10985 | | | | | | | | 2/19 | 2401 | AccessShareLock | t relation | 16385 | 16399 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t relation | 16385 | 16392 | | | | | | | | 4/2692 | 2710 | AccessShareLock | t relation | 16385 | 16392 | | | | | | | | 4/2692 | 2710 | RowExclusiveLock | t relation | 16385 | 16403 | | | | | | | | 4/2692 | 2710 | AccessShareLock | t relation | 16385 | 16403 | | | | | | | | 4/2692 | 2710 | RowExclusiveLock | t relation | 16385 | 16403 | | | | | | | | 3/2666 | 2711 | AccessShareLock | t relation | 16385 | 16403 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t virtualxid | | | | | 3/2666 | | | | | 3/2666 | 2711 | ExclusiveLock | t relation | 16385 | 16401 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t relation | 16385 | 16386 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t relation | 16385 | 16401 | | | | | | | | 4/2692 | 2710 | RowExclusiveLock | t tuple | 16385 | 16389 | 22 | 97 | | | | | | 4/2692 | 2710 | ExclusiveLock | t relation | 16385 | 16389 | | | | | | | | 4/2692 | 2710 | RowExclusiveLock | t relation | 16385 | 16395 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t relation | 16385 | 16389 | | | | | | | | 3/2666 | 2711 | RowExclusiveLock | t transactionid | | | | | | 2793613 | | | | 4/2692 | 2710 | ExclusiveLock | t virtualxid | | | | | 2/19 | | | | | 2/19 | 2401 | ExclusiveLock | t transactionid | | | | | | 2793614 | | | | 3/2666 | 2711 | ExclusiveLock | t transactionid | | | | | | 2793609 | | | | 4/2692 | 2710 | ShareLock | t(23 rows)

pg_stat_activity: Información sobre todos los procesos clientes conectados a la base dedatos.

postgres=# SELECT * from pg_stat_activity ;

datid | datname | procpid | usesysid | usename | application_name | client_addr | client_port | backend_start | xact_start | query_start | waiting | current_query -------+----------+---------+----------+----------+------------------+-------------+-------------+-------------------------------+-------------------------------+-------------------------------+---------+----------------------------------------------------------------------- 11874 | postgres | 2401 | 10 | postgres | psql | | -1 | 2011-02-17 22:48:08.090603+01 | 2011-02-17 22:52:31.297037+01 | 2011-02-17 22:52:31.297037+01 | f | SELECT * from pg_stat_activity ; 16385 | pgbench | 2711 | 10 | postgres | | | -1 | 2011-02-17 22:51:12.209724+01 | 2011-02-17 22:52:31.296394+01 | 2011-02-17 22:52:31.296873+01 | f | END; 16385 | pgbench | 2710 | 10 | postgres | | | -1 | 2011-02-17 22:51:12.1963+01 | 2011-02-17 22:52:31.295193+01 | 2011-02-17 22:52:31.29542+01 | t | UPDATE pgbench_tellers SET tbalance = tbalance + -4443 WHERE tid = 1; 16385 | pgbench | 2811 | 10 | postgres | | | | 2011-02-17 22:52:27.549785+01 | 2011-02-17 22:52:31.247453+01 | 2011-02-17 22:52:31.247453+01 | f | autovacuum: ANALYZE public.pgbench_history(4 rows)

pg_stat_database: Información global de uso de todas las bases de datos.

postgres=# SELECT * from pg_stat_database ;

datid | datname | numbackends | xact_commit | xact_rollback | blks_read | blks_hit | tup_returned | tup_fetched | tup_inserted | tup_updated | tup_deleted -------+-----------+-------------+-------------+---------------+-----------+----------+--------------+-------------+--------------+-------------+------------- 1 | template1 | 0 | 3612 | 0 | 2840 | 100341 | 935386 | 33760 | 0 | 0 | 0 11866 | template0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 11874 | postgres | 1 | 4859 | 0 | 1304 | 132667 | 1425972 | 38209 | 0 | 0 | 0 16385 | pgbench | 2 | 2978446 | 1 | 659578 | 82868995 | 41262336 | 11863286 | 3178023 | 8934189 | 0(4 rows)

pg_stat_user_tables: Información de uso de todas las tablas de usuario en una basede datos

pgbench=# SELECT * from pg_stat_user_tables ;

relid | schemaname | relname | seq_scan | seq_tup_read | idx_scan | idx_tup_fetch | n_tup_ins | n_tup_upd | n_tup_del | n_tup_hot_upd | n_live_tup | n_dead_tup | last_vacuum | last_autovacuum | last_analyze | last_autoanalyze -------+------------+------------------+----------+--------------+----------+---------------+-----------+-----------+-----------+---------------+------------+------------+-------------------------------+-------------------------------+-------------------------------+------------------------------- 16395 | public | pgbench_history | 0 | 0 | | | 3074221 | 0 | 0 | 0 | 283308 | 0 | 2011-01-29 12:31:54.208813+01 | | 2011-01-29 12:31:54.209202+01 | 2011-02-17 22:53:34.126245+01 16386 | public | pgbench_branches | 38821 | 62452 | 3042999 | 3042999 | 2 | 3074222 | 0 | 3072054 | 75 | 493 | 2011-02-17 22:51:12.172321+01 | 2011-02-17 22:53:27.711111+01 | 2011-01-29 12:31:53.945088+01 | 2011-02-17 22:53:27.748393+01 16389 | public | pgbench_tellers | 32474 | 621300 | 3043158 | 3043158 | 20 | 3074222 | 0 | 3052868 | 55 | 810 | 2011-02-17 22:51:12.175635+01 | 2011-02-17 22:53:27.870574+01 | 2011-01-29 12:31:53.946838+01 | 2011-02-17 22:53:27.871727+01 16392 | public | pgbench_accounts | 1 | 200000 | 6148444 | 6148444 | 200000 | 3074222 | 0 | 3033380 | 199999 | 10091 | 2011-01-29 12:31:54.049578+01 | 2011-01-29 12:59:29.982391+01 | 2011-01-29 12:31:54.204138+01 | 2011-02-17 22:53:31.476969+01(4 rows)

pg_stat_user_indexes: Información de uso de todos los índices de usuarios en unabase de datos

pgbench=# SELECT * from pg_stat_user_indexes ;

relid | indexrelid | schemaname | relname | indexrelname | idx_scan | idx_tup_read | idx_tup_fetch -------+------------+------------+------------------+-----------------------+----------+--------------+--------------- 16386 | 16399 | public | pgbench_branches | pgbench_branches_pkey | 3088826 | 10145852 | 2902404 16389 | 16401 | public | pgbench_tellers | pgbench_tellers_pkey | 3088985 | 24680003 | 2378762 16392 | 16403 | public | pgbench_accounts | pgbench_accounts_pkey | 6240098 | 6319966 | 6240098

pg_stat_user_functions: Información sobre estadísticas de uso de las funciones enuso.

pg_statio_user_tables: Información de acceso a disco y memoria cache de todas lastablas de usuario en una base de datos.

pgbench=# SELECT * from pg_statio_user_tables ;

relid | schemaname | relname | heap_blks_read | heap_blks_hit | idx_blks_read | idx_blks_hit | toast_blks_read | toast_blks_hit | tidx_blks_read | tidx_blks_hit -------+------------+------------------+----------------+---------------+---------------+--------------+-----------------+----------------+----------------+--------------- 16392 | public | pgbench_accounts | 547836 | 9289403 | 1361 | 19151376 | | | | 16395 | public | pgbench_history | 135074 | 3208010 | | | | | | 16386 | public | pgbench_branches | 7587 | 17015504 | 6 | 3138237 | | | | 16389 | public | pgbench_tellers | 7160 | 28805005 | 25 | 6021187 | | | | (4 rows)

Page 6: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 6/8

pg_statio_user_indexes: Información de acceso a disco y memoria cache de todos losíndices de usuario en una base de datos.

pgbench=# SELECT * from pg_statio_user_indexes ;

relid | indexrelid | schemaname | relname | indexrelname | idx_blks_read | idx_blks_hit -------+------------+------------+------------------+-----------------------+---------------+-------------- 16386 | 16399 | public | pgbench_branches | pgbench_branches_pkey | 6 | 3163169 16389 | 16401 | public | pgbench_tellers | pgbench_tellers_pkey | 25 | 6076626 16392 | 16403 | public | pgbench_accounts | pgbench_accounts_pkey | 1361 | 19301010(3 rows)

pg_stat_bgwriter: Información global sobre el proceso "background writer"

pgbench=# SELECT * from pg_stat_bgwriter ;

checkpoints_timed | checkpoints_req | buffers_checkpoint | buffers_clean | maxwritten_clean | buffers_backend | buffers_alloc -------------------+-----------------+--------------------+---------------+------------------+-----------------+--------------- 474 | 81 | 223942 | 554746 | 573 | 85369 | 555848(1 row)

Monitorización preventiva

Como hemos comentado al principio, este tipo de monitorización se utiliza para detectarinterrupciones de servicios, alertar sobre posibles problemas y crea gráficos contendencias y datos históricos sobre nuestros sistemas. Los dos programas de códigoabierto mas utilizados para este tipo de monitorización son:

Nagios: Se utiliza para detectar interrupciones de servicios y alertar sobre posiblesproblemas o situaciones que necesitan una atención especial por parte de losadministradores del sistema. Su instalación y configuración se escapa al objetivo deeste documento. Más adelante escribiremos un artículo sobre como utilizar Nagios.

Aquí teneis un ejemplo de una de la pantallas de este programa:

Munin: Se utiliza para crear gráficas históricas con las tendencias y uso de nuestrossistemas. Imprescindible para ver como nuestros sistemas se están utilizando en eltiempo y si existen tendencias en el uso que van a requerir nuestra intervención enel futuro. Su instalación y configuración se escapa al objetivo de este documento.Más adelante escribiremos un artículo sobre como utilizar Munin.

Aquí teneis algunos ejemplos de lo que se puede hacer con este programa:

Page 7: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 7/8

Más información

http://www.nagios.org/http://munin-monitoring.org/http://www.postgresql.org/docs/current/interactive/catalogs.htmlhttp://www.postgresql.org/docs/current/interactive/monitoring.htmlhttp://www.postgresql.org/docs/9.0/interactive/sql-set.htmlhttp://www.postgresql.org/docs/9.0/interactive/sql-alterdatabase.html

Page 8: Monitorización _ Www.postgresql.org

5/1/2015 Monitorización | www.postgresql.org.es

http://www.postgresql.org.es/node/582 8/8

administración articulos16556 lecturas

Por favor, para consultas y preguntas sobre problemas y errores sobre eltema, utilizar los foros de este servidor.

AUTOR: Rafael Martinez / PostgreSQL-es

Contenidos distribuidos bajo la Licencia Creative CommonsReconocimiento-NoComercial-CompartirIgual 2.5 cuando no se especifique lo contrario

© Copyright 2009-2013 PosgreSQL-es - Rafael Martinez - Condiciones de uso


Recommended