{"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\/sq\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","title":{"rendered":"Konfigurimi i parametrave t\u00eb kernelit Linux p\u00ebr optimizimin e PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Konfigurimi i parametrave t\u00eb kernelit Linux p\u00ebr optimizimin e PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/07\/a28458ff50cdc517aad71b47adab6eb3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Performanca optimale e PostgreSQL varet nga parametrat e duhur t\u00eb sistemit operativ. Parametrat e pap\u00ebrshtatsh\u00ebm t\u00eb b\u00ebrtham\u00ebs s\u00eb OS mund t\u00eb \u00e7ojn\u00eb n\u00eb uljen e performanc\u00ebs s\u00eb serverit t\u00eb baz\u00ebs s\u00eb t\u00eb dh\u00ebnave. Prandaj, \u00ebsht\u00eb e domosdoshme q\u00eb k\u00ebta parametra t\u00eb jen\u00eb konfiguruar n\u00eb p\u00ebrputhje me serverin e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave dhe ngarkes\u00ebn e tij t\u00eb pun\u00ebs. N\u00eb k\u00ebt\u00eb post, ne do t\u00eb diskutojm\u00eb disa nga parametrat e r\u00ebnd\u00ebsish\u00ebm t\u00eb b\u00ebrtham\u00ebs Linux q\u00eb mund t\u00eb ndikojn\u00eb n\u00eb performanc\u00ebn e serverit t\u00eb baz\u00ebs s\u00eb t\u00eb dh\u00ebnave dhe m\u00ebnyrat p\u00ebr t'i konfiguruar ato.<\/p>\n<h2>SHMMAX \/ SHMALL<\/h2>\n<p>\n<b>SHMMAX<\/b> \u2014 \u00ebsht\u00eb nj\u00eb paramet\u00ebr b\u00ebrthame q\u00eb p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrcaktuar madh\u00ebsin\u00eb maksimale t\u00eb nj\u00eb segmenti t\u00eb vet\u00ebm t\u00eb memories s\u00eb ndar\u00eb (shared memory) q\u00eb mund t\u00eb alokoj\u00eb nj\u00eb proces Linux. Deri n\u00eb versionin 9.2, PostgreSQL p\u00ebrdorte System V (SysV), p\u00ebr t\u00eb cilin k\u00ebrkohej konfigurimi i SHMMAX. Pas 9.2, PostgreSQL kaloi n\u00eb memorien e ndar\u00eb POSIX. Pra, tani k\u00ebrkohen m\u00eb pak byte p\u00ebr memorien e ndar\u00eb System V.<\/p>\n<p>Derisa deri n\u00eb versionin 9.3, SHMMAX ishte parametri m\u00eb i r\u00ebnd\u00ebsish\u00ebm i b\u00ebrtham\u00ebs. Vlera e SHMMAX specifikohet n\u00eb byte.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNj\u00ebjt\u00eb, <b>SHMALL<\/b> \u2014 \u00ebsht\u00eb nj\u00eb tjet\u00ebr paramet\u00ebr b\u00ebrthame q\u00eb p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrcaktuar <br \/>\nv\u00ebllimin total t\u00eb faqeve t\u00eb memories s\u00eb ndar\u00eb (shared memory). P\u00ebr t\u00eb par\u00eb vlerat aktuale t\u00eb SHMMAX, SHMALL ose SHMMIN, p\u00ebrdorni komand\u00ebn <i>ipcs<\/i>.<\/p>\n<p><b>SHM* Detajet \u2014 Linux<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -lm\n\n------ Kufijt\u00eb e Memories s\u00eb Ndar\u00eb --------\nnumri maksimal i segmenteve = 4096\nmadh\u00ebsia maksimale e segmentit (kbytes) = 1073741824\nmadh\u00ebsia totale maksimale e memories s\u00eb ndar\u00eb (kbytes) = 17179869184\nmadh\u00ebsia minimale e segmentit (bytes) = 1<\/code><\/pre>\n<p>\n<b>SHM* Detajet \u2014 MacOS X<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -M\nStatusi IPC nga  si m\u00eb  Thu Aug 16 22:20:35 PKT 2018\nshminfo:\n\tshmmax: 16777216\t(madh\u00ebsia maksimale e segmentit t\u00eb memories s\u00eb ndar\u00eb)\n\tshmmin:       1\t(madh\u00ebsia minimale e segmentit t\u00eb memories s\u00eb ndar\u00eb)\n\tshmmni:      32\t(numri maksimal i identifikuesve t\u00eb memories s\u00eb ndar\u00eb)\n\tshmseg:       8\t(numri maksimal i segmenteve t\u00eb memories s\u00eb ndar\u00eb p\u00ebr proces)\n\tshmall:    1024\t(masa maksimale e memories s\u00eb ndar\u00eb n\u00eb faqe)\n<\/code><\/pre>\n<p>\nPostgreSQL p\u00ebrdor <b>System V IPC<\/b> p\u00ebr alokimin e memories s\u00eb ndar\u00eb. Ky paramet\u00ebr \u00ebsht\u00eb nj\u00eb nga parametrat m\u00eb t\u00eb r\u00ebnd\u00ebsish\u00ebm t\u00eb b\u00ebrtham\u00ebs. Sa her\u00eb q\u00eb merrni mesazhet e m\u00ebposhtme t\u00eb gabimeve, kjo tregon se keni nj\u00eb version m\u00eb t\u00eb vjet\u00ebr t\u00eb PostgreSQL dhe keni nj\u00eb vler\u00eb shum\u00eb t\u00eb ul\u00ebt t\u00eb SHMMAX. Pritet q\u00eb p\u00ebrdoruesit t\u00eb korrigjojn\u00eb dhe rrisin vler\u00ebn n\u00eb p\u00ebrputhje me memorien e ndar\u00eb q\u00eb planifikojn\u00eb t\u00eb p\u00ebrdorin.<\/p>\n<h3>Gabimet e mundshme t\u00eb konfigurimit t\u00eb gabuar<\/h3>\n<p>\nN\u00ebse SHMMAX \u00ebsht\u00eb konfiguruar gabim, mund t\u00eb merrni nj\u00eb gabim kur p\u00ebrpiqeni t\u00eb inicializoni nj\u00eb grup PostgreSQL me komand\u00ebn <i>initdb<\/i>.<\/p>\n<p><b>initdb D\u00ebshtimi<\/b><br \/>\n<code>DETALJE: Thirrja e d\u00ebshtuar sistemike ishte shmget(key=1, size=2072576, 03600). <\/p>\n<p>K\u00cbSHILL\u00cb: Ky gabim zakonisht do t\u00eb thot\u00eb se k\u00ebrkesa e PostgreSQL p\u00ebr nj\u00eb segment t\u00eb memories s\u00eb ndar\u00eb kaloi parametrin SHMMAX t\u00eb b\u00ebrtham\u00ebs tuaj.\u00a0 <br \/>\nMund t\u00eb reduktoni ose madh\u00ebsin\u00eb e k\u00ebrkes\u00ebs ose t\u00eb ritaksoni kernelin me SHMMAX m\u00eb t\u00eb madh. P\u00ebr t\u00eb reduktuar madh\u00ebsin\u00eb e k\u00ebrkes\u00ebs (aktualisht 2072576 byte), <br \/>\nredukti p\u00ebrdorimin e memories s\u00eb p\u00ebrbashk\u00ebt t\u00eb PostgreSQL, ndoshta duke reduktuar shared_buffers ose max_connections. <\/p>\n<p>N\u00ebse madh\u00ebsia e k\u00ebrkes\u00ebs \u00ebsht\u00eb tashm\u00eb e vog\u00ebl, \u00ebsht\u00eb e mundur q\u00eb t\u00eb jet\u00eb m\u00eb e vog\u00ebl se parametri SHMMIN i kernelit tuaj,<br \/>\nn\u00eb k\u00ebt\u00eb rast, rritja e madh\u00ebsis\u00eb s\u00eb k\u00ebrkes\u00ebs ose ritaksoni SHMMIN \u00ebsht\u00eb e nevojshme. <\/p>\n<p>Dokumentacioni i PostgreSQL p\u00ebrmban m\u00eb shum\u00eb informacion n\u00eb lidhje me konfigurimin e memories s\u00eb p\u00ebrbashk\u00ebt. Procesi f\u00ebmijor doli me kodin e daljes 1.<\/code><\/p>\n<p>Po ashtu, mund t\u00eb merrni nj\u00eb gabim kur t\u00eb filloni serverin PostgreSQL duke p\u00ebrdorur komand\u00ebn <i>pg_ctl<\/i>.<\/p>\n<p><b>D\u00ebshtimi i pg_ctl<\/b><br \/>\n<code>DETALJ: Thirrja e d\u00ebshtuar e sistemit ishte shmget(key=5432001, size=14385152, 03600).<\/p>\n<p>K\u00cbSHILL\u00cb: Ky gabim zakonisht do t\u00eb thot\u00eb se k\u00ebrkesa e PostgreSQL p\u00ebr nj\u00eb segment t\u00eb memories s\u00eb ndar\u00eb kaloi parametrin SHMMAX t\u00eb b\u00ebrtham\u00ebs tuaj.<\/p>\n<p>Mund t\u00eb reduktoni ose madh\u00ebsin\u00eb e k\u00ebrkes\u00ebs ose t\u00eb ritaksoni kernelin me SHMMAX m\u00eb t\u00eb madh.; P\u00ebr t\u00eb reduktuar madh\u00ebsin\u00eb e k\u00ebrkes\u00ebs (aktualisht 14385152 byte), redukti p\u00ebrdorimin e memories s\u00eb p\u00ebrbashk\u00ebt t\u00eb PostgreSQL, ndoshta duke reduktuar shared_buffers ose max_connections.<\/p>\n<p>N\u00ebse madh\u00ebsia e k\u00ebrkes\u00ebs \u00ebsht\u00eb tashm\u00eb e vog\u00ebl, \u00ebsht\u00eb e mundur q\u00eb t\u00eb jet\u00eb m\u00eb e vog\u00ebl se parametri SHMMIN i kernelit tuaj, <br \/>\nn\u00eb k\u00ebt\u00eb rast, rritja e madh\u00ebsis\u00eb s\u00eb k\u00ebrkes\u00ebs ose ritaksoni SHMMIN \u00ebsht\u00eb e nevojshme.<\/p>\n<p>Dokumentacioni i PostgreSQL p\u00ebrmban m\u00eb shum\u00eb informacion n\u00eb lidhje me konfigurimin e memories s\u00eb p\u00ebrbashk\u00ebt.<\/code><\/p>\n<h3>Kuptimi i dallimeve n\u00eb definita<\/h3>\n<p>\nDefinimi i parametrave SHMMAX\/SHMALL paksa ndryshon n\u00eb Linux dhe 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>\nEkipa <i>sysctl<\/i> mund t\u00eb p\u00ebrdoret p\u00ebr t\u00eb ndryshuar p\u00ebrkoh\u00ebsisht vler\u00ebn. P\u00ebr t\u00eb vendosur vlera t\u00eb p\u00ebrhershme, shtoni nj\u00eb hyrje n\u00eb <i>\/etc\/sysctl.conf<\/i>. Detajet jan\u00eb t\u00eb dh\u00ebna m\u00eb posht\u00eb.<\/p>\n<p><b>Ndryshimi i parametrave t\u00eb kernelit n\u00eb MacOS X<\/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>Ndryshimi i parametrave t\u00eb kernelit n\u00eb Linux<\/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>Mos harroni<\/b>: p\u00ebr t\u00eb b\u00ebr\u00eb ndryshimet t\u00eb p\u00ebrhershme, shtoni k\u00ebto vlera n\u00eb \/etc\/sysctl.conf<\/p>\n<h2>Faqet e m\u00ebdha (Huge Pages)<\/h2>\n<p>\nN\u00eb Linux, faqe kujtese 4 KB p\u00ebrdoren n\u00eb m\u00ebnyr\u00eb t\u00eb paracaktuar, n\u00eb BSD \u2014 <i>Faqet Super<\/i>, dhe n\u00eb Windows \u2014 <i>Faqet e M\u00ebdha<\/i>. Nj\u00eb faqe \u00ebsht\u00eb nj\u00eb pjes\u00eb e memories s\u00eb p\u00ebrgjithshme e cila i \u00ebsht\u00eb alokuar procesit. Nj\u00eb proces mund t\u00eb ket\u00eb disa faqe n\u00eb var\u00ebsi t\u00eb k\u00ebrkesave p\u00ebr memorie. Sa m\u00eb shum\u00eb memorie t\u00eb k\u00ebrkoh\u00ebt nga procesi, aq m\u00eb shum\u00eb faqe i alokohen atij. OS mb\u00ebshtet nj\u00eb tabel\u00eb alokimi t\u00eb faqeve p\u00ebr proceset. Sa m\u00eb i vog\u00ebl t\u00eb jet\u00eb madh\u00ebsia e faqes, aq m\u00eb shum\u00eb \u00ebsht\u00eb tabela, aq m\u00eb shum\u00eb koh\u00eb k\u00ebrkohet p\u00ebr t\u00eb gjetur nj\u00eb faqe n\u00eb k\u00ebt\u00eb tabel\u00eb faqe. Prandaj, faqet e m\u00ebdha lejojn\u00eb p\u00ebrdorimin e nj\u00eb sasi t\u00eb madhe memories me shpenzime t\u00eb reduktuara; m\u00eb pak shikime faqe, m\u00eb pak gabime faqe, operacione m\u00eb t\u00eb shpejta leximi\/shkrimi p\u00ebrmes bufereve t\u00eb m\u00ebdha. Si rezultat \u2014 p\u00ebrmir\u00ebsimi i performanc\u00ebs.<\/p>\n<p>PostgreSQL mb\u00ebshtet faqe t\u00eb m\u00ebdha vet\u00ebm n\u00eb Linux. Me rregulloren e zakonshme, Linux p\u00ebrdor 4 kB faqe meme, prandaj n\u00eb raste kur operacionet me memori jan\u00eb shum\u00eb t\u00eb shumta, \u00ebsht\u00eb e nevojshme t\u00eb vendosen faqe m\u00eb t\u00eb m\u00ebdha. Observohet nj\u00eb rritje e performanc\u00ebs gjat\u00eb p\u00ebrdorimit t\u00eb faqeve t\u00eb m\u00ebdha me madh\u00ebsi 2 MB deri n\u00eb 1 GB. Madh\u00ebsia e faqes s\u00eb madhe mund t\u00eb vendoset gjat\u00eb ngarkimit. Ju mund ta verifikoni leht\u00ebsisht parametrin e faqes s\u00eb madhe dhe p\u00ebrdorimin e saj n\u00eb kompjuterin tuaj Linux, duke p\u00ebrdorur komand\u00ebn <i>cat \/proc\/meminfo | grep -i huge<\/i>.<\/p>\n<p><b>Marrja e informacionit rreth faqeve t\u00eb m\u00ebdha (vet\u00ebm n\u00eb Linux)<\/b><\/p>\n<pre><code class=\"bash\">Sh\u00ebnim: Kjo \u00ebsht\u00eb vet\u00ebm p\u00ebr Linux, p\u00ebr OS t\u00eb tjera kjo operacion injorohet$ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 kB\nShmemHugePages:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 kB\nHugePages_Total:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugePages_Free:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugePages_Rsvd:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugePages_Surp:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugepagesize:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2048 kB<\/code><\/pre>\n<p>\nN\u00eb k\u00ebt\u00eb shembull, megjith\u00ebse madh\u00ebsia e faqes s\u00eb madhe \u00ebsht\u00eb vendosur n\u00eb 2048 (2 MB), numri total i faqeve t\u00eb m\u00ebdha ka vler\u00ebn 0. Kjo do t\u00eb thot\u00eb se faqet e m\u00ebdha jan\u00eb \u00e7aktivizuar.<\/p>\n<h3>Skripti p\u00ebr p\u00ebrcaktimin e numrit t\u00eb faqeve t\u00eb m\u00ebdha<\/h3>\n<p>\nKy \u00ebsht\u00eb nj\u00eb skript i thjesht\u00eb q\u00eb kthen numrin e nevojsh\u00ebm t\u00eb faqeve t\u00eb m\u00ebdha. Ekzekutoni skriptin n\u00eb serverin tuaj Linux nd\u00ebrsa PostgreSQL \u00ebsht\u00eb aktiv. Sigurohuni q\u00eb variabli i mjedisit <i>$PGDATA<\/i> t\u00eb ket\u00eb vendin e t\u00eb dh\u00ebnave t\u00eb PostgreSQL.<\/p>\n<p><b>Marrja e numrit t\u00eb faqeve t\u00eb m\u00ebdha t\u00eb k\u00ebrkuara<\/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>\nDalja e skriptit duket si m\u00eb posht\u00eb:<\/p>\n<p><b>Dalja e skriptit<\/b><\/p>\n<pre><code class=\"bash\">Pid:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 12737\nVmPeak:\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0180932 kB\nHugepagesize:\u00a0\u00a0 2048 kB\nSet Huge Pages: 88<\/code><\/pre>\n<p>\nVlera e rekomanduar p\u00ebr faqet e m\u00ebdha \u00ebsht\u00eb 88, prandaj ju duhet t\u00eb vendosni vler\u00ebn 88.<\/p>\n<p><b>Vendosja e faqeve t\u00eb m\u00ebdha<\/b><\/p>\n<pre><code class=\"bash\">sysctl -w vm.nr_hugepages=88<\/code><\/pre>\n<p>\nKontrolloni faqet e m\u00ebdha tani, do t\u00eb shihni se faqet e m\u00ebdha nuk p\u00ebrdoren (HugePages_Free = HugePages_Total).<\/p>\n<p><b>S\u00ebrish informacion rreth faqeve t\u00eb m\u00ebdha (vet\u00ebm n\u00eb Linux)<\/b><\/p>\n<pre><code class=\"bash\">$ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 kB\nShmemHugePages:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 kB\nHugePages_Total:\u00a0\u00a0\u00a0\u00a0\u00a0 88\nHugePages_Free:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 88\nHugePages_Rsvd:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugePages_Surp:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugepagesize:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2048 kB<\/code><\/pre>\n<p>\nTani vendosni parametrin huge_pages \"on\" n\u00eb $PGDATA\/postgresql.conf dhe rinisni serverin.<\/p>\n<p><b>Dhe p\u00ebrs\u00ebri informacion rreth faqeve t\u00eb m\u00ebdha (vet\u00ebm n\u00eb Linux)<\/b><\/p>\n<pre><code class=\"bash\">$ cat \/proc\/meminfo | grep -i huge\nAnonHugePages:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 kB\nShmemHugePages:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 kB\nHugePages_Total:\u00a0\u00a0\u00a0\u00a0\u00a0 88\nHugePages_Free:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 81\nHugePages_Rsvd:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a064\nHugePages_Surp:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\nHugepagesize:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2048 kB<\/code><\/pre>\n<p>\nTani mund t\u00eb shihni se vet\u00ebm pak faqe t\u00eb m\u00ebdha po p\u00ebrdoren. Tani le t\u00eb provojm\u00eb t\u00eb shtojm\u00eb disa t\u00eb dh\u00ebna n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave.<\/p>\n<p><b>Disa disa operacione me baz\u00ebn e t\u00eb dh\u00ebnave p\u00ebr riciklimin e faqeve t\u00eb m\u00ebdha<\/b><\/p>\n<pre><code class=\"sql\">postgres=# KRIJO TABEL\u00cb foo(a INTEGER);\nKRIJO TABEL\u00cb\npostgres=# SHTO T\u00cb DH\u00cbNA N\u00cb foo VLERAT(gjenero_Series(1,10000000));\nSHTO 0 10000000<\/code><\/pre>\n<p>\nLe t\u00eb shohim n\u00ebse po p\u00ebrdorim aktualisht m\u00eb shum\u00eb faqe t\u00eb m\u00ebdha se m\u00eb par\u00eb.<\/p>\n<p><b>P\u00ebrs\u00ebri informata p\u00ebr faqet e m\u00ebdha (vet\u00ebm n\u00eb Linux)<\/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>\nTani mund t\u00eb shihni se shumica e faqeve t\u00eb m\u00ebdha jan\u00eb t\u00eb p\u00ebrdorura.<\/p>\n<p>Sh\u00ebnim: vlera e p\u00ebraf\u00ebrt p\u00ebr HugePages e p\u00ebrdorur k\u00ebtu \u00ebsht\u00eb shum\u00eb e ul\u00ebt, q\u00eb nuk \u00ebsht\u00eb nj\u00eb vler\u00eb normale p\u00ebr nj\u00eb makin\u00eb n\u00eb ambientin prodhues. Ju lutemi, vler\u00ebsoni numrin e nevojsh\u00ebm t\u00eb faqeve p\u00ebr sistemin tuaj dhe i vendosni ato p\u00ebrkat\u00ebsisht n\u00eb var\u00ebsi t\u00eb ngarkes\u00ebs dhe burimeve.<\/p>\n<h3>vm.swappiness<\/h3>\n<p>\n<b>vm.swappiness<\/b> \u2014 \u00ebsht\u00eb nj\u00eb tjet\u00ebr parametr i b\u00ebrtham\u00ebs q\u00eb mund t\u00eb ndikoj\u00eb n\u00eb performanc\u00ebn e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave. Ky parametr p\u00ebrdoret p\u00ebr t\u00eb menaxhuar sjelljen e swap-it (swappiness) (k\u00ebmbimi i faqeve n\u00eb memorie dhe jasht\u00eb saj) n\u00eb Linux. Vlera varion nga 0 n\u00eb 100. Ajo p\u00ebrcakton sa memorie do t\u00eb shkarkohet ose do t\u00eb shkarkohet. Zero do t\u00eb thot\u00eb ndalimi i k\u00ebmbimit, nd\u00ebrsa 100 do t\u00eb thot\u00eb k\u00ebmbim agresiv.<\/p>\n<p>Mund t\u00eb merrni nj\u00eb performanc\u00eb t\u00eb mir\u00eb duke vendosur vlera m\u00eb t\u00eb ul\u00ebta.<\/p>\n<p>Vendosja e vler\u00ebs 0 n\u00eb b\u00ebrthamat m\u00eb t\u00eb reja mund t\u00eb \u00e7oj\u00eb n\u00eb at\u00eb q\u00eb OOM Killer (procesi i pastrimit t\u00eb memories n\u00eb Linux) t\u00eb vras\u00eb procesin. Pra, \u00ebsht\u00eb e sigurt t\u00eb vendosni vler\u00ebn 1, n\u00ebse doni t\u00eb minimizoni k\u00ebmbimin. Vlera e paracaktuar n\u00eb Linux \u00ebsht\u00eb 60. Nj\u00eb vler\u00eb m\u00eb e lart\u00eb b\u00ebn q\u00eb MMU (blloku i menaxhimit t\u00eb memories) t\u00eb p\u00ebrdor\u00eb m\u00eb shum\u00eb hap\u00ebsir\u00eb k\u00ebmbimi sesa RAM, nd\u00ebrsa nj\u00eb vler\u00eb m\u00eb e ul\u00ebt ruan m\u00eb shum\u00eb t\u00eb dh\u00ebna\/kod n\u00eb memorie.<\/p>\n<p>Nj\u00eb vler\u00eb m\u00eb e ul\u00ebt \u00ebsht\u00eb nj\u00eb bast i mir\u00eb p\u00ebr p\u00ebrmir\u00ebsimin e performanc\u00ebs n\u00eb PostgreSQL.<\/p>\n<h3>vm.overcommit_memory \/ vm.overcommit_ratio<\/h3>\n<p>\nAplikacionet marrin memorie dhe e lirojn\u00eb at\u00eb kur nuk \u00ebsht\u00eb m\u00eb e nevojshme. Por n\u00eb disa raste aplikacioni merr shum\u00eb memorie dhe nuk e lirojn\u00eb at\u00eb. Kjo mund t\u00eb shkaktoj\u00eb OOM killer. K\u00ebtu jan\u00eb vlerat e mundshme p\u00ebr parametrin <b>vm.overcommit_memory<\/b> me nj\u00eb p\u00ebrshkrim p\u00ebr secilin:<\/p>\n<ol>\n<li> Overcommit heuristik (e paracaktuar); heuristik\u00eb e bazuar n\u00eb b\u00ebrtham\u00eb<\/li>\n<li> Lejo overcommit n\u00eb \u00e7do rast<\/li>\n<li> Mos e teproni, mos e kaloni koeficientin e overcommit.<\/li>\n<\/ol>\n<p>\n<i>Linku: <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 p\u00ebrqindja e kujtes\u00ebs operative t\u00eb disponueshme p\u00ebr mbingarkim t\u00eb tepruar. Nj\u00eb vler\u00eb prej 50% n\u00eb nj\u00eb sistem me 2 GB RAM mund t\u00eb alokoj\u00eb deri n\u00eb 3 GB RAM.<\/p>\n<p>Vlera 2 p\u00ebr vm.overcommit_memory ofron performanc\u00eb m\u00eb t\u00eb mir\u00eb p\u00ebr PostgreSQL. Kjo vler\u00eb maksimizon p\u00ebrdorimin e RAM-it nga procesi i serverit pa ndonj\u00eb rrezik t\u00eb r\u00ebnd\u00ebsish\u00ebm p\u00ebr t'u vrar\u00eb nga procesi OOM killer. Aplikacioni mund t\u00eb ri-d\u00ebbohet, por vet\u00ebm brenda mbingarkes\u00ebs, duke zvog\u00ebluar rrezikun q\u00eb OOM killer t\u00eb vras\u00eb procesin. Prandaj, vlera 2 sjell nj\u00eb performanc\u00eb m\u00eb t\u00eb mir\u00eb se vlera e paracaktuar 0. Megjithat\u00eb, besueshm\u00ebria mund t\u00eb p\u00ebrmir\u00ebsohet duke mos mbingarkuar memorien jasht\u00eb intervals s\u00eb lejuar. Kjo p\u00ebrjashton riskun e vrasjes s\u00eb procesit nga OOM-killer.<\/p>\n<p>N\u00eb sistemet pa swap, mund t\u00eb ket\u00eb nj\u00eb problem me vm.overcommit_memory q\u00eb \u00ebsht\u00eb e barabart\u00eb me 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 \u00ebsht\u00eb p\u00ebrqindja e memories q\u00eb \u00ebsht\u00eb mbushur me faqe t\u00eb papastra q\u00eb duhet t\u00eb shkruhen n\u00eb disk. Shkarkimi n\u00eb disk realizohet n\u00eb sfond. Vlera e k\u00ebtij parametri varion nga 0 n\u00eb 100; megjithat\u00eb, nj\u00eb vler\u00eb m\u00eb e ul\u00ebt se 5 mund t\u00eb jet\u00eb e paefektshme, dhe disa b\u00ebrtham\u00eb nuk e mb\u00ebshtesin at\u00eb. 10 \u00ebsht\u00eb vlera e paracaktuar n\u00eb shumic\u00ebn e sistemeve Linux. Ju mund t\u00eb p\u00ebrmir\u00ebsoni performanc\u00ebn p\u00ebr operacionet me shkarkim intensiv me nj\u00eb faktor m\u00eb t\u00eb vog\u00ebl, i cili do t\u00eb thot\u00eb se Linux do t\u00eb shkarkoj\u00eb faqet e papastra n\u00eb sfond.<\/p>\n<p>Ju nevojitet t\u00eb caktoni vler\u00ebn <b>vm.dirty_background_bytes<\/b> n\u00eb p\u00ebrputhje me shpejt\u00ebsin\u00eb e diskut tuaj.<\/p>\n<p>P\u00ebr k\u00ebto dy parametra nuk ka vlera \"t\u00eb mira\", pasi t\u00eb dy varen nga hardueri. Megjithat\u00eb, vendosja e vm.dirty_background_ratio n\u00eb 5 dhe vm.dirty_background_bytes n\u00eb 25% t\u00eb shpejt\u00ebsis\u00eb s\u00eb diskut, rrit performanc\u00ebn deri n\u00eb ~ 25% n\u00eb shumic\u00ebn e rasteve.<\/p>\n<h3>vm.dirty_ratio \/ dirty_bytes<\/h3>\n<p>\nKjo \u00ebsht\u00eb e nj\u00ebjt\u00eb me <b>vm.dirty_background_ratio \/ dirty_background_bytes<\/b>, p\u00ebrve\u00e7se shkarkimi realizohet gjat\u00eb seanc\u00ebs s\u00eb pun\u00ebs, duke bllokuar aplikacionin. Prandaj, vm.dirty_ratio duhet t\u00eb jet\u00eb m\u00eb e lart\u00eb se <b>vm.dirty_background_ratio<\/b>. Kjo siguron q\u00eb proceset e sfondit do t\u00eb fillojn\u00eb m\u00eb her\u00ebt p\u00ebr t\u00eb shmangur bllokimin maksimale t\u00eb mundshme t\u00eb aplikacionit. Ju mund t\u00eb p\u00ebrshtatni diferenc\u00ebn midis k\u00ebtyre dy marr\u00ebdh\u00ebnieve n\u00eb var\u00ebsi t\u00eb ngarkes\u00ebs s\u00eb hyrjes\/daljes n\u00eb disk.<\/p>\n<h2>P\u00ebrfundimi<\/h2>\n<p>\nMund t\u00eb konfiguroni parametra t\u00eb tjer\u00eb p\u00ebr t\u00eb rritur performanc\u00ebn, por p\u00ebrmir\u00ebsimet do t\u00eb jen\u00eb minimale dhe nuk do t\u00eb fitoni ndonj\u00eb p\u00ebrfitim t\u00eb ve\u00e7ant\u00eb. Duhet t\u00eb kemi parasysh se jo t\u00eb gjith\u00eb parametrat i p\u00ebrkasin t\u00eb gjitha llojeve t\u00eb aplikacioneve. Disa aplikacione funksionojn\u00eb m\u00eb mir\u00eb kur rregullojm\u00eb disa parametra, nd\u00ebrsa disa t\u00eb tjera jo. Duhet t\u00eb gjeni balanc\u00ebn e duhur mes konfigurimeve t\u00eb k\u00ebtyre parametrave p\u00ebr ngarkes\u00ebn e pritur dhe llojin e aplikacionit, duke marr\u00eb parasysh gjithashtu sjelljen e sistemit operativ. Rregullimi i parametrave t\u00eb b\u00ebrtham\u00ebs nuk \u00ebsht\u00eb aq i leht\u00eb sa rregullimi i parametrave t\u00eb baz\u00ebs s\u00eb t\u00eb dh\u00ebnave: k\u00ebtu \u00ebsht\u00eb m\u00eb e v\u00ebshtir\u00eb t\u00eb jepen rekomandime.<br \/>\n<br \/>Burimi: <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.2 - 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\/sq\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47Rregullimi i parametrave t\u00eb b\u00ebrtham\u00ebs Linux p\u00ebr optimizimin e PostgreSQL | ProHoster","description":"Performanca optimale.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/35920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=35920"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/35920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/26870"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=35920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=35920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=35920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}