{"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\/it\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","title":{"rendered":"Impostazione dei parametri del kernel Linux per ottimizzare PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Impostazione dei parametri del kernel Linux per ottimizzare PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/07\/a28458ff50cdc517aad71b47adab6eb3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Le prestazioni ottimali di PostgreSQL dipendono dalla corretta definizione dei parametri del sistema operativo. Parametri del kernel del sistema operativo mal configurati possono portare a una riduzione delle prestazioni del server del database. \u00c8 quindi fondamentale che questi parametri siano configurati in base al server del database e al suo carico di lavoro. In questo post discuteremo alcuni parametri importanti del kernel di Linux che possono influenzare le prestazioni del server del database e i modi per configurarli.<\/p>\n<h2>SHMMAX \/ SHMALL<\/h2>\n<p>\n<b>SHMMAX<\/b> \u00e8 un parametro del kernel utilizzato per definire la dimensione massima di un singolo segmento di memoria condivisa (shared memory) che pu\u00f2 essere allocato da un processo Linux. Fino alla versione 9.2, PostgreSQL utilizzava System V (SysV), per il quale \u00e8 necessaria la configurazione di SHMMAX. Dopo la 9.2, PostgreSQL \u00e8 passato alla memoria condivisa POSIX. Pertanto, ora sono necessari meno byte di memoria condivisa System V.<\/p>\n<p>Fino alla versione 9.3, SHMMAX era il parametro del kernel pi\u00f9 importante. Il valore di SHMMAX \u00e8 specificato in byte.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAllo stesso modo, <b>SHMALL<\/b> \u00e8 un altro parametro del kernel utilizzato per definire <br \/>\nil volume totale di pagine di memoria condivisa (shared memory). Per visualizzare i valori attuali di SHMMAX, SHMALL o SHMMIN, utilizzare il comando <i>ipcs<\/i>.<\/p>\n<p><b>Dettagli SHM* \u2014 Linux<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -lm\n\n------ Limiti della memoria condivisa --------\nnumero massimo di segmenti = 4096\nmax seg size (kbytes) = 1073741824\nmax total shared memory (kbytes) = 17179869184\nmin seg size (bytes) = 1<\/code><\/pre>\n<p>\n<b>Dettagli SHM* \u2014 MacOS X<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -M\nStato IPC da  a gioved\u00ec 16 agosto 22:20:35 PKT 2018\nshminfo:\n\tshmmax: 16777216\t(dimensione massima del segmento di memoria condivisa)\n\tshmmin:       1\t(dimensione minima del segmento di memoria condivisa)\n\tshmmni:      32\t(numero massimo di identificatori di memoria condivisa)\n\tshmseg:       8\t(segmenti di memoria condivisa massimi per processo)\n\tshmall:    1024\t(importo massimo della memoria condivisa in pagine)\n<\/code><\/pre>\n<p>\nPostgreSQL utilizza <b>System V IPC<\/b> per allocare memoria condivisa. Questo parametro \u00e8 uno dei pi\u00f9 importanti del kernel. Ogni volta che ricevi i seguenti messaggi di errore, significa che hai una versione precedente di PostgreSQL e un valore SHMMAX molto basso. Ci si aspetta che gli utenti correggano e aumentino il valore in base alla memoria condivisa che intendono utilizzare.<\/p>\n<h3>Possibili errori di configurazione errata<\/h3>\n<p>\nSe SHMMAX \u00e8 configurato in modo errato, puoi ricevere un errore quando tenti di inizializzare un cluster PostgreSQL utilizzando il comando <i>initdb<\/i>.<\/p>\n<p><b>Errore di initdb<\/b><br \/>\n<code>DETTAGLIO: La chiamata di sistema fallita era shmget(key=1, size=2072576, 03600). <\/p>\n<p>SUGGERIMENTO: Questo errore di solito significa che la richiesta di PostgreSQL per un segmento di memoria condivisa ha superato il parametro SHMMAX del tuo kernel.\u00a0 <br \/>\nPuoi ridurre la dimensione della richiesta o riconfigurare il kernel con un SHMMAX pi\u00f9 grande. Per ridurre la dimensione della richiesta (attualmente 2072576 byte), <br \/>\nriduci l'uso della memoria condivisa di PostgreSQL, magari riducendo shared_buffers o max_connections. <\/p>\n<p>Se la dimensione della richiesta \u00e8 gi\u00e0 ridotta, \u00e8 possibile che sia inferiore al parametro SHMMIN del tuo kernel,<br \/>\nnel qual caso \u00e8 necessario aumentare la dimensione della richiesta o riconfigurare SHMMIN. <\/p>\n<p>La documentazione di PostgreSQL contiene ulteriori informazioni sulla configurazione della memoria condivisa. Il processo figlio \u00e8 terminato con codice di uscita 1<\/code><\/p>\n<p>In modo simile, puoi ottenere un errore al momento dell'avvio del server PostgreSQL utilizzando il comando <i>pg_ctl<\/i>.<\/p>\n<p><b>Errore pg_ctl<\/b><br \/>\n<code>DETTAGLIO: La chiamata di sistema fallita \u00e8 stata shmget(key=5432001, size=14385152, 03600).<\/p>\n<p>SUGGERIMENTO: Questo errore di solito significa che la richiesta di PostgreSQL per un segmento di memoria condivisa ha superato il parametro SHMMAX del tuo kernel.<\/p>\n<p>Puoi ridurre la dimensione della richiesta o riconfigurare il kernel con un SHMMAX pi\u00f9 grande.; Per ridurre la dimensione della richiesta (attualmente 14385152 byte), riduci l'uso della memoria condivisa di PostgreSQL, magari riducendo shared_buffers o max_connections.<\/p>\n<p>Se la dimensione della richiesta \u00e8 gi\u00e0 ridotta, \u00e8 possibile che sia inferiore al parametro SHMMIN del tuo kernel, <br \/>\nnel qual caso \u00e8 necessario aumentare la dimensione della richiesta o riconfigurare SHMMIN.<\/p>\n<p>La documentazione di PostgreSQL contiene ulteriori informazioni sulla configurazione della memoria condivisa.<\/code><\/p>\n<h3>Comprensione delle differenze nelle definizioni<\/h3>\n<p>\nLa definizione dei parametri SHMMAX\/SHMALL \u00e8 leggermente diversa in Linux e 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>\nTeam <i>sysctl<\/i> pu\u00f2 essere utilizzata per modificare temporaneamente il valore. Per impostare valori permanenti, aggiungi una voce in <i>\/etc\/sysctl.conf<\/i>. Maggiori dettagli sono forniti di seguito.<\/p>\n<p><b>Modifica dei parametri del kernel su 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>Modifica dei parametri del kernel su 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>Non dimenticare di<\/b>: per rendere le modifiche permanenti, aggiungi questi valori in \/etc\/sysctl.conf<\/p>\n<h2>Pagine grandi (Huge Pages)<\/h2>\n<p>\nIn Linux, per impostazione predefinita, vengono utilizzate pagine di memoria da 4 KB, in BSD \u2014 <i>Super Pages<\/i>, e in Windows \u2014 <i>Large Pages<\/i>. Una pagina \u00e8 una parte della memoria volatile assegnata a un processo. Un processo pu\u00f2 avere pi\u00f9 pagine a seconda delle esigenze di memoria. Pi\u00f9 memoria richiede un processo, pi\u00f9 pagine gli vengono assegnate. Il sistema operativo supporta una tabella di assegnazione delle pagine per i processi. Minore \u00e8 la dimensione della pagina, pi\u00f9 grande \u00e8 la tabella, maggiore \u00e8 il tempo richiesto per cercare la pagina in questa tabella delle pagine. Pertanto, le pagine grandi consentono di utilizzare una grande quantit\u00e0 di memoria con una minore sovraccarico; meno accessi alle pagine, meno errori di pagina, operazioni di lettura\/scrittura pi\u00f9 veloci tramite buffer pi\u00f9 grandi. Di conseguenza, si ottimizza le prestazioni.<\/p>\n<p>PostgreSQL supporta le pagine grandi solo su Linux. Per impostazione predefinita, Linux utilizza pagine di memoria di 4 KB, quindi nei casi in cui ci siano troppe operazioni di memoria, \u00e8 necessario impostare pagine di dimensioni maggiori. Si osserva un aumento delle prestazioni utilizzando pagine grandi di dimensione 2 MB fino a 1 GB. La dimensione della pagina grande pu\u00f2 essere impostata durante l'avvio. Puoi facilmente controllare i parametri delle pagine grandi e il loro utilizzo sul tuo computer Linux usando il comando <i>cat \/proc\/meminfo | grep -i huge<\/i>.<\/p>\n<p><b>Ottenere informazioni sulle pagine grandi (solo su Linux)<\/b><\/p>\n<pre><code class=\"bash\">Nota: questo \u00e8 solo per Linux, per altri sistemi operativi quest'operazione \u00e8 ignorata$ 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>\nIn questo esempio, anche se la dimensione della pagina grande \u00e8 impostata a 2048 (2 MB), il numero totale di pagine grandi \u00e8 0. Questo significa che le pagine grandi sono disabilitate.<\/p>\n<h3>Script per determinare il numero di pagine grandi<\/h3>\n<p>\nQuesto semplice script restituisce il numero necessario di pagine grandi. Esegui lo script sul tuo server Linux mentre PostgreSQL \u00e8 in esecuzione. Assicurati che la variabile d'ambiente <i>$PGDATA<\/i> sia impostata sulla directory dei dati di PostgreSQL.<\/p>\n<p><b>Ottenere il numero di pagine grandi richieste<\/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>\nL'output dello script appare come segue:<\/p>\n<p><b>Output dello script<\/b><\/p>\n<pre><code class=\"bash\">Pid:            12737\nVmPeak:        180932 kB\nHugepagesize:   2048 kB\nSet Huge Pages: 88<\/code><\/pre>\n<p>\nIl valore raccomandato delle pagine grandi \u00e8 88, quindi dovresti impostare il valore a 88.<\/p>\n<p><b>Impostazione delle pagine grandi<\/b><\/p>\n<pre><code class=\"bash\">sysctl -w vm.nr_hugepages=88<\/code><\/pre>\n<p>\nControlla le pagine grandi ora, vedrai che non vengono utilizzate (HugePages_Free = HugePages_Total).<\/p>\n<p><b>Di nuovo informazioni sulle pagine grandi (solo su 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:       88\nHugePages_Rsvd:       0\nHugePages_Surp:       0\nHugepagesize:        2048 kB<\/code><\/pre>\n<p>\nOra imposta il parametro huge_pages \u00abon\u00bb in $PGDATA\/postgresql.conf e riavvia il server.<\/p>\n<p><b>E di nuovo informazioni sulle pagine grandi (solo su 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:       81\nHugePages_Rsvd:       64\nHugePages_Surp:       0\nHugepagesize:        2048 kB<\/code><\/pre>\n<p>\nOra puoi vedere che vengono utilizzate molto poche pagine grandi. Proviamo ora ad aggiungere alcuni dati al database.<\/p>\n<p><b>Alcune operazioni con il database per l'utilizzo delle grandi pagine<\/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>\nDiamo un'occhiata se stiamo utilizzando pi\u00f9 grandi pagine ora rispetto a prima.<\/p>\n<p><b>Ancora una volta, informazioni sulle grandi pagine (solo su 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>\nOra puoi vedere che la maggior parte delle grandi pagine vengono utilizzate.<\/p>\n<p>Nota: il valore approssimativo per HugePages utilizzato qui \u00e8 molto basso, il che non \u00e8 normale per una macchina in produzione. Si prega di valutare il numero necessario di pagine per il proprio sistema e impostarle di conseguenza in base al carico e alle risorse.<\/p>\n<h3>vm.swappiness<\/h3>\n<p>\n<b>vm.swappiness<\/b> \u00e8 un altro parametro del kernel che pu\u00f2 influenzare le prestazioni del database. Questo parametro viene utilizzato per gestire il comportamento di swap (swappiness) (trasferimento delle pagine in memoria e viceversa) in Linux. Il valore varia da 0 a 100. Definisce quanta memoria verr\u00e0 scaricata o scambiata. Zero significa disattivare lo scambio, mentre 100 significa uno scambio aggressivo.<\/p>\n<p>Puoi ottenere buone prestazioni impostando valori pi\u00f9 bassi.<\/p>\n<p>Impostare il valore 0 nei kernel pi\u00f9 recenti pu\u00f2 portare OOM Killer (il processo di pulizia della memoria in Linux) a terminare il processo. Pertanto, \u00e8 possibile impostare in modo sicuro un valore di 1 se si desidera minimizzare lo swapping. Il valore predefinito in Linux \u00e8 60. Un valore pi\u00f9 alto fa s\u00ec che l'MMU (modulo di gestione della memoria) utilizzi pi\u00f9 spazio di swap rispetto alla RAM, mentre un valore pi\u00f9 basso conserva pi\u00f9 dati\/codice in memoria.<\/p>\n<p>Un valore pi\u00f9 basso \u00e8 una buona scommessa per migliorare le prestazioni in PostgreSQL.<\/p>\n<h3>vm.overcommit_memory \/ vm.overcommit_ratio<\/h3>\n<p>\nLe applicazioni ricevono memoria e la rilasciano quando non \u00e8 pi\u00f9 necessaria. Ma in alcuni casi, un'applicazione riceve troppa memoria e non la rilascia. Questo pu\u00f2 attivare l'OOM killer. Ecco i possibili valori del parametro <b>vm.overcommit_memory<\/b> con una descrizione per ciascuno:<\/p>\n<ol>\n<li> Overcommit euristico (predefinito); euristica basata sul kernel<\/li>\n<li> Consentire l'overcommit in ogni caso<\/li>\n<li> Non esagerare, non superare il coefficiente di overcommit.<\/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 percentuale di memoria RAM disponibile per il sovraccarico eccessivo. Un valore del 50% in un sistema con 2 GB di RAM pu\u00f2 allocare fino a 3 GB di RAM.<\/p>\n<p>Il valore 2 per vm.overcommit_memory garantisce migliori prestazioni per PostgreSQL. Questo valore massimizza l'utilizzo della memoria RAM da parte del processo server senza significativi rischi di essere terminato dal processo OOM killer. L'applicazione potr\u00e0 riavviarsi, ma solo nei limiti del sovraccarico, riducendo il rischio che l'OOM killer uccida il processo. Pertanto, il valore 2 offre prestazioni migliori rispetto al valore predefinito 0. Tuttavia, l'affidabilit\u00e0 pu\u00f2 essere migliorata evitando il sovraccarico della memoria oltre il range consentito. Questo elimina il rischio di terminazione del processo da parte dell'OOM killer.<\/p>\n<p>Nei sistemi senza swap puede esserci un problema con vm.overcommit_memory impostato a 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 \u00e8 la percentuale di memoria occupata da pagine sporche che devono essere scritte su disco. Il salvataggio su disco avviene in background. Il valore di questo parametro oscilla tra 0 e 100; tuttavia, un valore inferiore a 5 pu\u00f2 essere inefficace e alcuni kernel non lo supportano. 10 \u00e8 il valore predefinito nella maggior parte dei sistemi Linux. Puoi migliorare le prestazioni per le operazioni di scrittura intensiva con un fattore pi\u00f9 basso, il che significa che Linux salver\u00e0 le pagine sporche in background.<\/p>\n<p>Devi impostare il valore <b>vm.dirty_background_bytes<\/b> in base alla velocit\u00e0 del tuo disco.<\/p>\n<p>Per questi due parametri non ci sono valori \"buoni\", poich\u00e9 entrambi dipendono dall'hardware. Tuttavia, impostare vm.dirty_background_ratio a 5 e vm.dirty_background_bytes al 25% della velocit\u00e0 del disco migliora le prestazioni fino a circa il 25% nella maggior parte dei casi.<\/p>\n<h3>vm.dirty_ratio \/ dirty_bytes<\/h3>\n<p>\n\u00c8 lo stesso che <b>vm.dirty_background_ratio \/ dirty_background_bytes<\/b>, tranne per il fatto che il salvataggio avviene durante la sessione di lavoro, bloccando l'applicazione. Pertanto, vm.dirty_ratio deve essere superiore a <b>vm.dirty_background_ratio<\/b>. Questo garantisce che i processi in background vengano eseguiti prima per evitare il massimo possibile blocco dell'applicazione. Puoi configurare la differenza tra questi due rapporti in base al carico di input\/output del disco.<\/p>\n<h2>Risultato<\/h2>\n<p>\nPuoi configurare altre impostazioni per aumentare le prestazioni, ma i miglioramenti saranno minimi e non otterrai benefici significativi. Dobbiamo ricordare che non tutte le impostazioni si applicano a tutti i tipi di applicazioni. Alcune applicazioni funzionano meglio quando configuriamo determinate impostazioni, mentre altre no. Devi trovare il giusto equilibrio tra le configurazioni di queste impostazioni per il carico di lavoro previsto e il tipo di applicazione, e inoltre, quando configuri, \u00e8 necessario tenere presente il comportamento del sistema operativo. Configurare le impostazioni del kernel non \u00e8 cos\u00ec semplice come configurare quelle del database: qui \u00e8 pi\u00f9 complicato dare raccomandazioni.<br \/>\n<br \/>Fonte: <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.1.1 - 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\/it\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Configurazione delle impostazioni del kernel Linux per ottimizzare PostgreSQL | ProHoster","description":"Prestazioni ottimali.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/35920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=35920"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/35920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/26870"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=35920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=35920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=35920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}