Re: duda sobre pgpool

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: raul andrez gutierrez alejo <raulandrez(at)gmail(dot)com>
Cc: POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: duda sobre pgpool
Date: 2015-07-13 15:26:03
Message-ID: 55A3D88B.8050802@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Raul, gracias por responder, me quieres decir que si las
actividades que están haciendo son muy grandes y consumen mucha memoria
compartida se demora en la liberación de memoria y puede ser la causa de
que aun esten en DISCARD ALL, ABORT en el estado "idle"? es decir esas
actividades no deja que pgpool desocupe la conexión del cliente y
postgres, te muestro el resultado de show pool_processes;

pool_pid | start_time | database | username
| create_time | pool_counter
----------+---------------------+-----------------------+------------------------+---------------------+--------------
13160 | 2015-07-13 10:42:11 | |
| |
2541 | 2015-07-10 17:51:31 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 09:41:41 | 1
12935 | 2015-07-13 09:57:25 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:03:41 | 1
1976 | 2015-07-10 16:09:52 | |
| |
1977 | 2015-07-10 16:09:52 | |
| |
1978 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:14:59 | 1
1979 | 2015-07-10 16:09:52 | |
| |
13445 | 2015-07-13 12:13:52 | |
| |
1981 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 09:42:22 | 2
13159 | 2015-07-13 10:42:11 | |
| |
1983 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:15:27 | 1
12936 | 2015-07-13 09:57:25 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:04:09 | 1
1985 | 2015-07-10 16:09:52 | |
| |
13067 | 2015-07-13 10:20:37 | |
| |
1987 | 2015-07-10 16:09:52 | |
| |
1988 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:14:59 | 2
1989 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:14:59 | 1
12869 | 2015-07-13 09:43:33 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:15:27 | 1
12866 | 2015-07-13 09:43:33 | |
| |
12864 | 2015-07-13 09:43:08 | |
| |
12870 | 2015-07-13 09:43:33 | |
| |
1994 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 09:41:10 | 1
1995 | 2015-07-10 16:09:52 | |
| |
12893 | 2015-07-13 09:51:11 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:15:37 | 1
12897 | 2015-07-13 09:52:14 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 09:54:42 | 1
13077 | 2015-07-13 10:24:29 | |
| |
13310 | 2015-07-13 11:32:49 | |
| |
2000 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 09:42:22 | 1
2001 | 2015-07-10 16:09:52 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 09:42:22 | 1
13194 | 2015-07-13 10:53:30 | postgres |
postgres | 2015-07-13 12:13:55 | 1
13131 | 2015-07-13 10:35:50 | |
| |
12990 | 2015-07-13 10:03:05 | db_documentacion_sdit |
usr_documentacion_sdit | 2015-07-13 10:14:27 | 4

y el resultado de la consulta:
select pid,state,xact_start,query_start,state_change,query from
pg_stat_activity;

pid | state | xact_start | query_start
| state_change | query

