abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    dnes 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 4
    včera 23:11 | Bezpečnostní upozornění

    Intel vydal 41 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20240514 mikrokódů pro své procesory řešící INTEL-SA-01051, INTEL-SA-01052 a INTEL-SA-01036.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | IT novinky

    Společnost Raspberry Pi patřící nadaci Raspberry Pi chystá IPO a vstup na Londýnskou burzu.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | IT novinky

    Google na své vývojářské konferenci Google I/O 2024 představil řadu novinek. Keynote byl věnován umělé inteligenci (DeepMind, Gemini, Responsible AI).

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Bezpečnostní upozornění

    V Gitu bylo nalezeno 5 zranitelností. Opraveny jsou ve verzích 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 a 2.39.4. Útočník může připravit repozitář tak, že při jeho klonování (git clone) může dojít ke spuštění libovolného kódu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | IT novinky

    Virtualizační softwary VMware Workstation Pro a VMware Fusion Pro jsou nově pro osobní použití zdarma. Softwary VMware Workstation Player a VMware Fusion Player končí.

    Ladislav Hagara | Komentářů: 2
    včera 02:11 | Nová verze

    Linuxová distribuce Endless OS (Wikipedie) byla vydána ve verzi 6.0.0. Přehled novinek i s náhledy v příspěvku na blogu, poznámkách k vydání a také na YouTube.

    Ladislav Hagara | Komentářů: 1
    14.5. 15:44 | Nová verze

    Byl vydán Mozilla Firefox 126.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vylepšena byla funkce "Zkopírovat odkaz bez sledovacích prvků". Přidána byla podpora zstd (Zstandard). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 126 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (74%)
     (6%)
     (10%)
     (10%)
    Celkem 286 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Súborový systém pre PostgreSQL 14

    4.7.2022 12:47 | Přečteno: 2397× | linux | poslední úprava: 6.7.2022 09:46

    Chystáme sa nasadzovať nový databázový server PostgreSQL (v14.2) a potreboval som pre neho vybrať súborový systém.

    Server dorazil minulý týždeň a po prvotnej inštalácii som začal premýšľať, akým spôsobom súborové systémy vlastne otestovať. Prístup z predošlého článku nevyhovoval, pretože v prípade databázy ide o úplne inú záťaž než file storage. Výsledky dnešného testu túto obavu v plnej miere podporili, ale nepredbiehajme.

    Testovací postup

    Testoval som takto: nad SW RAID1 z linuxového jadra som najprv vytvoril súborový systém. Ten som pripojil (mount) do adresára /var/lib/postgres a nechal balíčkovací systém (gentoo portage) nakonfigurovať balíček dev-db/postgresql. Všetky parametre som nechal na východzích hodnotách, s týmito výnimkami:

    Takto inicializovanú databázu som spustil a následne do nej importoval zálohu našich interných dát, aby som odmeral rýchlosť importu, až budem server migrovať. Týmto som dostal údaj o počte sekúnd, kde nižšie číslo predstavuje lepší výsledok. Potom prišiel na rad pgbench. V prvej fáze som meral rýchlosť inicializácie s faktorom 10000 (tzn. miliarda riadkov v tabuľke pgbench_accounts). Výsledkom je opäť číslo, počet sekúnd, kde nižšie je lepšie.

    pgbench -i pgbench -s 10000 -U postgres

    Nakoniec som spustil pgbench s tridsiatimi dvoma klientami po dobu dvoch minút a meral jednak výkon v TPS (Transactions per second, vyššie číslo je lepší výsledok) a priemernú latenciu v milisekundách (nižšia je lepšia).

    pgbench -c 32 -j 32 -n -T 120 -r pgbench -U postgres

    Tabuľka s výsledkami

    Tentoraz nie je potrebné jednotlivým testom dávať váhy, pretože výsledok je beztak očividný. Ako predtým, najlepší a najhorší výsledok majú svoju farbu, výsledky medzi tým sú rozdelené na tie, ktoré sú lepšie než medián a tie, ktoré sú horšie.

     

    Update z dňa 6.7.2022: pridaný riadok btrfs+nocow

     

    Tentoraz sa nebudem snažiť komentovať všetko, napíšem len to, čo určite stojí za zmienku.

    xfs

    Súborový systém, ktorý som minule chcel hodiť do koša, tentoraz spravil suverénny comeback. Xfs si viedol vo všetkých týchto testoch najlepšie, i keď niekde len marginálne. Pre PostgreSQL 14 sa xfs javí ako ideálny súborový systém.

    btrfs

    Naopak, šampión z minula úplne prepadol. PostgreSQL implementuje vlastný copy-on-write, takže keď sa skĺbi so súborovým systémom, ktorý tiež má copy-on-write, výsledkom je copy-on-write na druhú, so všetkými negatívami takejto dupľovanej operácie. Tu sa ukazuje, aké dôležité je poznať svoju záťaž a zohľadniť ju pri výbere súborového systému.

    Update z dňa 6.7.2022: v diskusii som bol upozornený, že existuje atribút chattr +C, ktorý potláča copy-on-write. Tento parameter na testy importu a inicializácie pgbench nemal príliš vplyv, ale TPS a priemernú latenciu dokázal oproti východzím hodnotám podstatne zlepšiť. Napriek tomu, btrfs pre účely PostgreSQL 14 zostáva aj s "nocow" výkonnostne v tej horšej polovici súborových systémov.

    nilfs2

    Logovací súborový systém Nilfs2, ktorý minule naznačoval určitý prísľub, nezvládol opakované prepisy. Časté zmeny, ktoré si databázová záťaž vyžaduje, čoskoro zaplnili celý disk a nilfs2 v jednom momente jednoducho nechal databázu spadnúť s tým, že požadovaný zápis už nevykoná. Bol schopný dokončiť aspoň úvodný import, ale aj v tom bol významne pomalší než všetky ostatné súborové systémy. Očakávam, že ak by bol schopný tento test dokončiť, bol by v ňom ešte pomalší než btrfs.

    ext4

    Tak ako minule, aj tento test ukázal vyváženosť a všestrannosť súborového systému ext4. Ak aj v niečom nie je najrýchlejší, väčšinou výkonom nie je od toho najlepšieho ďaleko. Nemá výrazné slabiny, nerobí mu problém databáza, ani úložisko súborov. Ak nad tým nechcete premýšľať a nebojíte sa bit rot-u, ext4 zostáva dobrou východzou voľbou.

    V ďalšom dieli uvidíte...

    Najbližšie pre Vás chystám test key-value databáz. Okrem tradičných DB4, gdbm, Memcached, či Redisu, sa pokúsime na účely key-value úložiska ohnúť aj SQLite, MongoDB, či MariaDB. Už teraz je zaručené, že zase niekomu stúpim na otlak.

     

     

     

     

     

    Použitý hardvér

    Lenovo ThinkSystem SR630 v konfigurácii:

    Použitý softvér

    Čistá inštalácia Gentoo linux s týmito verziami relevantných balíčkov:

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Max avatar 4.7.2022 13:03 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Zajímavá snaha. Pokud ale chceš dělat test pro konkrétní nasazení, tak default options je to, co člověk nechce a tím pádem takový test nemá smysl.
    Každopádně můj názor je takový, že kdo nechce, nebo nemůže použít btrfs, ten by měl použít XFS. Ostatní FS pak patří do archivu.
    Zdar Max
    Měl jsem sen ... :(
    AraxoN avatar 4.7.2022 13:34 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Existuje v prípade btrfs spôsob, ako ho vyladiť pre postgres? Môžem to ešte skúsiť a doplniť...
    Max avatar 4.7.2022 15:25 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Myslím, že nodatacow se dá u btrfs použít nad určitou složkou s daty. Na zbytek FS pak bude CoW + snapshoty půjdou dělat také (četl jsem, že se jednorázově provede při tvorbě snapshotu CoW), tím pádem by výkonnostní impact neměl být tak velký a některé výhody btrfs stále ještě budou s nodatacow fungovat.
    Zdar Max
    Měl jsem sen ... :(
    Max avatar 4.7.2022 15:28 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Ještě doplním, že nejlépe by ti asi odpověděl Heron. A to nemyslím jen ohledně btrfs, ale i ohledně jiných fs ve spolupráci s Postrgresem.
    Zdar Max
    Měl jsem sen ... :(
    AraxoN avatar 4.7.2022 21:02 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    To znie rozumne, vyskúšam to a doplním do blogu.
    4.7.2022 15:28 a1bert | skóre: 23
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    chattr +C
    AraxoN avatar 6.7.2022 09:56 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Doplnil som aj test btrfs+nocow, ale naďalej to pre btrfs nevyzerá priaznivo.
    4.7.2022 15:41 Zaphod | skóre: 37 | blog: zaphod_blog
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Pozri na testy. Dobrý, aj keď starší test.
    4.7.2022 17:42 čavo | skóre: 14
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Z iného súdka. Doporučoval by som hneď tam dať Postgresql 14.4, od 14.0, po 14.3 je tam chyba v generovaní indexov.

    https://www.postgresql.org/about/news/postgresql-144-released-2470/

    https://www.migops.com/blog/important-postgresql-14-update-to-avoid-silent-corruption-of-indexes/
    AraxoN avatar 4.7.2022 21:15 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Vďaka za upozornenie. Po zbežnom preskúmaní to chápem tak, že problém je len pri budovaní indexu za použitia kľúčového slova "CONCURRENTLY". To nie je náš prípad.

    PostgreSQL 14.4 je zatiaľ v Gentoo len v stave testing, nie stable. V ostrom nasadení mi ide predovšetkým o stabilitu, takže ak by to bolo nutné, radšej by som išiel do 13.x, než do testing balíčka. Ale zdá sa, že nás sa tento bug netýka.
    4.7.2022 22:55 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14

    Sorry ze kibicuju, ale podle me je ten test k nicemu. Teda takhle, je dobry pro toho, kdo provozuje defaultne nastavenou postgres databazi a dela presne to, co pgbench. Jenze ten fakt nepotrebuje resit filesystem ...

    Co tim chci rict - vykonnost postgres je strasne zavisla na tom, co s nim planuju delat a jak ho nakonfiguruji. Teprve pak ma vubec smysl resit filesystem pod nim. Spravnou konfiguraci se da vykonnost (nekdy) ovlivnit i nasobne bez ohledu na to, co pod nim bezi...
    AraxoN avatar 5.7.2022 09:13 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Tak samozrejme, že do ostrého nasadenia ešte pár parametrov upravím. Ale dovolím si namietať, že test nie je k ničomu. Minimálne z neho vidno, že výber súborového systému má vplyv (aj) na výkonnosť PostgreSQL. Samozrejme, na rôznu záťaž ten vplyv bude rôzne veľký, ale nečakám, že by sa od trendov v tomto teste líšil diametrálne.
    5.7.2022 14:36 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    No to prave klidne bude diametralni. Protoze hrozne bude zalezet na pomeru realneho hrabani na disk, a zda jen cteni nebo zapisu. Uplne v klidu to pro produkcni nasazeni vyhraje jiny filesystem.
    6.7.2022 22:20
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Tak tady se testuje worst case - tj. vzdy hodne zapisu a hodne cteni a to oboji naraz. Takze produkce neprodukce, tenhle test ukaze "kam az" se (jakakoliv) produkce dostane pokud tam vyvojari najednou pridaji nejaky chat ci notifikace ci logovani atd.

    Proto se tenhle blog nejmenuje "chovani postgres v produkci nad ruznymi fs", nybr "test fs pro postgres".
    6.7.2022 23:03 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    ... tenhle test ukaze "kam az" se (jakakoliv) produkce dostane pokud tam vyvojari najednou pridaji nejaky chat ci notifikace ci logovani atd.

    Sorry, tohle a i zbytek proste neni pravda. Pokud nekdo potrebuje resit postgres na produkci na urovni filesystemu (absolutni marginal gains), tak ...

    1. uz davno ma dobre nastavene table spaces
    2. ma dobre nastavene cache a hit rates
    3. ma vyreseny clustering dat
    4. ... (sorry, jsem linej dalsi parametry a techniky)

    Jinymi slovy uz vyresil veci, kterymi muze z postgres dostat nasobky vykonu. Pak muze zacit dumat nad filesystemem pro tech poslednich par procent vykonu v zavislosti treba na tablespace a jeho typickem pouziti (jiny pro index a jiny pro masivni zapis). A ten konkretni nejlepsi filesystem muze zrovna v obecnych testech byt horsi.

    Protoze pro obecne pouziti nedava vubec smysl s necim takovym jako specialni filesystem sachovat. Tam at si vybere admin co je mu nejblizsi a bude se nejlepe spravovat. To prevazi uplne vsechny ostatni aspekty.

    7.7.2022 10:34
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Ano, to co pises plati pro specialni pripad provozu PostreSQL kdy jsou splneny obe nasledujici podminky:

    1. mam jednu (ano, jednu) aplikaci (nebo soubor vzajemne velmi podobnych aplikaci)

    2. tato aplikace je svym I/O chovanim docela uzce zamerena

    A ano, mnohe produkcni systemy to takhle maji (tzn. jedou mnoho ruzne nastavenych instanci PostgreSQL - kazdou pro jinou aplikaci). Ale osobne znam vetsi mnozstvi produkcnich systemu, kdy tyto obe podminky nejsou splneny a jede se jedna instance PostgreSQL a ta musi resit worst case.
    7.7.2022 12:07 MP
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    The Worst case ale v drtive vetsine neni vykon fs jako takoveho, ale uzke hrdlo jsou vetsinou disky nebo nastaveni db neodpovidajici provozovane aplikaci (za coz casto muzou vyvojari)...
    7.7.2022 13:17 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Bingo, skvele jsi popsal pripady, kdy ma smysl resit filesystem pod Postgres, protoze zdimu posledni procenta vykonu pro specialni uziti. (a ve kterych ma smysl sit na miri filesystem designovane zatezi)

    V jinem pripade filesystem smysl resit nema (ostatni aspekty provozu filesystemu prevazuji nad jeho teoreticky marginalne lepsi vykonnosti), tedy test nedava smysl. A je jen takovym teoretickym cvicenim. Protoze rozumny admin si na server soupne neco, co dobre umi (on a jeho team) a zapada do zbytku ekosystemu...
    7.7.2022 15:03 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Pro všechny syntetické testy platí, že jimi generovaná zátěž téměř nepodobá skutečné zátěži. Přesto mají svůj smysl.

    Namátkou - výkonnostní porovnání hw, případně verzí Postgresu. Normalizovaná zátěž docela dost pomáhá s identifikací hrdel. Nastavuje měřítka, kterých se můžete chytit.

    U mého posledního nejmenovaného zákazníka kvůli neoptimálně nastavené virtualizaci docházelo ke kolapsu výkonu IO. Díky pgbenchi šlo docela jednoduše porovnat výkon v různých konfiguracích. Pro vlastní aplikaci zákazník ani neměl podobný test. Syntetické testy nemá cenu přeceňovat, ale nemá cenu je také úplně zatracovat. Pomocí syntetických testů můžete jednoduše simulovat a sledovat chování systému při hraničních situací. V praxi opravdu nebudu chtít, aby se mi systém vůbec do takovéto situace dostal. Nicméně dostat se vám tam může - a pak může být výhodou, když podobnou situaci máte otestovanou, a víte, že to Váš systém ještě dává.

    V praxi se vám může pseudo náhodně spustit VACUUM FREEZE nad velkou tabulkou - a pak máte i v reálném provozu zátěž hodně podobnou tomu, co vygeneruje pgbench.
    8.7.2022 14:12 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Az na to, ze ty pises o obecnem smyslu syntetickych testu, o testovani Postgres atd. V tom bych toho moc nerozporoval.

    Jenze autor si timhle syntetickym testem vybira filesystem pro Postgres. Viz:

    Chystáme sa nasadzovať nový databázový server PostgreSQL (v14.2) a potreboval som pre neho vybrať súborový systém.
    A tam uz plati, to co jsem napsal vyse - cely tenhle test nedava vubec smysl. Pro realne nasazeni s potrebou zdimat filesystem muze byt vsechno uplne jinak dle daneho uziti (jinymi slovy - tenhle test o nem nerika vubec nic). A pokud potreba zdimat Postgres na absolutni hranu neni, tak vubec nema smysl tohle testovat - nasadit se ma filesystem podle uplne jinych kriterii nez marginal gains Postgres/filesystem.
    8.7.2022 15:19 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Jasně, ale když není čeho se chytit, tak se snažíš chytit alespoň něčeho. Minimálně ti to může dát signál, že někde něco smrdí. Napsat dobrý test je dost pracné, a čím ten test je komplexnější a věrohodnější, tak je pracnější ho interpretovat. Navíc ty výsledky závisí na kontextu. Pokud se ten test nezopakuje na jiném železe, tak se nedá z jistotou říct nakolik ten výsledek platí pro konkrétní železo a nakolik je obecný. Je fakt, že asi kdybych chtěl otestovat filesystém, tak sáhnu po specializovaném benchmarku jako bonie++, ale stejně může mít smysl pgbench, který specificky při write vynucuje fsync. Dost lidí ani netuší, jak funguje databáze, a těžko by něco nějak simulovali.
    9.7.2022 22:22 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    No k cemu je dobre se chytat neceho co je uplne nevypovidajici pro moje uziti nevim... Tak mozna aby me to vic zmatlo, az budu resit realny problem:)

    Promin, porad popisujes obecnou realitu nejakych syntetickych testu, ale unika ti to hlavni - autor si myslel, ze udelal test na vyber vhodneho filesystemu pro Postgres. Neudelal. Ten test neni dobry. Neni vypovidajici. Nemel by si podle nej vybrat filesystem. Neplni to, co si stanovil jako vstupni podminku (neodpovida na to, ktery filesystem je vhodny) Proc? To uz bych se opakoval...
    AraxoN avatar 11.7.2022 07:27 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Počuj, čo keby si prestal hovoriť mojím menom? Test splnil podmienky, ktoré som na neho kládol. Ukázalo sa, že pre univerzálne použitie je naďalej najlepšou voľbou ext4. Aká bude v budúcnosti záťaž na databázový server vie len Pán Boh, takže pgbench mi príde ako dostatočná aproximácia.

    Keď so mnou nesúhlasíš, napíš vlastný blog. Navrhni vlastnú metodiku, ukáž nám ju. Doteraz som sa od Teba nedozvedel nič prínosné. Nič v zlom, ale toto nikam nevedie.
    11.7.2022 17:16 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Sorry, ale ja nemluvim tvym jmenem - to nevim kdes sebral. Nic takoveho jsem ani naznakem neudelal. Jen kritizuji to co jsi sepsal, protoze - viz vyse - ten test neplni to, co jsi myslel ze plni.

    Pokud jsi kritiku nepochopil a nic noveho ses nedozvedel, je mi to sice lito, ale neumim s tim nic lepsiho udelat. Zduvodneni je tam nekolikrat. Klic lezi v tom, ze chyba neni v metodice testu, ale rovnou ve tve prvotni uvaze o zpusobu jak vybrat optimalni filesystem pro Postgres.

    Chapu, ze se te kritika dotkla, ale tak to holt v diskuzich chodi. Nebyla nijak podla ani sprosta. I proto nevidim duvod, proc bych mel psat vlastni blog, kdyz v tom tvem je napsany nesmysl.
    5.7.2022 16:09 Margzen
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Vždyť i postgresí initdb řve, že na btrfs musíš na jeho data dir nastavit chattr +C, jinak to bude katastrofa.
    AraxoN avatar 6.7.2022 10:11 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    initdb řve
    Zjavne nie dosť nahlas! :-D

    Ale vážne, nikde to tam nevidím. Nič také mi initdb nepíše:
    postgres@hades ~ $ initdb -D ~/14/data -E UTF8
    The files belonging to this database system will be owned by user "postgres".
    This user must also own the server process.
    
    The database cluster will be initialized with locale "C.UTF8".
    The default text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    creating directory /var/lib/postgresql/14/data ... ok
    creating subdirectories ... ok
    selecting dynamic shared memory implementation ... posix
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting default time zone ... Europe/Prague
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    initdb: warning: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.
    
    Success. You can now start the database server using:
    
        pg_ctl -D /var/lib/postgresql/14/data -l logfile start
    5.7.2022 18:04 Boo
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Niekde som cital ze XFS v kombinacii s Postgresom moze dojst k strate dat pre nestandardny handling fsync. Takze radsej chod na istotu s ext4
    AraxoN avatar 6.7.2022 10:00 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Ja sa tiež kloním skôr k ext4 ako konzervatívnej, rokmi oskúšanej voľbe. XFS sľubuje len marginálne zisky, ale potenciálne nepredvídané problémy.
    6.7.2022 14:38 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Zajímavost: PureStorage dopočuruje XFS na jejich FlashArray (byť na druhém místě ext4 taky).

    Osobně mi XFS přijde jako asi konzervativnější volba než ext4...
    Max avatar 6.7.2022 17:18 Max | skóre: 72 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Těžko může být konzervativnější volba, když XFS patří mezi tři nejvyvíjenější filesystémy současnosti, kam padá od Redhatu hafec změn.
    Největší vývoj je kolem btrfs, zfs on linux a xfs.
    Např. reflink přišel do xfs s kernelem 4.9, taktéž se čas od času mění formát fs, aktuálně je ve verzi 5 (přinesl např. XFS Self Describing Metadata).
    Zdar Max
    Měl jsem sen ... :(
    5.7.2022 19:52 jemi 15nact
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    offtopic ale mam takovej filozofickej dotaz kdyz mate cisty kernel jak na tom neco zkompilujete? nemate cc, gcc a podobne a nemuzete je nainstalovat protoze nemate to udelatko. Neni to paradox vejce slepice?
    6.7.2022 07:41 Metuselach
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Neni. Prvni prekladac se naderoval rucne v strojaku na derne stitky a pak to uz byla evoluce.
    6.7.2022 14:33 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    offtopic ale mam takovej filozofickej dotaz kdyz mate cisty kernel jak na tom neco zkompilujete? nemate cc, gcc a podobne a nemuzete je nainstalovat protoze nemate to udelatko. Neni to paradox vejce slepice?
    Bootstrapping
    cbrpnk avatar 5.7.2022 23:43 cbrpnk | skóre: 8 | blog: bl0gium
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    chyba mi tam test iba v RAM nad tmpfs :-D
    AraxoN avatar 6.7.2022 07:46 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Bohužiaľ, databáza v tomto prípade je väčšia než RAM.
    AraxoN avatar 11.7.2022 07:49 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Koho by to zaujímalo, celý týždeň som skúšal rôzne kombinácie nastavení za účelom zvýšenia dosiahnutých čísel. Nakoniec som dospel k tejto sade, ktorá vykazovala najlepšie zlepšenie vo všetkých týchto testovaných hodnotách na tomto konkrétnom serveri so 128GB RAM a 2x SAS SSD:
    # pre 2x SAS SSD
    effective_io_concurrency = 4
    random_page_cost = 1
    
    # pre 128GB RAM
    effective_cache_size = 64GB
    shared_buffers = 32GB
    Zmeny ostatných parametrov (work_mem, maintenance_work_mem, ...), prinajmenšom v týchto testoch, výkon skôr zhoršovali.

    S touto kombináciou som dosiahol zrýchlenie okolo 4% pri importe a pgbench init a 16% v TPS a avg. latency. Rozhodne som výberom správneho súborového systému získal viac výkonu, než ladením parametrov.

    To ukazuje, že východzie hodnoty sú nastavené veľmi dobre.
    11.7.2022 09:36 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    To, co se vám tady někteří opakovaně pokoušejí říct, je, že jste výběrem správného souborového systému získal víc výkonu pro pgbench. O tom, jestli jste získal víc výkonu pro tu aplikaci, která vám tam bude běžet, pořád nevíte vůbec nic.
    Quando omni flunkus moritati
    AraxoN avatar 11.7.2022 10:21 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Ten databázový server nie je len pre jednu aplikáciu. Staršie aplikácie končia, nové sa nasadzujú, naozaj je vo hviezdach, čo bude o pol roka. Pgbench je nejaký mix, ktorý má aspoň tú výhodu, že je opakovateľný a nemenný, takže to je jediný pevný bod, o ktorý sa dá oprieť.
    11.7.2022 15:38 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Tak zrovna tyhle hodnoty bych do produkce nedával (mohou zafungovat s pgbenchem). random_page_cost by mělo být vždy větší než seq_page_cost, a pokud máte shared_buffers větší než 10-15GB tak je dobré zvýšit agresivitu background writeru. Pro reálnou aplikaci - pgbench generuje jenom jednoduché selecty a jednoduché updates je potřeba si pohrát s nastavením work_mem, a samozřejmě mít všude indexy, kde jsou potřeba - dost pomůže extenze pg_stat_statements - podívejte se na prováděcí plány častých nebo pomalých dotazů.

    U reálné aplikace, která pouští joiny, agregace, sorty (nic z toho pgbench nedělá) vám mnohem víc pomůže nastavení work_mem, a správné indexy než cokoliv jiného.
    AraxoN avatar 12.7.2022 07:45 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Indexy samozrejme sú, pomalé dotazy logujeme a spracovávame cez pgfouine. Nastavenia našich postgresových serverov ladím podľa svojich poznámok z P2D2 (aj z Vašich prednášok).

    Toto je prvýkrát, čo som na to mal dosť času a robil pred nasadením aj nejaké syntetické testy. Trochu ma prekvapilo, že na pgbench nemali veci ako maintenance_work_mem vplyv, ale vďaka Vašej odpovedi konečne aspoň tuším prečo.

    Idem z pgfouine povyťahovať nejaké najobludnejšie dotazy z reálnej prevádzky a prehnať ich cez rôzne nastavenia. Bohužiaľ, čas sa mi kráti a čoskoro to potrebujem dať do produkcie.
    AraxoN avatar 12.7.2022 07:56 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    pardon, nie pgfouine, teraz tam máme pgbadger...
    12.7.2022 08:21 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Doporučuji udělat základní nastavení max_connection, work_mem, maintainance_work_mem, možná effective_cache_size, a pokud máte ssd, tak zredukovat random_page_cost. Zbytek pak doladit podle provozu, nebo pokud by se vyskytlo něco fatálního. Provoz databáze je dost dynamický systém - rychlost dotazů ovlivňuje i souběh dotazů, obsah cache, a mám zkušenost, že Postgres není až tak moc citlivý na konfiguraci. Důležité je aby VACUUM vakuovalo, a ANALYZE analyzovalo, a ty indexy. Na větších datech dost často chybějí vícesloupcové indexy. A to vypadne z toho reálného provozu. A pokud se vám podaří redukovat zbytečnou zátěž, tak většinou pak máte dost výkonu na cokoliv.

    Syntetickým testům se rozhodně nebráním - mohou vám pomoct identifikovat problémy s hw, a zahořet hw. Pro finální tuning už pak nemají smysl. Předprodukční konfiguraci také moc neřeším. Databáze se dost mění - za rok někde máte 2x tolik dat, a trochu jiný typ provozu, a za 2 roky zas třeba jiné železo. Co pokládám za nejdůležitější je doladění během prvních pár dnů (týdnů) produkce, kdy už jsou vidět skutečná hrdla - je nutné přidat pár indexů, přepsat pár dotazů, a pak už to většinou jede parádně.
    AraxoN avatar 12.7.2022 08:46 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    V tomto prípade ide o upgrade PG servera, takže indexy a dotazy v nejakej ako-tak optimálnej forme už fungujú. Nový server sa stane masterom, z pôvodného master sa stane nový standby, starý standby poslúži ako nový devel a starý devel sa vyradí. Takto servery priebežne otáčame každých pár rokov, len predtým som na to nemal toľko času, takže som sa s výberom fs a nastaveniami príliš nehral.

    K tomu záveru, že PG nie je až tak citlivý na konfiguráciu, som došiel aj ja.

    Vybral som medzitým pár veľkých dotazov z pgbadgeru a vyzerá to tak, že tento nový server bude vďaka SSD rádovo rýchlejší než ten starý. Takže o celkový výkon v reále nemám žiadne obavy.
    12.7.2022 11:13 MP
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    To by me zajimalo, proc menit background writer pri tech shared_buffers >10-15GB?
    12.7.2022 12:18 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Tam hodně záleží jak moc zapisujete - pokud hodně, tak může častěji docházet k vynuceným checkpointům - což vám může krátkodobě způsobovat zahlcení systému - jednak máte peaky v zápisu, druhak čtení musí počkat až se dokončí zápis a uvolní se datové stránky. Čím máte větší shared buffers, tím lagy způsobené vynucenými checkpointy mohou být horší. Může se stát, že vám zalaguje proces, který drží zámky, a pak celá db začne lagovat.
    12.7.2022 13:08 MP
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Hm, tohle info nikde v tuning manualech neni. Vsude uvadi doporucenych 25% pro shared_buffers, coz u 128GB RAM stroje je 32GB...nez sahat do bgwriteru(neznam jeho chovani), byla by jednodussi cesta nastavit vetsi WAL rozsah (za cenu mista na disku)?
    12.7.2022 18:19 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Tohle je jiný problém - checkpoint se nastartuje nikoliv, že narazíte na limit WAL rozsahu, ale protože vám dojdou volné stránky v shared buffers.
    11.7.2022 18:10 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14

    Sorry, ale tady delas velkou chybu na ktere se da krasne demonstrovat proc je tvuj test k nicemu. Totiz tvoje nastaveni je pro produkci nejspise uplne spatne a s nejvetsi pravdepodobnosti jsi timhle vykon produkce ZHORSIL. Ty sis to maximalne vyladil pro tvuj synteticky test, ktery ale na 99% neodpovida tomu co potrebujes. Takze se chytas nejake chimery "pevneho bodu", ktera ti nejenom nic nerekla o realnem stavu, ale jeste navic te poslala na uplne zcesti...

    Jeste jinak - pokud jsi vyvojar pgbench, a db bude provadet izolovane jeden pgbench, tak jsi to nastavil skoro spravne.

    Abych jen nekibicoval - pokud o postgres nevis nic, vygeneruj si nastaveni tady https://pgtune.leopard.in.ua Vetsinou to dava dobre vysledky, se kterymi se da zacit.

     

    11.7.2022 20:05 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    https://pgtune.leopard.in.ua
    Ehm... total memory - must be less or equal to 9999.
    Quando omni flunkus moritati
    11.7.2022 21:36 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14

    Jako zes chtel poradit jak defaultne nastavit svuj stroj s cca 10 tb ram a ono to selhalo?:) Myslim/doufam ze clovek s pristupem k takovemu stroji uz trochu vi co dela a proc a jak nakonfigurovane na nem ma bezet Postgres:)

    12.7.2022 16:16 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Myslim/doufam ze clovek s pristupem k takovemu stroji
    Pro vás je stroj s více než 10GB RAM "takový stroj"?
    Quando omni flunkus moritati
    12.7.2022 20:00 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Vzdyt se tam da nastavit 9999GB:) Ale faktem je, ze clovek s pristupem k takovemu stroji zvladne prepnout jednotky ve formulari:)
    13.7.2022 09:27 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    "Dá se" nemění nic na faktu, že to pro platný vstup hází chybu. Rady ohledně nastavení databáze od někoho, komuhle tohle nevadilo, brát s velkou rezervou.
    Quando omni flunkus moritati
    13.7.2022 12:59 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Ty ses komik. Nejdriv neumis pouzit plne funkcni formular (ktery se normalne validuje, zadnou chybu nehlasi). Kdyz ti to nekdo ukaze, tak zacinas okopavat kotniky se zaverem, ktery je uplne nesmyslny a s formularem nijak nesouvisi... :)
    14.7.2022 11:52 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Řeknu vám to jednoduše, soudruhu - formulář, který umožňuje stejný vstup zadat dvěma způsoby, ale funguje jen pro jeden z nich a pro druhý vypisuje chybové hlášení, není plně funkční. Můžete se o tom dohadovat, jak chcete, ale prostě a jednoduše není.
    Quando omni flunkus moritati
    14.7.2022 14:07 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Dekujeme za nazor a posilame klicenku.

    Pokud maji problem vyplnit spravne ten formular, nemeli by se poustet do konfigurace Postgresu. Mohou se o tom dohadovat, jak chteji, ale tak to proste a jednoduse je.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    14.7.2022 14:38 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Jenže, což vám nejspíše uniklo, formulář byl vyplněn správně.
    Quando omni flunkus moritati
    14.7.2022 15:23 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Hele sorry, ale ty mas nejaky vnitrni problem, proc tady soudruhujes? Vzdyt tu meles nesmysly uplne z cesty... Smir uz se prosimte s tim, zes jen nedokazal pouzit normalni formular a pritom z toho faktu vubec nic nevyplyva:) (narozdil od tveho nasledneho projevu) Tim bych to asi za me ukoncil.
    15.7.2022 22:01 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Soudruhu, ten formulář normálně obsahuje chybu, to se tak vývojářům stává. To, jak se k té chybě postaví, je vypovídající.
    Quando omni flunkus moritati
    AraxoN avatar 12.7.2022 07:50 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Okej, beriem. Za link ďakujem, už to pozerám.
    12.7.2022 08:34 skajrajdr | skóre: 2 | blog: skajrajdr
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Neni zac. Kdybys chtel ladit dal, az to zapnes produkcne, tak doporucuji zapnout slow query log pro prvnich par tydnu. Uvidis, co ti zere vetsinu zdroju a muzes autory upozornit, eventuelne upravit konfiguraci.
    AraxoN avatar 12.7.2022 08:56 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Slow logy mám v produkcii zapnuté priebežne (aktuálne nad 500ms), vývojári občas prejdú aktuálny report z pgbadgeru a ladia.

    Som si vedomý toho, že tam môže bežať neoptimálny dotaz kratší než 500ms, ale milión-krát za deň a teda s väčším dopadom na výkon než všetky ostatné.

    Preto mám v pláne po nasadení nového servera aspoň na jeden deň nechať zalogovať úplne všetko, ale tie logy sú potom fakt obrovské. Sledovať takto dlhšie obdobie neprichádza do úvahy.
    12.7.2022 10:12 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Drtivá většina rychlých dotazů je pod 30ms, a to většinou nemá cenu logovat, a nemá cenu je opravovat (i když ORMka dotazy tohoto typu umí umlátit server). Je možné nastavit limit 10ms, nebo v nové verzi Postgresu nastavit vzorkování - např. pod 10ms 1%m, nad 10ms vše
    AraxoN avatar 12.7.2022 12:16 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Zaujímavé... len pre kontrolu, ten príklad by bol nejak takto?
    log_min_duration_statement = 10
    log_min_duration_sample = 0
    log_statement_sample_rate = 0.01
    12.7.2022 12:19 okbobcz | skóre: 8
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    nezkoušel jsem, ale myslím si, že by to mohlo být ok.
    12.7.2022 13:15 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Dva dotazy:
    Disky umi 512, 520, 528, 4096, 4160, or 4224 bytes per logical block. Zkusil jsi neco jineho nez default?
    Pouzivas hugepages?
    AraxoN avatar 12.7.2022 14:36 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Že by som mohol mať inú veľkosť logického bloku sa dozvedám až teraz, takže nie, neskúšal.

    HugePages sú v linuxe povolené a v postgresi je huge_pages = try, ale podľa /proc/meminfo ich nikto nepoužíva.
    13.7.2022 13:06 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Kolik vidis v /proc/meminfo HugePages_Total?
    AraxoN avatar 18.7.2022 07:34 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Prepáč, nebol som tu. Niesol som nasadiť ten server do Bratislavy, bola to viacdňová akcia.

    Teraz už s tým experimenty robiť nebudem, server už je v ostrej prevádzke. Ale HugePages_Total je nula... Znamená to, že kernel predsa len žiadne hugepages nie je ochotný poskytnúť?
    18.7.2022 23:24 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Súborový systém pre PostgreSQL 14
    Podle me sis o zadne nerekl.
    Pouzivaji se kernel parametry hugepagesz=2M hugepages=123 nebo v runtime echo cisla do /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages. Alokace v runtime samozrejme muze selhat.
    Mozna se ti to trosku spleto s transparent_hugepage, ktere kernel resi na pozadi. Ty na produkcnim db serveru naopak vypinam.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.