Dobry den,
rad bych pozadal o radu v nasledujici situaci. Provozuji PostgreSQL verze 11 (posledni verze z repozitare
postgresql.org) + PostGIS pro zpracovani dat pro OpenStreetMap. Provedl jsem upgrade na novy HW, kde na starem stroji bylo 64GB RAM, na novem je 96GB RAM. Postgres jsem prenesl s identickym nastavenim (presun disku), PostGIS jsem upgradoval z 2.4 na verzi 2.5. Ulohy, ktere drive (tydny) bezely bez problemu najednou zacaly padat, v logu je videt problem s alokaci pameti. Pri kontrole se opravdu alokuje veskera dostupna pamet. Pri analyze se zpracovavaji data ruznych zemi (oblasti), problem je kupodivu s malymi zememi, velke funguji v poradku. Nakonec jsem dosel k tomu, ze query plan se pro funkcni a nefunkcni zeme lisi nasledovne:
dotaz je:
SELECT array_agg('N' || id::text) AS ids, ST_AsText(geom)
FROM nodes
WHERE tags - ARRAY['source', 'created_by', 'converted_by', 'attribution'] = ''::hstore
GROUP BY geom
HAVING ST_NPoints(ST_Union(geom)) = 1 AND count(*) > 1
EXPLAIN pro zemi, kde dojde pamet (at_karnten):
HashAggregate (cost=125155.44..126697.92 rows=53 width=96)
Group Key: geom
Filter: ((count(*) > 1) AND (st_npoints(st_union(geom)) = 1))
-> Gather (cost=1000.00..124594.23 rows=32069 width=40)
Workers Planned: 2
-> Parallel Seq Scan on nodes (cost=0.00..120387.33
rows=13362 width=40)
Filter: ((tags -
'{source,created_by,converted_by,attribution}'::text[]) = ''::hstore)
Pro zemi, kde funguje: (at_niederostereich)
GroupAggregate (cost=402538.17..409333.89 rows=166 width=96)
Group Key: geom
Filter: ((count(*) > 1) AND (st_npoints(st_union(geom)) = 1))
-> Sort (cost=402538.17..402787.58 rows=99761 width=40)
Sort Key: geom
-> Gather (cost=1000.00..394254.92 rows=99761 width=40)
Workers Planned: 2
-> Parallel Seq Scan on nodes (cost=0.00..383278.83
rows=41567 width=40)
Filter: ((tags -
'{source,created_by,converted_by,attribution}'::text[]) = ''::hstore)
Rozdil je tedy v provedeni sortu. Mohl by mi prosim nekdo poradit, jaka pamet se v ramci postgres pro tohle pouzije a ktere volby nastaveni tedy zkusit zkontrolovat resp. kde v dokumentaci hledat ohledne chovani pri sprave pameti, ktera se tohoto pripadu tyka?
Pokud pomohou jakekoliv dalsi informace, dejte prosim vedet.
Dekuji za pomoc
Tomas Kasparek.