------+--------+-------------------------------+-------------------------------+-------------------------------+-------------------------------------------------
-----------------------------------
4351 | idle | | 2015-07-13
09:57:11.52977-03 | 2015-07-13 09:57:11.530004-03 | DISCARD ALL
4601 | idle | | 2015-07-13
10:21:36.21236-03 | 2015-07-13 10:21:36.212696-03 | DISCARD ALL
4184 | idle | | 2015-07-13
09:43:12.427339-03 | 2015-07-13 09:43:12.428155-03 | DISCARD ALL
4457 | idle | | 2015-07-13
10:06:24.988995-03 | 2015-07-13 10:06:24.98923-03 | DISCARD ALL
5936 | active | 2015-07-13 12:18:59.426768-03 | 2015-07-13
12:18:59.426768-03 | 2015-07-13 12:18:59.426775-03 | select
pid,state,xact_start,query_start,state_ch
ange,query from pg_stat_activity;
4193 | idle | | 2015-07-13
09:47:37.27413-03 | 2015-07-13 09:47:37.274514-03 | DISCARD ALL
4490 | idle | | 2015-07-13
10:06:16.192748-03 | 2015-07-13 10:06:16.19298-03 | DISCARD ALL
4203 | idle | | 2015-07-13
09:44:24.666702-03 | 2015-07-13 09:44:24.667234-03 | DISCARD ALL
4204 | idle | | 2015-07-13
09:44:24.714707-03 | 2015-07-13 09:44:24.714869-03 | DISCARD ALL
4205 | idle | | 2015-07-13
09:44:24.704854-03 | 2015-07-13 09:44:24.705512-03 | DISCARD ALL
4612 | idle | | 2015-07-13
10:28:10.681199-03 | 2015-07-13 10:28:10.681419-03 | ABORT
4613 | idle | | 2015-07-13
10:31:20.242776-03 | 2015-07-13 10:31:20.243073-03 | DISCARD ALL
4614 | idle | | 2015-07-13
10:17:02.001256-03 | 2015-07-13 10:17:02.001493-03 | DISCARD ALL
4618 | idle | | 2015-07-13
10:21:36.722948-03 | 2015-07-13 10:21:36.723194-03 | DISCARD ALL
4619 | idle | | 2015-07-13
10:17:29.934837-03 | 2015-07-13 10:17:29.93506-03 | DISCARD ALL
4624 | idle | | 2015-07-13
10:17:39.546724-03 | 2015-07-13 10:17:39.546923-03 | DISCARD ALL
(16 filas)

No pudiera ser una mala práctica de la app que no esta haciendo las
cosas como debería, de algo asi como no cerrar la transaccion o no
cerrar la conexion?

saludos

