{"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\/fr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","title":{"rendered":"Configuration des param\u00e8tres du noyau Linux pour optimiser PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Configuration des param\u00e8tres du noyau Linux pour optimiser PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/07\/a28458ff50cdc517aad71b47adab6eb3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> Les performances optimales de PostgreSQL d\u00e9pendent des param\u00e8tres du syst\u00e8me d'exploitation correctement d\u00e9finis. Des param\u00e8tres du noyau OS mal configur\u00e9s peuvent entra\u00eener une baisse des performances du serveur de base de donn\u00e9es. Il est donc imp\u00e9ratif que ces param\u00e8tres soient ajust\u00e9s en fonction du serveur de base de donn\u00e9es et de sa charge de travail. Dans cet article, nous allons discuter de certains param\u00e8tres importants du noyau Linux qui peuvent affecter les performances du serveur de base de donn\u00e9es et de la mani\u00e8re de les configurer.<\/p>\n<h2>SHMMAX \/ SHMALL<\/h2>\n<p>\n<b>SHMMAX<\/b> est un param\u00e8tre du noyau utilis\u00e9 pour d\u00e9finir la taille maximale d'un segment de m\u00e9moire partag\u00e9e (shared memory) qu'un processus Linux peut allouer. Avant la version 9.2, PostgreSQL utilisait System V (SysV), pour lequel une configuration de SHMMAX est requise. Apr\u00e8s 9.2, PostgreSQL a bascul\u00e9 vers la m\u00e9moire partag\u00e9e POSIX. Il n\u00e9cessite donc d\u00e9sormais moins d'octets de m\u00e9moire partag\u00e9e System V.<\/p>\n<p>Avant la version 9.3, SHMMAX \u00e9tait le param\u00e8tre du noyau le plus important. La valeur de SHMMAX est d\u00e9finie en octets.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDe m\u00eame, <b>SHMALL<\/b> est un autre param\u00e8tre du noyau utilis\u00e9 pour d\u00e9finir <br \/>\nle volume total de pages de m\u00e9moire partag\u00e9e (shared memory). Pour consulter les valeurs actuelles de SHMMAX, SHMALL ou SHMMIN, utilisez la commande <i>ipcs<\/i>.<\/p>\n<p><b>D\u00e9tails SHM* \u2014 Linux<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -lm\n\n------ Limites de m\u00e9moire partag\u00e9e --------\nNombre max de segments = 4096\nTaille max de seg (ko) = 1073741824\nM\u00e9moire partag\u00e9e totale max (ko) = 17179869184\nTaille min de seg (octets) = 1<\/code><\/pre>\n<p>\n<b>D\u00e9tails SHM* \u2014 MacOS X<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -M\nStatut IPC \u00e0 partir de  au  jeu. 16 ao\u00fbt 22:20:35 PKT 2018\nshminfo:\n\tshmmax: 16777216\t(taille max de segment de m\u00e9moire partag\u00e9e)\n\tshmmin:       1\t(taille min de segment de m\u00e9moire partag\u00e9e)\n\tshmmni:      32\t(nombre max d'identifiants de m\u00e9moire partag\u00e9e)\n\tshmseg:       8\t(nombre max de segments de m\u00e9moire partag\u00e9e par processus)\n\tshmall:    1024\t(montant max de m\u00e9moire partag\u00e9e en pages)\n<\/code><\/pre>\n<p>\nPostgreSQL utilise <b>System V IPC<\/b> pour allouer de la m\u00e9moire partag\u00e9e. Ce param\u00e8tre est l'un des plus importants du noyau. Chaque fois que vous recevez les messages d'erreur suivants, cela signifie que vous avez une version ant\u00e9rieure de PostgreSQL et que vous avez une valeur SHMMAX tr\u00e8s basse. Les utilisateurs sont cens\u00e9s ajuster et augmenter la valeur en fonction de la m\u00e9moire partag\u00e9e qu'ils pr\u00e9voient d'utiliser.<\/p>\n<h3>Erreurs possibles de configuration incorrecte<\/h3>\n<p>\nSi SHMMAX est mal configur\u00e9, vous pouvez obtenir une erreur lors de l'initialisation du cluster PostgreSQL avec la commande <i>initdb<\/i>.<\/p>\n<p><b>\u00c9chec d'initdb<\/b><br \/>\n<code>D\u00c9TAILS : L'appel syst\u00e8me \u00e9chou\u00e9 \u00e9tait shmget(key=1, size=2072576, 03600). <\/p>\n<p>ASTUCE : Cette erreur signifie g\u00e9n\u00e9ralement que la demande de PostgreSQL pour un segment de m\u00e9moire partag\u00e9e a d\u00e9pass\u00e9 le param\u00e8tre SHMMAX de votre noyau.\u00a0 <br \/>\nVous pouvez soit r\u00e9duire la taille de la demande, soit reconfigurer le noyau avec un SHMMAX plus grand. Pour r\u00e9duire la taille de la demande (actuellement 2072576 octets), <br \/>\nr\u00e9duisez l'utilisation de la m\u00e9moire partag\u00e9e de PostgreSQL, peut-\u00eatre en diminuant shared_buffers ou max_connections. <\/p>\n<p>Si la taille de la demande est d\u00e9j\u00e0 petite, il est possible qu'elle soit inf\u00e9rieure au param\u00e8tre SHMMIN de votre noyau,<br \/>\ndans ce cas, il est n\u00e9cessaire d'augmenter la taille de la demande ou de reconfigurer SHMMIN. <\/p>\n<p>La documentation de PostgreSQL contient plus d'informations sur la configuration de la m\u00e9moire partag\u00e9e. le processus enfant s'est termin\u00e9 avec le code de sortie 1<\/code><\/p>\n<p>De m\u00eame, vous pouvez rencontrer une erreur lors du d\u00e9marrage du serveur PostgreSQL en utilisant la commande <i>pg_ctl<\/i>.<\/p>\n<p><b>\u00c9chec de pg_ctl<\/b><br \/>\n<code>D\u00c9TAIL : L'appel syst\u00e8me \u00e9chou\u00e9 \u00e9tait shmget(cl\u00e9=5432001, taille=14385152, 03600).<\/p>\n<p>ASTUCE : Cette erreur signifie g\u00e9n\u00e9ralement que la demande de PostgreSQL pour un segment de m\u00e9moire partag\u00e9e a d\u00e9pass\u00e9 le param\u00e8tre SHMMAX de votre noyau.<\/p>\n<p>Vous pouvez soit r\u00e9duire la taille de la demande, soit reconfigurer le noyau avec un SHMMAX plus grand. Pour r\u00e9duire la taille de la demande (actuellement 14385152 octets), r\u00e9duisez l'utilisation de la m\u00e9moire partag\u00e9e de PostgreSQL, peut-\u00eatre en diminuant shared_buffers ou max_connections.<\/p>\n<p>Si la taille de la demande est d\u00e9j\u00e0 petite, il est possible qu'elle soit inf\u00e9rieure au param\u00e8tre SHMMIN de votre noyau, <br \/>\ndans ce cas, il est n\u00e9cessaire d'augmenter la taille de la demande ou de reconfigurer SHMMIN.<\/p>\n<p>La documentation de PostgreSQL contient plus d'informations sur la configuration de la m\u00e9moire partag\u00e9e.<\/code><\/p>\n<h3>Comprendre les diff\u00e9rences dans les d\u00e9finitions<\/h3>\n<p>\nLa d\u00e9finition des param\u00e8tres SHMMAX\/SHMALL diff\u00e8re l\u00e9g\u00e8rement entre Linux et 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>\nCommande <i>sysctl<\/i> peut \u00eatre utilis\u00e9 pour modifier temporairement la valeur. Pour d\u00e9finir des valeurs permanentes, ajoutez une entr\u00e9e dans <i>\/etc\/sysctl.conf<\/i>. Les d\u00e9tails sont fournis ci-dessous.<\/p>\n<p><b>Modification des param\u00e8tres du noyau sous 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>Modification des param\u00e8tres du noyau sous 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>N'oubliez pas<\/b>: pour rendre les changements permanents, ajoutez ces valeurs dans \/etc\/sysctl.conf<\/p>\n<h2>Grandes pages (Huge Pages)<\/h2>\n<p>\nSous Linux, les pages m\u00e9moire par d\u00e9faut sont de 4 Ko, sous BSD \u2014 <i>Super Pages<\/i>, et sous Windows \u2014 <i>Large Pages<\/i>. Une page est une partie de la m\u00e9moire vive allou\u00e9e \u00e0 un processus. Un processus peut avoir plusieurs pages selon ses besoins en m\u00e9moire. Plus un processus n\u00e9cessite de m\u00e9moire, plus il lui est allou\u00e9 de pages. Le syst\u00e8me d'exploitation maintient une table d'allocation de pages pour les processus. Plus la taille de la page est petite, plus la table est grande, plus il faut de temps pour rechercher une page dans cette table de pages. Ainsi, les grandes pages permettent d'utiliser une grande quantit\u00e9 de m\u00e9moire avec des frais g\u00e9n\u00e9raux r\u00e9duits ; moins de recherches de pages, moins d'erreurs de pages, des op\u00e9rations de lecture\/\u00e9criture plus rapides gr\u00e2ce \u00e0 de grands tampons. En cons\u00e9quence, cela am\u00e9liore les performances.<\/p>\n<p>PostgreSQL prend en charge les grandes pages uniquement sous Linux. Par d\u00e9faut, Linux utilise des pages m\u00e9moire de 4 Ko, donc dans les cas o\u00f9 il y a trop d'op\u00e9rations sur la m\u00e9moire, il est n\u00e9cessaire de d\u00e9finir des pages de taille plus grande. Un gain de performance est observ\u00e9 lors de l'utilisation de grandes pages de 2 Mo \u00e0 1 Go. La taille des grandes pages peut \u00eatre d\u00e9finie au d\u00e9marrage. Vous pouvez facilement v\u00e9rifier les param\u00e8tres des grandes pages et leur utilisation sur votre ordinateur Linux en utilisant la commande <i>cat \/proc\/meminfo | grep -i huge<\/i>.<\/p>\n<p><b>Obtenir des informations sur les grandes pages (uniquement sur Linux)<\/b><\/p>\n<pre><code class=\"bash\">Note : Ceci est uniquement pour Linux, pour les autres syst\u00e8mes d'exploitation, cette op\u00e9ration est ignor\u00e9e\n$ 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>\nDans cet exemple, bien que la taille de la grande page soit d\u00e9finie \u00e0 2048 (2 Mo), le nombre total de grandes pages est de 0. Cela signifie que les grandes pages sont d\u00e9sactiv\u00e9es.<\/p>\n<h3>Script pour d\u00e9terminer le nombre de grandes pages<\/h3>\n<p>\nC'est un script simple qui renvoie le nombre requis de grandes pages. Ex\u00e9cutez le script sur votre serveur Linux pendant que PostgreSQL fonctionne. Assurez-vous que la variable d'environnement <i>$PGDATA<\/i> est d\u00e9finie sur le r\u00e9pertoire des donn\u00e9es de PostgreSQL.<\/p>\n<p><b>Obtenir le nombre requis de grandes pages<\/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>\nLa sortie du script se pr\u00e9sente comme suit :<\/p>\n<p><b>Sortie du script<\/b><\/p>\n<pre><code class=\"bash\">Pid:            12737\nVmPeak:        180932 kB\nHugepagesize:   2048 kB\nSet Huge Pages: 88<\/code><\/pre>\n<p>\nLa valeur recommand\u00e9e pour les grandes pages est 88, donc vous devez r\u00e9gler la valeur \u00e0 88.<\/p>\n<p><b>Configurer les grandes pages<\/b><\/p>\n<pre><code class=\"bash\">sysctl -w vm.nr_hugepages=88<\/code><\/pre>\n<p>\nV\u00e9rifiez les grandes pages maintenant, vous verrez que les grandes pages ne sont pas utilis\u00e9es (HugePages_Free = HugePages_Total).<\/p>\n<p><b>\u00c0 nouveau des informations sur les grandes pages (uniquement sur 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>\nMaintenant, d\u00e9finissez le param\u00e8tre huge_pages \u00abon\u00bb dans $PGDATA\/postgresql.conf et red\u00e9marrez le serveur.<\/p>\n<p><b>Et \u00e0 nouveau des informations sur les grandes pages (uniquement sur 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>\nVous pouvez maintenant voir qu'il y a tr\u00e8s peu de grandes pages utilis\u00e9es. Essayons maintenant d'ajouter des donn\u00e9es \u00e0 la base de donn\u00e9es.<\/p>\n<p><b>Certain operations with the database for managing large pages<\/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>\nLet's see if we are currently using more large pages than before.<\/p>\n<p><b>Again, information about large pages (only on 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>\nYou can now see that most of the large pages are in use.<\/p>\n<p>Note: the approximate value for HugePages used here is very low, which is not a normal value for a production machine. Please assess the required number of pages for your system and set them accordingly based on load and resources.<\/p>\n<h3>vm.swappiness<\/h3>\n<p>\n<b>vm.swappiness<\/b> is another kernel parameter that can affect database performance. This parameter is used to manage the swapping behavior (swappiness) (swapping pages in and out of memory) in Linux. The value ranges from 0 to 100. It determines how much memory will be swapped out or freed. Zero means disabling swapping, while 100 means aggressive swapping.<\/p>\n<p>You can achieve good performance by setting lower values.<\/p>\n<p>Setting the value to 0 in newer kernels may cause the OOM Killer (Linux memory cleanup process) to terminate the process. Thus, setting the value to 1 is safe if you want to minimize swapping. The default value in Linux is 60. A higher value causes the MMU (Memory Management Unit) to use more swap space than RAM, while a lower value keeps more data\/code in memory.<\/p>\n<p>A lower value is a good bet for improving performance in PostgreSQL.<\/p>\n<h3>vm.overcommit_memory \/ vm.overcommit_ratio<\/h3>\n<p>\nApplications request memory and release it when it's no longer needed. But in some cases, an application might request too much memory and not release it. This can trigger the OOM killer. Here are possible values for the parameter <b>vm.overcommit_memory<\/b> with a description for each:<\/p>\n<ol>\n<li> Heuristic overcommit (default); kernel-based heuristic<\/li>\n<li> Allow overcommit in all cases<\/li>\n<li> Do not overcommit, do not exceed the overcommit ratio.<\/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 pourcentage de la m\u00e9moire vive disponible pour un sur-commutement. Une valeur de 50 % dans un syst\u00e8me avec 2 Go de RAM peut allouer jusqu'\u00e0 3 Go de RAM.<\/p>\n<p>Une valeur de 2 pour vm.overcommit_memory offre de meilleures performances pour PostgreSQL. Cette valeur maximise l'utilisation de la m\u00e9moire vive par le processus serveur sans risque significatif d'\u00eatre tu\u00e9 par le processus OOM killer. L'application pourra red\u00e9marrer, mais seulement dans les limites du sur-commutement, ce qui r\u00e9duit le risque que le OOM killer tue le processus. Par cons\u00e9quent, une valeur de 2 offre de meilleures performances que la valeur par d\u00e9faut de 0. Cependant, la fiabilit\u00e9 peut \u00eatre am\u00e9lior\u00e9e en ne surchargant pas la m\u00e9moire au-del\u00e0 de la limite autoris\u00e9e. Cela exclut le risque que le processus soit tu\u00e9 par le OOM killer.<\/p>\n<p>Dans les syst\u00e8mes sans swap, un probl\u00e8me avec vm.overcommit_memory \u00e9gal \u00e0 2 peut survenir.<\/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 c'est le pourcentage de m\u00e9moire occup\u00e9e par des pages sales qui doivent \u00eatre \u00e9crites sur le disque. Le vidage sur disque se fait en arri\u00e8re-plan. La valeur de ce param\u00e8tre varie de 0 \u00e0 100 ; cependant, une valeur inf\u00e9rieure \u00e0 5 peut \u00eatre inefficace, et certains noyaux ne la prennent pas en charge. 10 est la valeur par d\u00e9faut dans la plupart des syst\u00e8mes Linux. Vous pouvez am\u00e9liorer les performances pour les op\u00e9rations \u00e0 forte \u00e9criture avec un coefficient plus bas, ce qui signifie que Linux flush les pages sales en arri\u00e8re-plan.<\/p>\n<p>Vous devez d\u00e9finir la valeur <b>vm.dirty_background_bytes<\/b> en fonction de la vitesse de votre disque.<\/p>\n<p>Il n'existe pas de \u00ab bonnes \u00bb valeurs pour ces deux param\u00e8tres, car les deux d\u00e9pendent du mat\u00e9riel. Cependant, r\u00e9gler vm.dirty_background_ratio \u00e0 5 et vm.dirty_background_bytes \u00e0 25 % de la vitesse du disque, am\u00e9liore les performances jusqu'\u00e0 ~ 25 % dans la plupart des cas.<\/p>\n<h3>vm.dirty_ratio \/ dirty_bytes<\/h3>\n<p>\nC'est la m\u00eame chose que <b>vm.dirty_background_ratio \/ dirty_background_bytes<\/b>, sauf que le vidage se fait dans une session de travail, bloquant ainsi l'application. Par cons\u00e9quent, vm.dirty_ratio doit \u00eatre sup\u00e9rieur \u00e0 <b>vm.dirty_background_ratio<\/b>. Cela garantit que les processus de fond seront d\u00e9clench\u00e9s plus t\u00f4t pour \u00e9viter le blocage maximal de l'application. Vous pouvez ajuster la diff\u00e9rence entre ces deux ratios en fonction de la charge d'entr\u00e9e\/sortie disque.<\/p>\n<h2>Conclusion<\/h2>\n<p>\nVous pouvez configurer d'autres param\u00e8tres pour am\u00e9liorer les performances, mais les gains seront minimes et vous n'en tirerez pas de b\u00e9n\u00e9fice significatif. Il faut se rappeler que tous les param\u00e8tres ne s'appliquent pas \u00e0 tous les types d'applications. Certaines applications fonctionnent mieux avec certains param\u00e8tres optimis\u00e9s, tandis que d'autres ne le n\u00e9cessitent pas. Vous devez trouver le bon \u00e9quilibre entre les configurations de ces param\u00e8tres en fonction de la charge de travail pr\u00e9vue et du type d'application, tout en tenant compte du comportement du syst\u00e8me d'exploitation. Configurer les param\u00e8tres du noyau n'est pas aussi simple que de configurer ceux de la base de donn\u00e9es : il est plus difficile de donner des recommandations \u00e0 ce sujet.<br \/>\n<br \/>Source : <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\/fr\/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=\"fr_FR\" \/>\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\/fr\/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\udd47Configuration des param\u00e8tres du noyau Linux pour l'optimisation de PostgreSQL | ProHoster","description":"Performance optimale.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/35920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=35920"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/26870"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=35920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=35920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=35920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}