{"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":"Configurazione dei parametri del kernel Linux per ottimizzare PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Configurazione 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 da parametri del sistema operativo correttamente definiti. Parametri mal configurati del kernel OS possono portare a una riduzione delle prestazioni del server del database. \u00c8 quindi fondamentale che questi parametri siano impostati in base al server del database e al suo carico di lavoro. In questo post discuteremo alcuni importanti parametri del kernel Linux che possono influenzare le prestazioni del server del database e come 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 che un processo Linux pu\u00f2 allocare. 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 \u00e8 richiesta meno memoria condivisa System V in byte.<\/p>\n<p>Fino alla versione 9.3, SHMMAX era il parametro del kernel pi\u00f9 importante. Il valore di SHMMAX \u00e8 espresso in byte.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAnalogamente, <b>SHMALL<\/b> \u00e8 un altro parametro del kernel utilizzato per definire <br \/>\nvolume complessivo di pagine della memoria condivisa (shared memory). Per visualizzare i valori correnti di SHMMAX, SHMALL o SHMMIN, utilizza 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\ndimensione massima segmento (kbytes) = 1073741824\ntotale massimo della memoria condivisa (kbytes) = 17179869184\ndimensione minima segmento (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  il Thu Aug 16 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(numero massimo di segmenti di memoria condivisa per processo)\n\tshmall:    1024\t(massima quantit\u00e0 di 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 parametri del kernel. Ogni volta che ricevi i seguenti messaggi di errore, significa che hai una versione pi\u00f9 vecchia di PostgreSQL e un valore SHMMAX molto basso. Si prevede 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 durante il tentativo di inizializzare il cluster PostgreSQL utilizzando il comando <i>initdb<\/i>.<\/p>\n<p><b>Errore initdb<\/b><br \/>\n<code>DETTAGLI: La chiamata di sistema non riuscita \u00e8 stata 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 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 diminuendo shared_buffers o max_connections. <\/p>\n<p>Se la dimensione della richiesta \u00e8 gi\u00e0 piccola, \u00e8 possibile che sia inferiore al parametro SHMMIN del tuo kernel,<br \/>\nnel qual caso \u00e8 necessario aumentare la dimensione della richiesta o riconfigurare lo 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>Allo stesso modo, puoi ricevere un errore durante l'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 era 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 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 diminuendo shared_buffers o max_connections.<\/p>\n<p>Se la dimensione della richiesta \u00e8 gi\u00e0 piccola, \u00e8 possibile che sia inferiore al parametro SHMMIN del tuo kernel, <br \/>\nnel qual caso \u00e8 necessario aumentare la dimensione della richiesta o riconfigurare lo SHMMIN.<\/p>\n<p>La documentazione di PostgreSQL contiene ulteriori informazioni sulla configurazione della memoria condivisa.<\/code><\/p>\n<h3>Comprendere le 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 utilizzato per modificare temporaneamente il valore. Per impostare valori permanenti, aggiungi una voce in <i>\/etc\/sysctl.conf<\/i>. I dettagli sono riportati 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<\/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, di default vengono utilizzate pagine di memoria da 4 KB, in BSD \u2014 <i>Super Pagine<\/i>, e in Windows \u2014 <i>Pagine grandi (Large Pages)<\/i>. Una pagina \u00e8 una porzione di memoria RAM assegnata a un processo. Un processo pu\u00f2 avere pi\u00f9 pagine a seconda delle esigenze di memoria. Maggiore \u00e8 la memoria richiesta da un processo, pi\u00f9 pagine gli vengono allocate. Il sistema operativo supporta una tabella di allocazione delle pagine per i processi. Pi\u00f9 piccolo \u00e8 il dimensionamento della pagina, pi\u00f9 grande sar\u00e0 la tabella, e pi\u00f9 tempo ci vorr\u00e0 per cercare una pagina in questa tabella. Pertanto, le pagine grandi consentono di gestire grandi quantit\u00e0 di memoria con costi di overhead ridotti; meno visualizzazioni di pagine, meno errori di pagina, operazioni di lettura\/scrittura pi\u00f9 veloci attraverso grandi buffer. Come risultato, si ha un miglioramento delle prestazioni.<\/p>\n<p>PostgreSQL supporta le grandi pagine solo su Linux. Per impostazione predefinita, Linux utilizza pagine di memoria da 4 KB, quindi in caso di un numero eccessivo di operazioni di memoria, \u00e8 necessario impostare pagine di dimensioni maggiori. Si osserva un aumento delle prestazioni utilizzando grandi pagine di 2 MB e fino a 1 GB. La dimensione della grande pagina pu\u00f2 essere impostata durante il caricamento. Puoi controllare facilmente i parametri delle grandi pagine e il loro utilizzo sul tuo computer Linux utilizzando il comando <i>cat \/proc\/meminfo | grep -i huge<\/i>.<\/p>\n<p><b>Recupero delle informazioni sulle grandi pagine (solo su Linux)<\/b><\/p>\n<pre><code class=\"bash\">Nota: Questo \u00e8 valido solo per Linux, per altri sistemi operativi questa 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 grande pagina \u00e8 impostata a 2048 (2 MB), il numero totale di grandi pagine \u00e8 0. Ci\u00f2 significa che le grandi pagine sono disabilitate.<\/p>\n<h3>Script per determinare il numero di grandi pagine<\/h3>\n<p>\nQuesto semplice script restituisce il numero necessario di grandi pagine. Esegui lo script sul tuo server Linux mentre PostgreSQL \u00e8 in funzione. Assicurati che la variabile d'ambiente <i>$PGDATA<\/i> indichi la directory dei dati di PostgreSQL.<\/p>\n<p><b>Ottenere il numero richiesto di grandi pagine<\/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 per le grandi pagine \u00e8 88, quindi \u00e8 necessario impostare il valore a 88.<\/p>\n<p><b>Impostazione delle grandi pagine<\/b><\/p>\n<pre><code class=\"bash\">sysctl -w vm.nr_hugepages=88<\/code><\/pre>\n<p>\nControlla le grandi pagine ora, vedrai che le grandi pagine non sono in uso (HugePages_Free = HugePages_Total).<\/p>\n<p><b>Ulteriori 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:       88\nHugePages_Rsvd:        0\nHugePages_Surp:        0\nHugepagesize:       2048 kB<\/code><\/pre>\n<p>\nOra imposta il parametro huge_pages su \u00abon\u00bb in $PGDATA\/postgresql.conf e riavvia il server.<\/p>\n<p><b>E ancora 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:       81\nHugePages_Rsvd:      64\nHugePages_Surp:        0\nHugepagesize:       2048 kB<\/code><\/pre>\n<p>\nOra puoi vedere che si stanno utilizzando pochissime pagine di grandi dimensioni. Proviamo ora ad aggiungere alcuni dati al database.<\/p>\n<p><b>Alcune operazioni sul database per gestire le 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>\nVediamo se ora stiamo utilizzando pi\u00f9 grandi pagine rispetto a prima.<\/p>\n<p><b>Ancora alcune 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 \u00e8 in uso.<\/p>\n<p>Nota: il valore degli HugePages utilizzato qui \u00e8 molto basso, il che non \u00e8 tipico per una macchina in produzione. Ti preghiamo di valutare il numero necessario di pagine per il tuo sistema e di impostarle di conseguenza in base al carico e alle risorse.<\/p>\n<h3>vm.swappiness<\/h3>\n<p>\n<b>vm.swappiness<\/b> \u2014 \u00e8 un altro parametro del kernel che pu\u00f2 influenzare le prestazioni del database. Questo parametro \u00e8 usato per gestire il comportamento dello swapping (swappiness) (movimento delle pagine in memoria e fuori) in Linux. Il valore varia da 0 a 100. Determina quanta memoria sar\u00e0 scaricata o liberata. Zero significa disattivare lo swap, mentre 100 significa uno swap aggressivo.<\/p>\n<p>Puoi ottenere buone prestazioni impostando valori pi\u00f9 bassi.<\/p>\n<p>Impostare un valore di 0 nei kernel pi\u00f9 recenti pu\u00f2 portare a un'azione dell'OOM Killer (il processo di pulizia della memoria in Linux) che terminer\u00e0 il processo. Pertanto, \u00e8 sicuro impostare un valore di 1 se si desidera ridurre al minimo lo swapping. Il valore predefinito in Linux \u00e8 60. Un valore pi\u00f9 alto costringe l'MMU (Unit\u00e0 di Gestione della Memoria) a utilizzare pi\u00f9 spazio di swapping rispetto alla RAM, mentre un valore pi\u00f9 basso mantiene 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 acquisiscono memoria e la liberano quando non \u00e8 pi\u00f9 necessaria. Tuttavia, in alcuni casi, un'applicazione pu\u00f2 ricevere troppa memoria e non rilasciarla. Questo pu\u00f2 attivare l'OOM killer. Ecco i possibili valori per il 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> Consenti overcommit in ogni caso<\/li>\n<li> Non esagerare, non superare il coefficiente di overcommit.<\/li>\n<\/ol>\n<p>\n<i>Collegamento: <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 della memoria RAM disponibile per l'overcommit. 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 performance per PostgreSQL. Questo valore massimizza l'uso della memoria RAM da parte del processo server senza un rischio significativo di essere terminato dal processo OOM killer. L'applicazione potr\u00e0 riavviarsi, ma solo entro i limiti del sovrautilizzo, riducendo cos\u00ec il rischio che l'OOM killer termini il processo. Pertanto, il valore 2 offre prestazioni superiori rispetto al valore predefinito 0. Tuttavia, l'affidabilit\u00e0 pu\u00f2 essere migliorata evitando di sovraccaricare la memoria oltre il limite consentito. Questo esclude il rischio che il processo venga terminato dall'OOM killer.<\/p>\n<p>Nei sistemi senza swap potrebbe sorgere 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 flush su disco avviene in background. Questo valore varia da 0 a 100; tuttavia, un valore inferiore a 5 pu\u00f2 risultare inefficace e alcuni kernel potrebbero non supportarlo. 10 \u00e8 il valore predefinito nella maggior parte dei sistemi Linux. \u00c8 possibile migliorare le prestazioni per operazioni di scrittura intensiva con un rapporto inferiore, il che significa che Linux scriver\u00e0 le pagine sporche in background.<\/p>\n<p>\u00c8 necessario impostare il valore <b>vm.dirty_background_bytes<\/b> in base alla velocit\u00e0 del proprio disco.<\/p>\n<p>Non esistono valori \"buoni\" per questi due parametri, 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, aumenta le prestazioni fino a ~ 25% nella maggior parte dei casi.<\/p>\n<h3>vm.dirty_ratio \/ dirty_bytes<\/h3>\n<p>\n\u00c8 lo stesso di <b>vm.dirty_background_ratio \/ dirty_background_bytes<\/b>, tranne per il fatto che il flush 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 avviati prima, per evitare il massimo possibile di blocco dell'applicazione. Puoi regolare la differenza tra questi due rapporti a seconda del carico dell'input\/output del disco.<\/p>\n<h2>Risultato<\/h2>\n<p>\nPuoi regolare altri parametri per aumentare le prestazioni, ma i miglioramenti saranno minimi e non ne trarrai un grande vantaggio. Dobbiamo ricordare che non tutti i parametri si applicano a tutti i tipi di applicazioni. Alcune applicazioni funzionano meglio quando configuriamo alcuni parametri, mentre altre no. Devi trovare il giusto equilibrio tra le configurazioni di questi parametri per il carico di lavoro previsto e il tipo di applicazione, tenendo presente anche il comportamento del sistema operativo. Configurare i parametri del kernel non \u00e8 cos\u00ec semplice come configurare quelli del database: \u00e8 pi\u00f9 complesso fornire le tue 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 4.9.10 - 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 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\" \/>\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) 4.9.10\" \/>\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 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\" \/>\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 dei parametri del kernel Linux per ottimizzare PostgreSQL | ProHoster","description":"Le prestazioni ottimali di PostgreSQL dipendono dalla corretta configurazione dei parametri del sistema operativo. Parametri del kernel mal configurati possono compromettere le prestazioni del server del database. \u00c8 quindi fondamentale che questi parametri siano impostati in base al server del database e al suo carico di lavoro. In questo post discuteremo alcuni importanti parametri del kernel Linux che possono influire sulle prestazioni.","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 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","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"},"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}]}}