On 13/07/15 11:41, raul andrez gutierrez alejo wrote:
> Hola Anthony.
>
> Pgpool es un pool de conexiones y no es necesario que al llegar una
> conexión al pgpool, pgpool tenga que abrir una conexión a cada
> postgres y luego cerrarlas, las conexiones en pgpool y el postgres se
> mantiene abiertas, el único problema que eh notado de esto que si se
> envía un reporte muy pesado, el backend puede consumir hasta 1GB de
> memoria compartida y solo liberar esta memoria hasta que el pgpool
> cierre la conexión, pero si su aplicaciones hace consultas pequeñas y
> muy parecidas, el tener la información en la memoria compartida puede
> tener un muy buen rendimiento en el planificador y el motor.
>
> El parámetro client_idle_limit es para que pgpool cierre la conexión
> si un cliente del pgpool no cerro la conexión correctamente.
>
> Para tener el comportamiento esperado de cerrar el conexión entre
> postgres y el pgppol se debe configurar en los postgres el parámetro
> "tcp_keepalives_idle", yo lo tengo configurado en 7200(2horas).
>
> Para tener en cuenta el pg_stat_activity muestra la activadad del
> nodo, para ver la actividad en el pgpool seria "show pool_pools" mas
> info en http://www.pgpool.net/docs/latest/pgpool-en.html#show-commands
>
>
>
> El 13 de julio de 2015, 9:01, Anthony Sotolongo <asotolongo(at)gmail(dot)com
> <mailto:asotolongo(at)gmail(dot)com>> escribió:
>
> Estimados, tengo un pgpool configurado para acceder a 2 servidores
> PostgreSQL con streaming replication, y tengo estos valores en el
> pgpool.conf
>
> # - Life time -
>
> child_life_time = 300 # Pool
> exits after being idle for this many seconds
> child_max_connections = 0 # Pool exits after receiving that many
> connections
> # 0 means no exit
> connection_life_time = 420 # Connection
> to backend closes after being idle for this many seconds
> # 0 means no close
> client_idle_limit = 300 # Client
> is disconnected after being idle for that many seconds
> # (even inside an explicit transactions!)
> # 0 means no disconnection
>
>
> Tengo entendido que client_idle_limit desconectará los clientes
> idle luego de (300 seg en este caso)
> y que connection_life_time me desconectara de los backend de
> postgres luego de (420 seg en este caso)
> (no quieren decir que sean los mejores valores o los definitivos,
> estamos tratando de ajustarlos)
> Estamos tratando de ajustar los valores
>
> El tema está en que haciendo esta consulta a través del pgpool:
> select pid,state,xact_start,query_start,state_change,query from
> pg_stat_activity
>
> obtengo:
> 4351 | idle | | 2015-07-13
> 09:57:11.52977-03 | 2015-07-13 09:57:11.530004-03 <tel:530004-03>
> | DISCARD ALL
> 4601 | idle | | 2015-07-13
> 10:21:36.21236-03 | 2015-07-13 10:21:36.212696-03 | DISCARD ALL
> 4184 | idle | | 2015-07-13
> 09:43:12.427339-03 <tel:427339-03> | 2015-07-13 09:43:12.428155-03
> <tel:428155-03> | DISCARD ALL
> 4457 | idle | | 2015-07-13
> 10:06:24.988995-03 | 2015-07-13 10:06:24.98923-03 | DISCARD ALL
> 5032 | active | 2015-07-13 10:51:36.675985-03 <tel:675985-03> |
> 2015-07-13 10:51:36.675985-03 <tel:675985-03> | 2015-07-13
> 10:51:36.675992-03 <tel:675992-03> | select
> pid,state,xact_start,query_start,state_ch
> ange,query from pg_stat_activity
> : ;
> 4193 | idle | | 2015-07-13
> 09:47:37.27413-03 | 2015-07-13 09:47:37.274514-03 <tel:274514-03>
> | DISCARD ALL
> 4490 | idle | | 2015-07-13
> 10:06:16.192748-03 <tel:192748-03> | 2015-07-13 10:06:16.19298-03
> | DISCARD ALL
> 4203 | idle | | 2015-07-13
> 09:44:24.666702-03 <tel:666702-03> | 2015-07-13 09:44:24.667234-03
> <tel:667234-03> | DISCARD ALL
> 4204 | idle | | 2015-07-13
> 09:44:24.714707-03 | 2015-07-13 09:44:24.714869-03 | DISCARD ALL
> 4205 | idle | | 2015-07-13
> 09:44:24.704854-03 | 2015-07-13 09:44:24.705512-03 | DISCARD ALL
> 4612 | idle | | 2015-07-13
> 10:28:10.681199-03 <tel:681199-03> | 2015-07-13 10:28:10.681419-03
> <tel:681419-03> | ABORT
> 4613 | idle | | 2015-07-13
> 10:31:20.242776-03 <tel:242776-03> | 2015-07-13 10:31:20.243073-03
> <tel:243073-03> | DISCARD ALL
> 4614 | idle | | 2015-07-13
> 10:17:02.001256-03 | 2015-07-13 10:17:02.001493-03 | DISCARD ALL
> 4618 | idle | | 2015-07-13
> 10:21:36.722948-03 <tel:722948-03> | 2015-07-13 10:21:36.723194-03
> <tel:723194-03> | DISCARD ALL
> 4619 | idle | | 2015-07-13
> 10:17:29.934837-03 | 2015-07-13 10:17:29.93506-03 | DISCARD ALL
> 4624 | idle | | 2015-07-13
> 10:17:39.546724-03 <tel:546724-03> | 2015-07-13 10:17:39.546923-03
> <tel:546923-03> | DISCARD ALL
>
> La mayoria de las actividades ya pasaron los 300 seg e incluso los
> 420 seg de los parametros "client_idle_limit" y
> "connection_life_time" y están en estado "idle" y aun estan
> conectadas, será que no terminan aun sus querys (DISCARD ALL,
> ABORT, ect), o hay algo que no comprendo de los parametros del
> pgpool, pues ya paso tiempo y aun ocupan las conexiones
>
>
> La idea que necesitamos es que luego de un intervalo sin nada que
> hacer (estado "idle") se desconecte y desocupe la conex.
>
>
> Saludos y atentos a sus sugerencias.
>
> Anthony
>
>
>
>
>
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda
> (pgsql-es-ayuda(at)postgresql(dot)org <mailto:pgsql-es-ayuda(at)postgresql(dot)org>)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
>
>
>
> --
> Raul Andres Gutierrez Alejo

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message raul andrez gutierrez alejo 2015-07-13 15:44:45 Re: duda sobre pgpool
Previous Message raul andrez gutierrez alejo 2015-07-13 14:41:27 Re: duda sobre pgpool