{"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\/es\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","title":{"rendered":"Configuraci\u00f3n de par\u00e1metros del n\u00facleo de Linux para optimizar PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Configuraci\u00f3n de par\u00e1metros del n\u00facleo de Linux para optimizar PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/07\/a28458ff50cdc517aad71b47adab6eb3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> El rendimiento \u00f3ptimo de PostgreSQL depende de la correcta configuraci\u00f3n de los par\u00e1metros del sistema operativo. Par\u00e1metros de kernel mal configurados pueden llevar a una disminuci\u00f3n en el rendimiento del servidor de bases de datos. Por lo tanto, es crucial que estos par\u00e1metros est\u00e9n ajustados de acuerdo con el servidor de bases de datos y su carga de trabajo. En este art\u00edculo, discutiremos algunos par\u00e1metros importantes del kernel de Linux que pueden afectar el rendimiento del servidor de bases de datos y c\u00f3mo configurarlos.<\/p>\n<h2>SHMMAX \/ SHMALL<\/h2>\n<p>\n<b>SHMMAX<\/b> es un par\u00e1metro del kernel utilizado para determinar el tama\u00f1o m\u00e1ximo de un segmento de memoria compartida que puede asignar un proceso de Linux. Hasta la versi\u00f3n 9.2, PostgreSQL utilizaba System V (SysV), para el cual se requer\u00eda la configuraci\u00f3n de SHMMAX. Despu\u00e9s de la 9.2, PostgreSQL cambi\u00f3 a la memoria compartida POSIX. Por lo tanto, ahora se requiere menos memoria compartida de System V.<\/p>\n<p>Hasta la versi\u00f3n 9.3, SHMMAX era el par\u00e1metro m\u00e1s importante del kernel. El valor de SHMMAX se establece en bytes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDe manera similar, <b>SHMALL<\/b> es otro par\u00e1metro del kernel utilizado para definir <br \/>\nel volumen total de p\u00e1ginas de memoria compartida. Para ver los valores actuales de SHMMAX, SHMALL o SHMMIN, utiliza el comando <i>ipcs<\/i>.<\/p>\n<p><b>Detalles de SHM* \u2014 Linux<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -lm\n\n------ L\u00edmites de Memoria Compartida --------\nN\u00famero m\u00e1ximo de segmentos = 4096\nTama\u00f1o m\u00e1ximo de segmento (kbytes) = 1073741824\nM\u00e1xima memoria compartida total (kbytes) = 17179869184\nTama\u00f1o m\u00ednimo de segmento (bytes) = 1<\/code><\/pre>\n<p>\n<b>Detalles de SHM* \u2014 MacOS X<\/b><\/p>\n<pre><code class=\"bash\">$ ipcs -M\nEstado IPC desde  a partir del jue. 16 de ago. 22:20:35 PKT 2018\nshminfo:\n\tshmmax: 16777216\t(tama\u00f1o m\u00e1ximo de segmento de memoria compartida)\n\tshmmin:       1\t(tama\u00f1o m\u00ednimo de segmento de memoria compartida)\n\tshmmni:      32\t(n\u00famero m\u00e1ximo de identificadores de memoria compartida)\n\tshmseg:       8\t(n\u00famero m\u00e1ximo de segmentos de memoria compartida por proceso)\n\tshmall:    1024\t(cantidad m\u00e1xima de memoria compartida en p\u00e1ginas)\n<\/code><\/pre>\n<p>\nPostgreSQL utiliza <b>System V IPC<\/b> para la asignaci\u00f3n de memoria compartida. Este par\u00e1metro es uno de los m\u00e1s importantes del kernel. Siempre que recibas los siguientes mensajes de error, significa que tienes una versi\u00f3n m\u00e1s antigua de PostgreSQL y un valor de SHMMAX muy bajo. Se espera que los usuarios ajusten y aumenten el valor de acuerdo con la memoria compartida que planean utilizar.<\/p>\n<h3>Posibles errores de configuraci\u00f3n incorrecta<\/h3>\n<p>\nSi SHMMAX est\u00e1 configurado incorrectamente, puedes recibir un error al intentar inicializar un cl\u00faster de PostgreSQL usando el comando <i>initdb<\/i>.<\/p>\n<p><b>Error de initdb<\/b><br \/>\n<code>DETALLE: La llamada al sistema fallida fue shmget(key=1, size=2072576, 03600). <\/p>\n<p>SUGERENCIA: Este error generalmente significa que la solicitud de PostgreSQL para un segmento de memoria compartida excedi\u00f3 el par\u00e1metro SHMMAX de tu kernel.\u00a0 <br \/>\nPuede reducir el tama\u00f1o de la solicitud o reconfigurar el kernel con un SHMMAX m\u00e1s grande. Para reducir el tama\u00f1o de la solicitud (actualmente 2072576 bytes), <br \/>\nreduzca el uso de memoria compartida de PostgreSQL, quiz\u00e1s reduciendo shared_buffers o max_connections. <\/p>\n<p>Si el tama\u00f1o de la solicitud ya es peque\u00f1o, es posible que sea menor que el par\u00e1metro SHMMIN de su kernel,<br \/>\nen cuyo caso es necesario aumentar el tama\u00f1o de la solicitud o reconfigurar SHMMIN. <\/p>\n<p>La documentaci\u00f3n de PostgreSQL contiene m\u00e1s informaci\u00f3n sobre la configuraci\u00f3n de memoria compartida. El proceso hijo sali\u00f3 con el c\u00f3digo de salida 1.<\/code><\/p>\n<p>De manera similar, puede obtener un error al iniciar el servidor PostgreSQL utilizando el comando <i>pg_ctl<\/i>.<\/p>\n<p><b>pg_ctl Fallo<\/b><br \/>\n<code>DETALLES: La llamada al sistema fallida fue shmget(key=5432001, size=14385152, 03600).<\/p>\n<p>SUGERENCIA: Este error generalmente significa que la solicitud de PostgreSQL para un segmento de memoria compartida excedi\u00f3 el par\u00e1metro SHMMAX de tu kernel.<\/p>\n<p>Puede reducir el tama\u00f1o de la solicitud o reconfigurar el kernel con un SHMMAX m\u00e1s grande. Para reducir el tama\u00f1o de la solicitud (actualmente 14385152 bytes), reduzca el uso de memoria compartida de PostgreSQL, quiz\u00e1s reduciendo shared_buffers o max_connections.<\/p>\n<p>Si el tama\u00f1o de la solicitud ya es peque\u00f1o, es posible que sea menor que el par\u00e1metro SHMMIN de su kernel, <br \/>\nen cuyo caso es necesario aumentar el tama\u00f1o de la solicitud o reconfigurar SHMMIN.<\/p>\n<p>La documentaci\u00f3n de PostgreSQL contiene m\u00e1s informaci\u00f3n sobre la configuraci\u00f3n de memoria compartida.<\/code><\/p>\n<h3>Comprender las diferencias en las definiciones<\/h3>\n<p>\nLa definici\u00f3n de los par\u00e1metros SHMMAX\/SHMALL var\u00eda un poco entre Linux y 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>\nComando <i>sysctl<\/i> puede usarse para cambiar temporalmente el valor. Para establecer valores permanentes, agregue una entrada en <i>\/etc\/sysctl.conf<\/i>. Los detalles est\u00e1n a continuaci\u00f3n.<\/p>\n<p><b>Cambio de par\u00e1metros del kernel en 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>Cambio de par\u00e1metros del kernel en 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>No olvide<\/b>: para hacer que los cambios sean permanentes, agregue estos valores a \/etc\/sysctl.conf<\/p>\n<h2>P\u00e1ginas grandes (Huge Pages)<\/h2>\n<p>\nEn Linux, por defecto se utilizan p\u00e1ginas de memoria de 4 KB, en BSD \u2014 <i>Super Pages<\/i>, y en Windows \u2014 <i>Large Pages<\/i>. Una p\u00e1gina es una parte de la memoria RAM asignada a un proceso. Un proceso puede tener varias p\u00e1ginas dependiendo de sus requisitos de memoria. Cuanta m\u00e1s memoria requiera un proceso, m\u00e1s p\u00e1ginas se le asignan. El sistema operativo mantiene una tabla de asignaci\u00f3n de p\u00e1ginas para los procesos. Cuanto m\u00e1s peque\u00f1o sea el tama\u00f1o de la p\u00e1gina, m\u00e1s grande ser\u00e1 la tabla, y m\u00e1s tiempo se requerir\u00e1 para buscar una p\u00e1gina en esa tabla de p\u00e1ginas. Por lo tanto, las p\u00e1ginas grandes permiten utilizar grandes vol\u00famenes de memoria con costos reducidos; menos accesos a p\u00e1ginas, menos errores de p\u00e1gina, operaciones de lectura\/escritura m\u00e1s r\u00e1pidas a trav\u00e9s de grandes b\u00faferes. Como resultado, se mejora el rendimiento.<\/p>\n<p>PostgreSQL solo admite p\u00e1ginas grandes en Linux. Por defecto, Linux utiliza p\u00e1ginas de memoria de 4 KB, por lo que en casos con muchas operaciones de memoria, es necesario establecer p\u00e1ginas de mayor tama\u00f1o. Se observa un aumento en el rendimiento al utilizar p\u00e1ginas grandes de 2 MB hasta 1 GB. El tama\u00f1o de la p\u00e1gina grande puede establecerse durante el arranque. Puede verificar f\u00e1cilmente los par\u00e1metros de la p\u00e1gina grande y su uso en su computadora Linux usando el comando <i>cat \/proc\/meminfo | grep -i huge<\/i>.<\/p>\n<p><b>Obteniendo informaci\u00f3n sobre p\u00e1ginas grandes (solo en Linux)<\/b><\/p>\n<pre><code class=\"bash\">Nota: Esto es solo para Linux, para otros SO esta operaci\u00f3n se ignora\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>\nEn este ejemplo, aunque el tama\u00f1o de la p\u00e1gina grande est\u00e1 establecido en 2048 (2 MB), el n\u00famero total de p\u00e1ginas grandes tiene un valor de 0. Esto significa que las p\u00e1ginas grandes est\u00e1n desactivadas.<\/p>\n<h3>Script para determinar la cantidad de p\u00e1ginas grandes<\/h3>\n<p>\nEste es un script simple que devuelve la cantidad necesaria de p\u00e1ginas grandes. Ejecute el script en su servidor Linux mientras PostgreSQL est\u00e1 en funcionamiento. Aseg\u00farese de que la variable de entorno <i>$PGDATA<\/i> est\u00e1 configurada en el directorio de datos de PostgreSQL.<\/p>\n<p><b>Obteniendo el n\u00famero requerido de p\u00e1ginas grandes<\/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 salida del script se ve as\u00ed:<\/p>\n<p><b>Salida del script<\/b><\/p>\n<pre><code class=\"bash\">Pid:            12737\nVmPeak:        180932 kB\nHugepagesize:   2048 kB\nSet Huge Pages: 88<\/code><\/pre>\n<p>\nEl valor recomendado de p\u00e1ginas grandes es 88, por lo que debe establecer el valor en 88.<\/p>\n<p><b>Estableciendo p\u00e1ginas grandes<\/b><\/p>\n<pre><code class=\"bash\">sysctl -w vm.nr_hugepages=88<\/code><\/pre>\n<p>\nVerifique las p\u00e1ginas grandes ahora, ver\u00e1 que las p\u00e1ginas grandes no se est\u00e1n utilizando (HugePages_Free = HugePages_Total).<\/p>\n<p><b>Nuevamente informaci\u00f3n sobre p\u00e1ginas grandes (solo en 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>\nAhora configure el par\u00e1metro huge_pages como 'on' en $PGDATA\/postgresql.conf y reinicie el servidor.<\/p>\n<p><b>Y nuevamente informaci\u00f3n sobre p\u00e1ginas grandes (solo en 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>\nAhora puede ver que se est\u00e1n utilizando muy pocas p\u00e1ginas grandes. Ahora intentemos agregar algunos datos a la base de datos.<\/p>\n<p><b>Algunas operaciones de la base de datos para utilizar grandes p\u00e1ginas<\/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>\nVeamos si ahora estamos utilizando m\u00e1s grandes p\u00e1ginas que antes.<\/p>\n<p><b>Una vez m\u00e1s, informaci\u00f3n sobre grandes p\u00e1ginas (solo en 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>\nAhora puedes ver que la mayor\u00eda de las grandes p\u00e1ginas est\u00e1n siendo utilizadas.<\/p>\n<p>Nota: el valor aproximado para HugePages utilizado aqu\u00ed es muy bajo, lo cual no es un valor normal para una m\u00e1quina en un entorno productivo. Por favor, eval\u00faa la cantidad necesaria de p\u00e1ginas para tu sistema y aj\u00fastalas en consecuencia seg\u00fan la carga y los recursos.<\/p>\n<h3>vm.swappiness<\/h3>\n<p>\n<b>vm.swappiness<\/b> \u2014 este es otro par\u00e1metro del n\u00facleo que puede afectar el rendimiento de la base de datos. Este par\u00e1metro se utiliza para controlar el comportamiento de la paginaci\u00f3n (swappiness) (la paginaci\u00f3n de p\u00e1ginas en la memoria y fuera de ella) en Linux. El valor var\u00eda de 0 a 100. Determina cu\u00e1nta memoria ser\u00e1 liberada o intercambiada. Cero significa desactivar el intercambio y 100 significa intercambio agresivo.<\/p>\n<p>Puedes lograr un buen rendimiento configurando valores m\u00e1s bajos.<\/p>\n<p>Establecer un valor de 0 en n\u00facleos m\u00e1s nuevos puede resultar en que el OOM Killer (el proceso de limpieza de memoria en Linux) mate el proceso. Por lo tanto, se puede establecer de forma segura un valor de 1 si deseas minimizar la paginaci\u00f3n. El valor por defecto en Linux es 60. Un valor m\u00e1s alto hace que el MMU (m\u00f3dulo de gesti\u00f3n de memoria) use m\u00e1s espacio de intercambio que RAM, mientras que un valor m\u00e1s bajo mantiene m\u00e1s datos\/c\u00f3digo en memoria.<\/p>\n<p>Un valor m\u00e1s bajo es una buena apuesta para mejorar el rendimiento en PostgreSQL.<\/p>\n<h3>vm.overcommit_memory \/ vm.overcommit_ratio<\/h3>\n<p>\nLas aplicaciones obtienen memoria y la liberan cuando ya no la necesitan. Pero en algunos casos, una aplicaci\u00f3n recibe demasiada memoria y no la libera. Esto puede provocar el OOM killer. Aqu\u00ed est\u00e1n los posibles valores para el par\u00e1metro <b>vm.overcommit_memory<\/b> con una descripci\u00f3n para cada uno:<\/p>\n<ol>\n<li> Overcommit heur\u00edstico (por defecto); heur\u00edstica basada en el n\u00facleo<\/li>\n<li> Permitir overcommit en cualquier caso<\/li>\n<li> No sobrepases el coeficiente de overcommit.<\/li>\n<\/ol>\n<p>\n<i>Enlace: <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 porcentaje de la memoria RAM disponible para sobrecarga. Un valor del 50% en un sistema con 2 GB de RAM puede asignar hasta 3 GB de RAM.<\/p>\n<p>Un valor de 2 para vm.overcommit_memory proporciona un mejor rendimiento para PostgreSQL. Este valor maximiza el uso de RAM por el proceso del servidor sin un riesgo significativo de ser terminado por el proceso OOM killer. La aplicaci\u00f3n podr\u00e1 reiniciarse, pero solo dentro de la sobrecarga, lo que reduce el riesgo de que OOM killer termine el proceso. Por lo tanto, un valor de 2 ofrece un mejor rendimiento que el valor predeterminado de 0. Sin embargo, la fiabilidad se puede mejorar evitando que la memoria est\u00e9 por encima del rango permitido, lo que elimina el riesgo de que el proceso sea finalizado por OOM killer.<\/p>\n<p>En sistemas sin intercambio, puede haber un problema con vm.overcommit_memory establecido en 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 es el porcentaje de memoria ocupada por p\u00e1ginas sucias que deben escribirse en el disco. El volcado en el disco se realiza en segundo plano. El valor de este par\u00e1metro var\u00eda de 0 a 100; sin embargo, un valor por debajo de 5 puede ser ineficaz, y algunos n\u00facleos no lo admiten. 10 es el valor predeterminado en la mayor\u00eda de los sistemas Linux. Puede mejorar el rendimiento para operaciones de escritura intensiva con un menor ratio, lo que significa que Linux volcar\u00e1 p\u00e1ginas sucias en segundo plano.<\/p>\n<p>Necesita establecer el valor <b>vm.dirty_background_bytes<\/b> dependiendo de la velocidad de su disco.<\/p>\n<p>Para estos dos par\u00e1metros no hay valores 'buenos', ya que ambos dependen del hardware. Sin embargo, establecer vm.dirty_background_ratio en 5 y vm.dirty_background_bytes en el 25% de la velocidad del disco mejora el rendimiento en aproximadamente un 25% en la mayor\u00eda de los casos.<\/p>\n<h3>vm.dirty_ratio \/ dirty_bytes<\/h3>\n<p>\nEs lo mismo que <b>vm.dirty_background_ratio \/ dirty_background_bytes<\/b>, excepto que el volcado se realiza en la sesi\u00f3n activa, bloqueando la aplicaci\u00f3n. Por lo tanto, vm.dirty_ratio debe ser mayor que <b>vm.dirty_background_ratio<\/b>. Esto asegura que los procesos en segundo plano se inicien antes para evitar el m\u00e1ximo posible de bloqueo de la aplicaci\u00f3n. Puede ajustar la diferencia entre estos dos ratios seg\u00fan la carga de E\/S del disco.<\/p>\n<h2>Summary<\/h2>\n<p>\nPuedes ajustar otros par\u00e1metros para mejorar el rendimiento, pero las mejoras ser\u00e1n m\u00ednimas y no obtendr\u00e1s beneficios significativos. Debemos recordar que no todos los par\u00e1metros son relevantes para todos los tipos de aplicaciones. Algunas aplicaciones funcionan mejor cuando ajustamos ciertos par\u00e1metros, mientras que otras no. Debes encontrar el equilibrio correcto entre las configuraciones de estos par\u00e1metros para la carga de trabajo esperada y el tipo de aplicaci\u00f3n, as\u00ed como tener en cuenta el comportamiento del sistema operativo al realizar la configuraci\u00f3n. Ajustar los par\u00e1metros del kernel no es tan sencillo como ajustar los par\u00e1metros de la base de datos; aqu\u00ed es m\u00e1s complicado dar recomendaciones.<br \/>\n<br \/>Fuente: <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.3 - 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\/es\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Configuraci\u00f3n de par\u00e1metros del kernel de Linux para optimizar PostgreSQL | ProHoster","description":"Rendimiento \u00f3ptimo.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/nastrojka-parametrov-yadra-linux-dlya-optimizatsii-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/35920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=35920"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35920\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/26870"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=35920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=35920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=35920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}