Re: Urgente, postgres down

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: "Carlos T(dot) Groero Carmona" <ctonetg(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Enrique Kurth Schoenfeld Escobar <ekurth(at)live(dot)com(dot)mx>, Francisco Olarte <folarte(at)peoplecall(dot)com>, Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Urgente, postgres down
Date: 2019-02-16 04:12:22
Message-ID: 54b6502d-2b35-458a-7b5e-466d42d1b2be@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Se me olvido incluir otra cosa.

si quieres pruebes instalar este programa. ( yo lo uso ).

https://github.com/ankane/dexter

Es para crear indices, sin el flag --create simplemente te sugiere crear
indice A o B.. no pilla todos los indices en una base pero es mejor que
nada.

On 16/02/2019 3:05 PM, Carlos T. Groero Carmona wrote:
> Horacio, hay algo con lo que pueda ayudar para seguir mas de serca el
> comportamiento de esta situacion especificamente en mi base de datos?
>
> Aprovecho para comentarle que hoy tuve que detener nuevamente mi
> autovacuum deamon, al rededor de las 8 empezaron a ver ciertos picos
> en New Relic en el tiempo de respuesta del sistema, alrededor de las
> 9am fue constante y el sistema no se recuperaba asi que tuve que deter
> el autovacuum por unas 4 horas y despues lo volvi a poner, paso lo
> mismo el sabado pasado.
>
> Adjunto algunas imagenes de NewRelic y el resultado de sar en ese
> horario...
> CPU %user %nice %system %iowait%steal %idle
>
> 08:20:01 AM all 55.990.00 24.232.630.00 17.15
>
> 08:30:01 AM all 54.520.00 23.453.030.00 19.00
>
> 08:40:01 AM all 53.410.00 23.182.910.00 20.51
>
> 08:50:01 AM all 49.470.00 22.113.280.00 25.14
>
> 09:00:01 AM all 51.370.00 23.932.760.00 21.93
>
> 09:10:01 AM all 54.620.00 23.473.110.00 18.80
>
> 09:20:01 AM all 59.900.00 24.902.220.00 12.98
>
> 09:30:01 AM all 56.020.00 24.092.870.00 17.02
>
> 09:40:01 AM all 51.980.00 22.743.220.00 22.06
>
> 09:50:01 AM all 46.690.00 20.663.030.00 29.62
>
> 10:00:01 AM all 46.020.00 20.512.790.00 30.69
>
>
> Sobre el vacuumdb -F -a le comento que antes de ejecutarlo modifique
> pg_database para que template0 aceptara coneciones que se realizo el
> vacuum en todas las base de datos incluyendo template0.
>
>
> en el entorno de pre-produccion no fui tan agresivo, solo me conecte a
> template0 y realice un vacuum freeze analyze verbose; y se realizo
> satisfacotoriamente, no puso el XID en cero, pero si lo llevo a un
> valor casi cero.
>
>
> Asi es como tengo pensado ejecutarlo en produccion porque la base de
> datos es de 2TB y he autovacuum no ha podido realizar su trabajo
> correctamente por lo que hay mucho trabajo que realizar ahi por vacuum
> asi que solo voy a realizar vacuum freeze analyze verborse; en todas
> las base de datos menos en la de produccion.
>
>
> El XID de mi base de datos principal crece cada 30min aproximadamente
> en 1.7millones, tengo un cron job ejecutando la consulta y guardandolo
> en un log. El crecimiento diario de mi base de datos es de
> aproximadamente 5GB diarios, aunque al final del mes eliminamos las
> tablas particionadas por meses que han estado salvadas por mas de 13
> meses, recuperando alrededor de 40GB, entonces mi base de datos crece
> aproximadamente en 110GB al mes, ah...solo manejamos texto.
>
>
> Actualmente solo uso pgBadger para analyzar los logs y me encuentro en
> la face inicial de instalar los plugings de NewRelic para monitoriar
> las base de datos, aunque eso sera un procesolargo, ues primero sera
> probado en 3 o 4 servidores diferentes antes de llegar a produccion.
>
>
>
> Digame si hay algo mas que quiera saber o quiera probar para llegar a
> un entorno mas sercano sobre lo que esta sucediendo.
>
>
> On Fri, Feb 15, 2019 at 4:12 PM Alvaro Herrera
> <alvherre(at)alvh(dot)no-ip(dot)org <mailto:alvherre(at)alvh(dot)no-ip(dot)org>> wrote:
>
> On 2019-Feb-16, Horacio Miranda wrote:
>
> > Creo que es cosa de ejecutar la consulta:
> > SELECT
> >       datname,
> >       max(age(datfrozenxid)),
> >       round(max(age(datfrozenxid)) / 2100000000.0 * 100.0, 3) AS
> percentage_transaction_ids_used
> > FROM pg_database
> > -- where datallowconn = true
> > group by datname
> > order by 2 desc;
> >
> > y Luego el vacuumdb -F -a  ( -F es freeze y -a en todas las
> bases de datos ), el template0 no debe liberarse y las demás en mi
> caso el valor no cambio ) solo cuando abro el template0 es que el
> numero se va a cero.
>
> No recomiendo esto en una instancia con 7 TB de datos en total.  Es
> mejor dejar que autovacuum haga su trabajo.
>
> --
> Álvaro Herrera       Niebla, Chile
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos T. Groero Carmona 2019-02-17 08:07:21 Re: Urgente, postgres down
Previous Message Horacio Miranda 2019-02-16 04:06:26 Re: Urgente, postgres down