Reklama
Nepřihlášený uživatel | Zaregistrovat se
 

Téma:

Počítače a Internet

Spravuje:

havran

Může vás zajímat



Reklama



MySQL je síce fajn ale keď chcete niečo viac skúste si PostgreSQL... Trapasov sa ušetríte navštívením nasledujúcich stránok - http://www.postgresql.org/idocs/ a http://techdocs.postgresql.org a http://postgresql.ok.cz.

100% of the current Core team members are white men.

https://postgresql.fund/blog/is-it-time-to-modernize-postgresql-core/

SJW hovada se serou už i do PG …
 
+1
arnost Snad zas nechci tak  moks
Cvičně jsme vytvořili testovací server z Dell Precision T5810 s Xeonem E5-1630 v3, 256 GB RAM, disk Intel® Optane™ SSD DC P4800X Series, 375GB, 2.5in PCIe x4, 3D XPoint™, 10 Gbit ethernet - a časy odezvy se zlepšily asi o 30 %, tedy nic moc.

Nevěděli byste někdo o specialistovi na Postgre, který by se nám na to podíval, co nás omezuje a jak to zrychlit? Dodavatel software ani náš správce linuxových strojů nám v tom už nepomůžou.
aloner ...zdalo se mi, ze se dokonce usmiva ... 
diky
maklf lžičky od heroinu vracejte obsluze 
z hlavy neco jako:

SELECT g.g, coalesce(count(v."id"),0)
FROM generate_series('2019-11-01'::date, ''2021-04-01'::date) g
LEFT JOIN visitations as v on g.g = date_trunc('month', v."date")
WHERE (('2019-11-01' LTE v."date") AND (v."date" LT '2021-04-01'))
GROUP BY g.g
ORDER BY g.g
aloner ...zdalo se mi, ze se dokonce usmiva ... 
Lze v Postgresu nejak upravit tento dotaz

#  LTE = less than or equal to

# LT = less than
SELECT date_trunc('month', v."date"), count(v."id") FROM "visitations" AS v
WHERE (('2019-11-01' LTE v."date") AND (v."date" LT '2021-04-01'))
GROUP BY date_trunc('month', v."date")
ORDER BY date_trunc('month', v."date");

aby vracel tabulku i s mesici kde neni zadne `id`, tj. aby vystup byl napr. jako je tabulka nize?
┌─────────────────────────┐

│ date_trunc │ count |
╞═════════════════════════╡
│ 2019-11-01 00:00:00+01 │ 55 │
│ 2019-12-01 00:00:00+01 │ 63 │
│ 2020-01-01 00:00:00+01 │ 44 │
│ 2020-02-01 00:00:00+01 │ 46 │
│ 2020-03-01 00:00:00+01 │ 0 │
│ ............ │ … │
│ 2021-03-01 00:00:00+02 │ 0 │
│ 2021-04-01 00:00:00+02 │ 0 │
└───────────────────┴─────┘
 
Kolik paměťi zkutecne pgsql používá
violetelephant グッバイ、ミスターティーポット 
ram nepomuze, spis presun na SSD, pokud to jeste nemate, pokud to mate na SSD, tak jedine optimalizace databaze ... indexy, optimalizace dotazu, atd.
BALCARENKO  
A limit 1000 je taky dost hodně...
arnost snad nechci tak   moks
Pripadne si na to (aspon na dopsani indexu) muzete nekoho najmout.
To by měl.
arnost snad nechci tak   moks
(Pripadne presunout data na rychlejsi uloziste)
arnost snad nechci tak   moks
Protoze to evidentne neni problem s pameti ci s vykonem, ale s io.

Dodavatel toho softu by mel analyzovat ty dlouhe dotazy a zjednat napravu, bud dopsanim chybejicich indexu, nebo jejich optimalizaci.
Máme tam log_min_duration_statement = 1000 a v logu je těch dlouhých dotazů požehnaně. :-(

Změna 4 -> 8 jader a 64 GB RAM -> 128 GB RAM ničemu nepomohla.

Nějací experti ho snad nějak tweakovali, ale jak moc a jak moc dobře nevím.
tweakovali jste postgresql.conf nebo je default?
arnost snad nechci tak   moks
zakladni pravidlo autovacua je: If it hurts, you’re not doing it often enough.

zkusil bych to vytunit podle rad zde:

https://www.2ndquadrant.com/en/blog/autovacuum-tuning-basics/

zapnul bych (pokud teni zapnuto) logovani slow queries

log_min_duration_statement = 100 v postgresql.conf

v dalsim sledu bych monitoroval io operace https://unix.stackexchange.com/questions/55212/how-can-i-monitor-disk-io
Každou noc se spouští VACUUM FULL ANALYZE VERBOSE. autovacuum nedělalo dobrotu, občas se spustilo uprostřed pracovní doby a všechny zablokovalo.

Upřesňuji systém:
VMware přiděluje 4 jádra a 64 GB RAM (plánujeme brzy dvojnásobek)
Běží tam Centos 7.6, Postgres 10.7, filesystém xfs.

Na jednu stranu tlačíme na vývojáře, aby optimalizovali dotazy a indexy, na druhou stranu chceme upgradovat hardware, aby nás nebrzdil.
arnost snad nechci tak   moks
Jinak teda nejcastejsi problem s performanci u postgresu je, ze neni zapnute autovacuum. Pred tim, nez se to zapne je dobre db vyvakuovat:

vacuum full;