{"id":35920,"date":"2019-10-31T22:07:35","date_gmt":"2019-10-31T19:07:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql\/"},"modified":"2019-10-31T22:07:35","modified_gmt":"2019-10-31T19:07:35","slug":"nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","title":{"rendered":"Postavke parametara Linux jezgre za optimizaciju PostgreSQL-a","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Postavke parametara Linux jezgre za optimizaciju PostgreSQL-a\" src=\"\/wp-content\/uploads\/2019\/07\/a28458ff50cdc517aad71b47adab6eb3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Optimalna izvedba PostgreSQL ovisi o pravilno definiranim parametrima operativnog sustava. Lo\u0161e postavljeni parametri jezgre OS-a mogu dovesti do smanjenja performansi poslu\u017eitelja baze podataka. Stoga je obavezno da ti parametri budu postavljeni u skladu s poslu\u017eiteljem baze podataka i njegovim radnim optere\u0107enjem. U ovom postu raspravljat \u0107emo o nekim va\u017enim parametrima jezgre Linuxa koji mogu utjecati na performanse poslu\u017eitelja baze podataka i na\u010dinima njihove prilagodbe.<\/p>\n<h2>SHMMAX \/ SHMALL<\/h2>\n<p>\n<b>SHMMAX<\/b> \u2014 to je parametar jezgre koji se koristi za odre\u0111ivanje maksimalne veli\u010dine jednog segmenta dijeljene memorije (shared memory) koji mo\u017ee dodijeliti proces Linuxa. Do verzije 9.2 PostgreSQL je koristio System V (SysV), za koji je bila potrebna konfiguracija SHMMAX. Nakon 9.2, PostgreSQL je pre\u0161ao na POSIX dijeljenu memoriju. Tako da sada zahtijeva manje bajtova dijeljene memorije System V.<\/p>\n<p>Do verzije 9.3, SHMMAX je bio najva\u017eniji parametar jezgre. Vrijednost SHMMAX postavlja se u bajtovima.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSli\u010dno tome, <b>SHMALL<\/b> \u2014 to je jo\u0161 jedan parametar jezgre koji se koristi za odre\u0111ivanje <br \/>\nukupnog volumena stranica dijeljene memorije (shared memory). Da biste pregledali trenutne vrijednosti SHMMAX, SHMALL ili SHMMIN, koristite naredbu <i>ipcs<\/i>.<\/p>\n<p><b>SHM* Detalji \u2014 Linux<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -lm\n\n------ Ograni\u010denja dijeljene memorije --------\nmax broj segmenata = 4096\nmax seg veli\u010dina (kbytes) = 1073741824\nmax ukupna dijeljena memorija (kbytes) = 17179869184\nmin seg veli\u010dina (bytes) = 1<\/code><\/pre>\n<p>\n<b>SHM* Detalji \u2014 MacOS X<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -M\nStatus IPC-a od  kao  u \u010det, 16. kol 2018 22:20:35 PKT\nshminfo:\n\tshmmax: 16777216\t(max dijeljena memorijska veli\u010dina segmenta)\n\tshmmin:       1\t(min dijeljena memorijska veli\u010dina segmenta)\n\tshmmni:      32\t(max broj identifikatora dijeljene memorije)\n\tshmseg:       8\t(max dijeljeni memorijski segmenti po procesu)\n\tshmall:    1024\t(max koli\u010dina dijeljene memorije u stranicama)\n<\/code><\/pre>\n<p>\nPostgreSQL koristi <b>System V IPC<\/b> za dodjelu dijeljene memorije. Ovaj parametar je jedan od najva\u017enijih parametara jezgre. Kad god dobijete sljede\u0107e poruke o gre\u0161ci, to zna\u010di da imate stariju verziju PostgreSQL-a i da imate vrlo nisku vrijednost SHMMAX. O\u010dekuje se da korisnici prilagode i pove\u0107aju vrijednost u skladu s dijeljenom memorijom koju planiraju koristiti.<\/p>\n<h3>Mogu\u0107e gre\u0161ke zbog pogre\u0161ne konfiguracije<\/h3>\n<p>\nAko je SHMMAX pogre\u0161no postavljen, mo\u017eete dobiti gre\u0161ku prilikom poku\u0161aja inicijalizacije PostgreSQL klastera pomo\u0107u naredbe <i>initdb<\/i>.<\/p>\n<p><b>initdb Neuspjeh<\/b><br \/>\n<code>DETAIL: Neuspjela sistemska poziv bila je shmget(key=1, size=2072576, 03600). <\/p>\n<p>HINT: Ova gre\u0161ka obi\u010dno zna\u010di da je zahtjev PostgreSQL-a za segmentom dijeljene memorije prema\u0161io SHMMAX parametar va\u0161eg kernela.\u00a0 <br \/>\nMo\u017eete smanjiti veli\u010dinu zahtjeva ili rekonfigurirati jezgru s ve\u0107im SHMMAX. Da biste smanjili veli\u010dinu zahtjeva (trenutno 2072576 bajta), <br \/>\nsmanjite kori\u0161tenje zajedni\u010dke memorije PostgreSQL-a, mo\u017eda smanjivanjem shared_buffers ili max_connections. <\/p>\n<p>Ako je veli\u010dina zahtjeva ve\u0107 mala, mogu\u0107e je da je manja od va\u0161eg SHMMIN parametra jezgre,<br \/>\nu kojem slu\u010daju je potrebno pove\u0107ati veli\u010dinu zahtjeva ili rekonfigurirati SHMMIN. <\/p>\n<p>Dokumentacija PostgreSQL-a sadr\u017ei vi\u0161e informacija o konfiguraciji zajedni\u010dke memorije. Dje\u010dji proces je iza\u0161ao s kodom izlaza 1<\/code><\/p>\n<p>Sli\u010dno tome, mo\u017eete dobiti pogre\u0161ku prilikom pokretanja PostgreSQL poslu\u017eitelja koriste\u0107i naredbu <i>pg_ctl<\/i>.<\/p>\n<p><b>pg_ctl neuspjeh<\/b><br \/>\n<code>DETALJI: Neuspje\u0161an poziv sustava bio je shmget(key=5432001, size=14385152, 03600).<\/p>\n<p>HINT: Ova gre\u0161ka obi\u010dno zna\u010di da je zahtjev PostgreSQL-a za segmentom dijeljene memorije prema\u0161io SHMMAX parametar va\u0161eg kernela.<\/p>\n<p>Mo\u017eete smanjiti veli\u010dinu zahtjeva ili rekonfigurirati jezgru s ve\u0107im SHMMAX.; Da biste smanjili veli\u010dinu zahtjeva (trenutno 14385152 bajta), smanjite kori\u0161tenje zajedni\u010dke memorije PostgreSQL-a, mo\u017eda smanjivanjem shared_buffers ili max_connections.<\/p>\n<p>Ako je veli\u010dina zahtjeva ve\u0107 mala, mogu\u0107e je da je manja od va\u0161eg SHMMIN parametra jezgre, <br \/>\nu kojem slu\u010daju je potrebno pove\u0107ati veli\u010dinu zahtjeva ili rekonfigurirati SHMMIN.<\/p>\n<p>Dokumentacija PostgreSQL-a sadr\u017ei vi\u0161e informacija o konfiguraciji zajedni\u010dke memorije.<\/code><\/p>\n<h3>Razumijevanje razlika u definicijama<\/h3>\n<p>\nDefinicija parametara SHMMAX\/SHMALL malo se razlikuje u Linuxu i MacOS X:<\/p>\n<ul>\n<li>Linux: kernel.shmmax, kernel.shmall<\/li>\n<li>MacOS X: kern.sysv.shmmax, kern.sysv.shmall<\/li>\n<\/ul>\n<p>\nKomanda <i>sysctl<\/i> mo\u017ee se koristiti za privremenu promjenu vrijednosti. Da biste postavili trajne vrijednosti, dodajte unos u <i>\/etc\/sysctl.conf<\/i>. Pojedinosti su navedene u nastavku.<\/p>\n<p><b>Promjena parametara jezgre na MacOS X-u<\/b><\/p>\n<pre><code class=\"plaintext\"># Get the value of SHMMAX\nsudo sysctl kern.sysv.shmmax\nkern.sysv.shmmax: 4096\n\n# Get the value of SHMALL\nsudo sysctl kern.sysv.shmall \nkern.sysv.shmall: 4096\n\n# Set the value of SHMMAX\nsudo sysctl -w kern.sysv.shmmax=16777216\nkern.sysv.shmmax: 4096 -&gt; 16777216\n\n# Set the value of SHMALL \nsudo sysctl -w kern.sysv.shmall=16777216\nkern.sysv.shmall: 4096 -&gt; 16777216<\/code><\/pre>\n<p>\n<b>Promjena parametara jezgre na Linuxu<\/b><\/p>\n<pre><code class=\"plaintext\"># Get the value of SHMMAX\nsudo sysctl kernel.shmmax\nkernel.shmmax: 4096\n\n# Get the value of SHMALL\nsudo sysctl kernel.shmall\nkernel.shmall: 4096\n\n# Set the value of SHMMAX\nsudo sysctl -w kernel.shmmax=16777216\nkernel.shmmax: 4096 -&gt; 16777216\n\n# Set the value of SHMALL \nsudo sysctl -w kernel.shmall=16777216\nkernel.shmall: 4096 -&gt; 16777216<\/code><\/pre>\n<p>\n<b>Ne zaboravite<\/b>: da biste promjene u\u010dinili trajnima, dodajte ove vrijednosti u \/etc\/sysctl.conf<\/p>\n<h2>Velike stranice (Huge Pages)<\/h2>\n<p>\nNa Linuxu se po defaultu koriste stranice memorije od 4 KB, dok na BSD-u \u2014 <i>Super Pages<\/i>, a na Windows-u \u2014 <i>Large Pages<\/i>. Stranica je dio radne memorije koji dodjeljuje proces. Proces mo\u017ee imati vi\u0161e stranica ovisno o zahtjevima za memorijom. \u0160to vi\u0161e memorije procesu treba, to vi\u0161e stranica mu je dodijeljeno. OS podr\u017eava tablicu dodjele stranica za procese. \u0160to je manja veli\u010dina stranice, to je tablica ve\u0107a, a vi\u0161e vremena je potrebno za pretra\u017eivanje stranice u ovoj tablici stranica. Stoga velike stranice omogu\u0107uju kori\u0161tenje velikih koli\u010dina memorije s smanjenim prekomjernim tro\u0161kovima; manje pregleda stranica, manje gre\u0161aka stranica, br\u017ee operacije \u010ditanja\/pisanja putem velikih me\u0111uspremnika. Kao rezultat \u2014 pobolj\u0161anje performansi.<\/p>\n<p>PostgreSQL podr\u017eava velike stranice samo na Linuxu. Zadano, Linux koristi 4 KB stranice memorije, pa je u slu\u010dajevima kada je operacija s memorijom previ\u0161e potrebno postaviti ve\u0107e stranice. Primje\u0107uje se porast performansi kori\u0161tenjem velikih stranica veli\u010dine 2 MB do 1 GB. Veli\u010dinu velike stranice mo\u017eete postaviti prilikom pokretanja sustava. Mo\u017eete lako provjeriti parametre velike stranice i njihovu upotrebu na svom Linux ra\u010dunalu koriste\u0107i naredbu <i>cat \/proc\/meminfo | grep -i huge<\/i>.<\/p>\n<p><b>Dobivanje informacija o velikim stranicama (samo na Linuxu)<\/b><\/p>\n<pre><code class=\"bash\">Napomena: Ovo je samo za Linux, za druge OS ove operacije se zanemaruju $ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:         0 kB\nShmemHugePages:        0 kB\nHugePages_Total:       0\nHugePages_Free:        0\nHugePages_Rsvd:       0\nHugePages_Surp:       0\nHugepagesize:       2048 kB<\/code><\/pre>\n<p>\nU ovom primjeru, iako je veli\u010dina velike stranice postavljena na 2048 (2 MB), ukupni broj velikih stranica ima vrijednost 0. To zna\u010di da su velike stranice isklju\u010dene.<\/p>\n<h3>Skripta za odre\u0111ivanje broja velikih stranica<\/h3>\n<p>\nOvo je jednostavna skripta koja vra\u0107a potreban broj velikih stranica. Pokrenite skriptu na svom Linux poslu\u017eitelju dok PostgreSQL radi. Provjerite da je za varijablu okru\u017eenja <i>$PGDATA<\/i> postavljen katalog podataka PostgreSQL.<\/p>\n<p><b>Dobivanje broja potrebnih velikih stranica<\/b><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\npid=`head -1 $PGDATA\/postmaster.pid`\necho \"Pid:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $pid\"\npeak=`grep ^VmPeak \/proc\/$pid\/status | awk '{ print $2 }'`\necho \"VmPeak:\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $peak kB\"\nhps=`grep ^Hugepagesize \/proc\/meminfo | awk '{ print $2 }'`\necho \"Hugepagesize:\u00a0\u00a0 $hps kB\"\nhp=$((peak\/hps))\necho Set Huge Pages:\u00a0\u00a0\u00a0\u00a0 $hp<\/code><\/pre>\n<p>\nIzlaz skripte izgleda ovako:<\/p>\n<p><b>Izlaz skripte<\/b><\/p>\n<pre><code class=\"bash\">Pid:            12737\nVmPeak:         180932 kB\nHugepagesize:   2048 kB\nSet Huge Pages: 88<\/code><\/pre>\n<p>\nPreporu\u010dena vrijednost velikih stranica je 88, stoga trebate postaviti vrijednost 88.<\/p>\n<p><b>Postavljanje velikih stranica<\/b><\/p>\n<pre><code class=\"bash\">sysctl -w vm.nr_hugepages=88<\/code><\/pre>\n<p>\nProvjerite velike stranice sada, vidjet \u0107ete da se velike stranice ne koriste (HugePages_Free = HugePages_Total).<\/p>\n<p><b>Ponovno informacije o velikim stranicama (samo na Linuxu)<\/b><\/p>\n<pre><code class=\"bash\">$ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:         0 kB\nShmemHugePages:        0 kB\nHugePages_Total:      88\nHugePages_Free:       88\nHugePages_Rsvd:       0\nHugePages_Surp:       0\nHugepagesize:       2048 kB<\/code><\/pre>\n<p>\nSada postavite parametar huge_pages \u201eon\u201c u $PGDATA\/postgresql.conf i ponovo pokrenite poslu\u017eitelj.<\/p>\n<p><b>I opet informacije o velikim stranicama (samo na Linuxu)<\/b><\/p>\n<pre><code class=\"bash\">$ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:         0 kB\nShmemHugePages:        0 kB\nHugePages_Total:      88\nHugePages_Free:       81\nHugePages_Rsvd:       64\nHugePages_Surp:       0\nHugepagesize:       2048 kB<\/code><\/pre>\n<p>\nSada mo\u017eete vidjeti da se koristi vrlo malo velikih stranica. Poku\u0161ajmo sada dodati neke podatke u bazu podataka.<\/p>\n<p><b>Nekoliko operacija s bazom podataka za upravljanje velikim stranicama<\/b><\/p>\n<pre><code class=\"sql\">postgres=# CREATE TABLE foo(a INTEGER);\nCREATE TABLE\npostgres=# INSERT INTO foo VALUES(generate_Series(1,10000000));\nINSERT 0 10000000<\/code><\/pre>\n<p>\nPogledajmo koristimo li vi\u0161e velikih stranica nego prije.<\/p>\n<p><b>Jo\u0161 jednom informacije o velikim stranicama (samo na Linuxu)<\/b><\/p>\n<pre><code class=\"bash\">$ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:         0 kB\nShmemHugePages:        0 kB\nHugePages_Total:      88\nHugePages_Free:       18\nHugePages_Rsvd:       1\nHugePages_Surp:      0\nHugepagesize:       2048 kB<\/code><\/pre>\n<p>\nSada mo\u017eete vidjeti da se ve\u0107ina velikih stranica koristi.<\/p>\n<p>Napomena: pribli\u017ena vrijednost za HugePages koja se ovdje koristi je vrlo niska, \u0161to nije normalna vrijednost za ma\u0161inu u produkciji. Molimo procijenite potreban broj stranica za va\u0161 sustav i postavite ih prema optere\u0107enju i resursima.<\/p>\n<h3>vm.swappiness<\/h3>\n<p>\n<b>vm.swappiness<\/b> \u2014 to je jo\u0161 jedna kernel opcija koja mo\u017ee utjecati na performanse baze podataka. Ova opcija se koristi za upravljanje pona\u0161anjem swapovanja (swappiness) (swap stranica u i iz memorije) u Linuxu. Vrijednost se kre\u0107e od 0 do 100. Odre\u0111uje koliko \u0107e memorije biti oslobo\u0111eno ili u\u010ditano. Nula zna\u010di isklju\u010divanje zamjene, dok 100 zna\u010di agresivno swapovanje.<\/p>\n<p>Mo\u017eete posti\u0107i dobre performanse postavljanjem ni\u017eih vrijednosti.<\/p>\n<p>Postavljanje vrijednosti 0 u novijim kernelima mo\u017ee dovesti do toga da OOM Killer (proces za \u010di\u0161\u0107enje memorije u Linuxu) ubije proces. Stoga, mo\u017ee se sigurno postaviti vrijednost 1 ako \u017eelite minimizirati swapovanje. Zadana vrijednost u Linuxu je 60. Vi\u0161a vrijednost tjera MMU (jedinica za upravljanje memorijom) da koristi vi\u0161e swap prostora nego RAM-a, dok ni\u017ea vrijednost zadr\u017eava vi\u0161e podataka\/koda u memoriji.<\/p>\n<p>Ni\u017ea vrijednost je dobra oklada za pobolj\u0161anje performansi u PostgreSQL-u.<\/p>\n<h3>vm.overcommit_memory \/ vm.overcommit_ratio<\/h3>\n<p>\nAplikacije dobivaju memoriju i osloba\u0111aju je kada vi\u0161e nije potrebna. No, u nekim slu\u010dajevima aplikacija dobije previ\u0161e memorije i ne oslobodi je. To mo\u017ee izazvati OOM Killer. Evo mogu\u0107ih vrijednosti za ovu opciju <b>vm.overcommit_memory<\/b> s opisom za svaku:<\/p>\n<ol>\n<li> Heuristi\u010dki overcommit (zadano); heuristika zasnovana na kernelu<\/li>\n<li> Dopusti overcommit u svakom slu\u010daju<\/li>\n<li> Ne pretjeruj, ne prema\u0161uj overcommit koeficijent.<\/li>\n<\/ol>\n<p>\n<i>Link: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/vm\/overcommit-accounting\">https:\/\/www.kernel.org\/doc\/Documentation\/vm\/overcommit-accounting<\/a><\/noindex><\/i><\/p>\n<p><b>vm.overcommit_ratio<\/b> \u2014 postotak RAM-a dostupnog za prekomjernu upotrebu. Vrijednost od 50% u sustavu s 2 GB RAM-a mo\u017ee alocirati do 3 GB RAM-a.<\/p>\n<p>Vrijednost 2 za vm.overcommit_memory osigurava bolju izvedbu za PostgreSQL. Ova vrijednost maksimizira kori\u0161tenje RAM-a od strane server proces\u00e2 bez zna\u010dajnog rizika da \u0107e proces biti ubijen od strane OOM killera. Aplikacija \u0107e se mo\u0107i ponovno pokrenuti, ali samo unutar prekomjerne upotrebe, \u0161to smanjuje rizik da OOM killer ubije proces. Stoga, vrijednost 2 pru\u017ea bolju izvedbu nego zadana vrijednost 0. Ipak, pouzdanost se mo\u017ee pobolj\u0161ati tako da se RAM izvan dopu\u0161tenog raspona ne preoptere\u0107uje. Ovo elimira rizik da \u0107e proces biti ubijen od strane OOM killera.<\/p>\n<p>U sustavima bez swap memorije mo\u017ee do\u0107i do problema s vm.overcommit_memory postavljenim na 2.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/static\/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT\">https:\/\/www.postgresql.org\/docs\/current\/static\/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT<\/a><\/noindex><\/p>\n<h3>vm.dirty_background_ratio \/ vm.dirty_background_bytes<\/h3>\n<p>\n<b>vm.dirty_background_ratio<\/b> \u2014 to je postotak memorije ispunjene prljavim stranicama koje treba zapisati na disk. Ispis na disk se vr\u0161i u pozadini. Vrijednost ovog parametra kre\u0107e se od 0 do 100; me\u0111utim, vrijednost ispod 5 mo\u017ee biti neu\u010dinkovita, a neka jezgra je ne podr\u017eavaju. 10 je vrijednost koja je zadana u ve\u0107ini Linux sustava. Mo\u017eete pobolj\u0161ati izvedbu za operacije s intenzivnim zapisom s manjim omjerom, \u0161to zna\u010di da \u0107e Linux zapisivati prljave stranice u pozadini.<\/p>\n<p>Trebate postaviti vrijednost <b>vm.dirty_background_bytes<\/b> ovisno o brzini va\u0161eg diska.<\/p>\n<p>Za ova dva parametra ne postoje 'dobre' vrijednosti, jer obje ovise o hardveru. Me\u0111utim, postavljanje vm.dirty_background_ratio na 5 i vm.dirty_background_bytes na 25% od brzine diska pobolj\u0161ava izvedbu za ~ 25% u ve\u0107ini slu\u010dajeva.<\/p>\n<h3>vm.dirty_ratio \/ dirty_bytes<\/h3>\n<p>\nTo je isto kao <b>vm.dirty_background_ratio \/ dirty_background_bytes<\/b>, osim \u0161to se ispis izvr\u0161ava u radnoj sesiji, blokiraju\u0107i aplikaciju. Stoga vm.dirty_ratio treba biti ve\u0107i od <b>vm.dirty_background_ratio<\/b>. Ovo osigurava da se pozadinski procesi pokre\u0107u ranije kako bi se izbjeglo maksimalno mogu\u0107e blokiranje aplikacije. Mo\u017eete prilagoditi razliku izme\u0111u ova dva omjera ovisno o optere\u0107enju diskovnog ulaza-izlaza.<\/p>\n<h2>Zaklju\u010dak<\/h2>\n<p>\nMo\u017eete prilagoditi dodatne parametre za pobolj\u0161anje performansi, ali \u0107e pobolj\u0161anja biti minimalna i ne\u0107ete imati zna\u010dajne koristi. Moramo se sjetiti da ne odnose se svi parametri na sve tipove aplikacija. Neke aplikacije bolje funkcioniraju s prilagodbom odre\u0111enih parametara, dok druge ne. Trebate prona\u0107i pravi balans izme\u0111u konfiguracija tih parametara za o\u010dekivano optere\u0107enje i tip aplikacije, a tako\u0111er treba uzeti u obzir pona\u0161anje operativnog sustava prilikom prilagodbe. Pode\u0161avanje parametara jezgre nije tako jednostavno kao pode\u0161avanje parametara baze podataka: ovdje je te\u017ee dati svoje preporuke.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458860\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c PostgreSQL \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041f\u043b\u043e\u0445\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0434\u0440\u0430 \u041e\u0421 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u044b\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439. \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0434\u0440\u0430 Linux, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26870,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35920","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u044f\u0434\u0440\u0430 Linux \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 PostgreSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:07:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:07:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Pode\u0161avanje parametara jezgre Linux za optimizaciju PostgreSQL | ProHoster","description":"Optimalne performanse.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u044f\u0434\u0440\u0430 Linux \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 PostgreSQL | ProHoster","og:description":"\u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:07:35+00:00","article:modified_time":"2019-10-31T19:07:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35920","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 01:17:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:53:32","updated":"2026-01-22 01:17:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/35920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=35920"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/35920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/26870"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=35920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=35920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=35920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}