{"id":20866,"date":"2026-08-21T15:06:21","date_gmt":"2026-08-21T13:06:21","guid":{"rendered":"https:\/\/webhosting.de\/vm-swappiness-optimieren-linux-hosting-server-tuning-swap\/"},"modified":"2026-08-21T15:06:21","modified_gmt":"2026-08-21T13:06:21","slug":"optimizar-el-valor-de-swappiness-en-un-servidor-de-alojamiento-linux-ajuste-del-servidor-y-del-espacio-de-intercambio","status":"publish","type":"post","link":"https:\/\/webhosting.de\/es\/vm-swappiness-optimieren-linux-hosting-server-tuning-swap\/","title":{"rendered":"Configurar correctamente el valor de vm.swappiness para un rendimiento \u00f3ptimo del servidor"},"content":{"rendered":"<p>Te voy a ense\u00f1ar c\u00f3mo configurar vm.swappiness para que los servicios web y de bases de datos en los servidores de alojamiento respondan m\u00e1s r\u00e1pido y generen menos operaciones de E\/S. Con pasos claros, valores iniciales adecuados y un buen seguimiento, sacar\u00e1s m\u00e1s partido a la memoria RAM disponible y reducir\u00e1s <strong>Latencias<\/strong> y evitas el intercambio innecesario de memoria.<\/p>\n\n<h2>Puntos centrales<\/h2>\n\n<p>Estos puntos te ofrecen una visi\u00f3n general r\u00e1pida para que puedas aplicar los ajustes de inmediato.<\/p>\n<ul>\n  <li><strong>Comportamiento de Swappiness<\/strong>: Determina cu\u00e1ndo empieza el n\u00facleo a trasladar la RAM al espacio de intercambio.<\/li>\n  <li><strong>En relaci\u00f3n con la carga de trabajo<\/strong>: Adapta los valores al tipo de aplicaci\u00f3n, como una base de datos o una p\u00e1gina web.<\/li>\n  <li><strong>Probar de forma temporal<\/strong>: Primero compru\u00e9balo en directo y luego f\u00edjalo de forma definitiva.<\/li>\n  <li><strong>Dise\u00f1o de la memoria de intercambio<\/strong>: Tener en cuenta el tama\u00f1o, el contexto y las prioridades.<\/li>\n  <li><strong>Monitoreo<\/strong>: Supervisar y ajustar las entradas y salidas (E\/S), la memoria RAM y los tiempos de respuesta.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/optimale-servereinstellung-5932.png\" alt=\"Servidor configurado de forma \u00f3ptima para un rendimiento excepcional\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Qu\u00e9 es vm.swappiness y c\u00f3mo funciona<\/h2>\n\n<p>El par\u00e1metro del n\u00facleo <strong>vm.swappiness<\/strong> Determina la intensidad con la que Linux traslada las p\u00e1ginas de memoria de la RAM al espacio de intercambio. El valor actual se encuentra en el sistema de archivos pseudo en \/proc\/sys\/vm\/swappiness y se puede modificar en tiempo de ejecuci\u00f3n o de forma permanente. Un valor alto provoca que el contenido se traslade antes a la partici\u00f3n de swap, mientras que un valor bajo lo mantiene m\u00e1s tiempo en la RAM. El objetivo es lograr un buen equilibrio entre el uso de la RAM, la cach\u00e9 de p\u00e1ginas y un comportamiento controlado de la partici\u00f3n de swap. Tengo muy presente que la RAM es mucho m\u00e1s r\u00e1pida que cualquier SSD, por lo que prefiero <strong>Memoria de trabajo<\/strong> claro, antes del swap.<\/p>\n\n<h2>Por qu\u00e9 la \u00abswappiness\u00bb es importante en los servidores de alojamiento<\/h2>\n\n<p>En los servidores web y de aplicaciones, la configuraci\u00f3n de <strong>Intercambio<\/strong> sobre el tiempo de respuesta y el rendimiento. Un intercambio agresivo genera una carga adicional de E\/S y ralentiza las consultas, sobre todo en cargas de trabajo con un uso intensivo de bases de datos. Por el contrario, unos valores demasiado bajos conllevan el riesgo de que se produzcan posteriormente eventos OOM, que interrumpen los procesos de forma brusca. Por eso, adem\u00e1s de la RAM y el espacio de intercambio, eval\u00fao tambi\u00e9n los picos de carga t\u00edpicos, las cach\u00e9s y los patrones de consultas. Quien reduce las latencias evita los tirones y mantiene las transacciones de forma notable <strong>l\u00edquido<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/servermeeting_swappiness_3847.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Recomendaciones seg\u00fan la carga de trabajo<\/h2>\n\n<p>Rara vez hay un \u00fanico valor que se adapte a todos los escenarios, por lo que empiezo con rangos probados en la pr\u00e1ctica y luego los ajusto en funci\u00f3n de los datos de medici\u00f3n. Las bases de datos se benefician de ajustes muy bajos, mientras que los servidores web puros suelen soportar valores algo m\u00e1s altos. Los sistemas de prueba o de desarrollo pueden funcionar m\u00e1s cerca de los valores est\u00e1ndar, ya que la comodidad juega un papel m\u00e1s importante. Utilizo el siguiente esquema como punto de partida pragm\u00e1tico para <strong>Alojamiento<\/strong>-Cargas de trabajo. A continuaci\u00f3n, superviso la E\/S, el uso del espacio de intercambio y los tiempos de respuesta, y realizo los ajustes necesarios seg\u00fan sea preciso.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Carga de trabajo<\/th>\n      <th>Nivel de swappiness recomendado<\/th>\n      <th>Objetivo<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>Bases de datos<\/strong> (MySQL, PostgreSQL)<\/td>\n      <td>0\u201310<\/td>\n      <td>Mantener el b\u00fafer en la RAM y reducir al m\u00ednimo las latencias<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>En tiempo real\/baja latencia<\/strong><\/td>\n      <td>0\u201310<\/td>\n      <td>Evitar picos de E\/S mediante el swap<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Servidor web<\/strong> con cach\u00e9s<\/td>\n      <td>10-20 (en algunos casos, 10-30)<\/td>\n      <td>Almacenar en el disco las p\u00e1ginas inactivas y mantener las solicitudes activas en la RAM<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Desarrollo\/Pruebas<\/strong><\/td>\n      <td>30-60<\/td>\n      <td>Comodidad y estabilidad por encima de la latencia<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Comprobar el valor actual<\/h2>\n\n<p>Antes de modificar los valores, leo el estado y lo documento. <strong>L\u00ednea de base<\/strong>. Para ello utilizo \u00abcat \/proc\/sys\/vm\/swappiness\u00bb o \u00absysctl vm.swappiness\u00bb; ambas opciones me dan un valor como 60. Al mismo tiempo, compruebo el uso de la RAM y del espacio de intercambio con \u00abfree -h\u00bb. Con swapon \u2013show puedo ver el tama\u00f1o, la prioridad y el soporte de los dispositivos de swap activos. Estos datos iniciales me ayudan a evaluar los efectos m\u00e1s adelante <strong>asignar<\/strong> para poder hacerlo.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/server-optimierung-swappiness-4287.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Probar temporalmente en lugar de cambiar directamente<\/h2>\n\n<p>Primero voy a probar Swappiness a modo de prueba, para ver las reacciones en condiciones reales <strong>Carga<\/strong> . El comando \u00absysctl vm.swappiness=10\u00bb surte efecto de inmediato, pero solo dura hasta el reinicio. Durante las pruebas, observo \u00abtop\u00bb o \u00abhtop\u00bb, compruebo \u00abvmstat\u00bb e \u00abiostat\u00bb y mido los tiempos de respuesta de los servicios. Si la tasa de intercambio se reduce y las latencias se mantienen estables, sigo avanzando en pasos razonables. Solo cuando las m\u00e9tricas sean convincentes, anoto el valor <strong>permanente<\/strong> fijo.<\/p>\n\n<h2>Configurar de forma permanente<\/h2>\n\n<p>Si el valor de prueba es correcto, lo a\u00f1ado a una configuraci\u00f3n de sysctl y vuelvo a cargar los ajustes. En \/etc\/sysctl.conf a\u00f1ado la l\u00ednea vm.swappiness=10 y la activo con sysctl -p. Para mayor claridad, prefiero crear un archivo propio en \/etc\/sysctl.d\/, por ejemplo, 99-swappiness.conf, y cargarlo con sysctl \u2013system. Esto facilita el control de versiones y su integraci\u00f3n en procesos de automatizaci\u00f3n. En este art\u00edculo se ofrece una descripci\u00f3n detallada de los par\u00e1metros relacionados: <a href=\"https:\/\/webhosting.de\/es\/ajuste-de-sysctl-para-optimizar-el-rendimiento-de-un-servidor-de-alojamiento-web\/\">ajuste de sysctl<\/a>, que me ayuda a organizar los cambios y <strong>Claridad<\/strong> trae.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/serverperformance_8432.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Tama\u00f1o del archivo de intercambio, estructura de la memoria y soportes de datos<\/h2>\n\n<p>La \u00abswappiness\u00bb nunca act\u00faa de forma aislada, por eso eval\u00fao el tama\u00f1o y la ubicaci\u00f3n del <strong>Intercambiar<\/strong> Siempre hay que tenerlo en cuenta. Un espacio de intercambio insuficiente se llena r\u00e1pidamente, mientras que uno sobredimensionado alarga las fases de E\/S en situaciones de carga. En SSD o NVMe, el espacio de intercambio es m\u00e1s r\u00e1pido que en HDD, pero la RAM sigue estando varios \u00f3rdenes de magnitud por delante. Disponer de varios dispositivos de intercambio con prioridades ayuda a utilizar primero el medio m\u00e1s r\u00e1pido. Quien quiera profundizar en las ventajas y desventajas, encontrar\u00e1 en esta descripci\u00f3n general sobre <a href=\"https:\/\/webhosting.de\/es\/es-util-el-swap-en-el-alojamiento-o-es-un-lastre-para-el-rendimiento-ramboost\/\">Memoria virtual en el alojamiento web<\/a> reflexiones \u00fatiles para la <strong>Pr\u00e1ctica<\/strong>.<\/p>\n\n<h2>Flujo de trabajo en la consulta: paso a paso<\/h2>\n\n<p>Empezar\u00e9 por hacer un an\u00e1lisis de la situaci\u00f3n actual: anotar\u00e9 el valor actual de Swappiness, el uso de la RAM y del espacio de intercambio, as\u00ed como la CPU y las E\/S, y lo guardar\u00e9 como <strong>Referencia<\/strong> Guardar. A continuaci\u00f3n, clasifico la carga de trabajo: principalmente bases de datos, web con cach\u00e9, funcionamiento mixto o en contenedores. Despu\u00e9s, defino un objetivo: para bases de datos, de 0 a 10; para la web, normalmente de 10 a 20; para cargas mixtas, voy probando con cautela. Establezco el valor de forma temporal, observo varias fases de carga y comparo las m\u00e9tricas. Si el resultado coincide repetidamente, fijo el valor, documento el cambio y lo compruebo tras actualizaciones del kernel, del hardware o <strong>Publique<\/strong>-Cambiar de nuevo.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/serverperformance_vm_4512.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Casos de uso espec\u00edficos: contenedores, m\u00e1quinas virtuales y la nube<\/h2>\n\n<p>En contenedores y m\u00e1quinas virtuales, eval\u00fao el valor de \u00abswappiness\u00bb tanto a nivel de host como de m\u00e1quina invitada. <strong>juntos<\/strong> . Las plataformas de orquestaci\u00f3n como Kubernetes suelen beneficiarse de ajustes muy bajos en los nodos de trabajo para mantener bajas las latencias de los pods. En las m\u00e1quinas virtuales, configuro internamente los valores adecuados, pero me aseguro de que el hipervisor no act\u00fae en sentido contrario. En configuraciones de nube el\u00e1stica, los valores conservadores ayudan a suavizar los picos hasta que la escalabilidad surta efecto. Evito que un \u00fanico contenedor, debido a un comportamiento intensivo de intercambio, afecte a todo el <strong>Plataforma<\/strong> frena.<\/p>\n\n<h2>Supervisi\u00f3n y resoluci\u00f3n de problemas<\/h2>\n\n<p>Las se\u00f1ales de alerta t\u00edpicas de un valor de \u00abswappiness\u00bb inadecuado las detecto en una elevada carga de E\/S a pesar de que a\u00fan queda RAM libre, en tiempos de respuesta irregulares y en consultas a la base de datos lentas. Compruebo estos patrones con vmstat, iostat, sar y las m\u00e9tricas de mi pila de observabilidad. Si el sistema muestra un uso elevado del swap a pesar de disponer de RAM libre, suelo reducir el valor de swappiness. Si observo registros de OOM o interrupciones cuando la RAM es escasa, aumento moderadamente el valor de swappiness o ajusto la configuraci\u00f3n del swap. La siguiente tabla clasifica los s\u00edntomas de una probable <strong>Causa<\/strong> y marca una primera direcci\u00f3n.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>S\u00edntoma<\/th>\n      <th>Causa probable<\/th>\n      <th>Siguiente paso<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><strong>Alto volumen de E\/S<\/strong> con RAM libre<\/td>\n      <td>El nivel de swappiness es demasiado alto<\/td>\n      <td>Reducir el valor, medir el impacto<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Eventos OOM<\/strong> bajo carga<\/td>\n      <td>El valor de \u00abSwappiness\u00bb es demasiado bajo o hay muy poco espacio de intercambio<\/td>\n      <td>Aumentar el valor, comprobar el tama\u00f1o del swap<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Consultas lentas<\/strong> a pesar de la reserva de CPU<\/td>\n      <td>Se ha desactivado el b\u00fafer de la base de datos<\/td>\n      <td>Valor entre 0 y 10, analizar el b\u00fafer de la base de datos<\/td>\n    <\/tr>\n    <tr>\n      <td><strong>Picos de carga<\/strong> sin cuellos de botella en la CPU<\/td>\n      <td>Picos de E\/S provocados por el intercambio de memoria<\/td>\n      <td>Reducir el \u00abswappiness\u00bb, comprobar los aciertos de cach\u00e9<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Comprender las m\u00e9tricas de grano fino<\/h2>\n\n<p>Para evaluar objetivamente el \u00abswappiness\u00bb, analizo m\u00e1s a fondo los contadores del n\u00facleo. En \/proc\/vmstat, pswpin y pswpout indican el n\u00famero de p\u00e1ginas le\u00eddas y desalojadas, respectivamente. pgscan_kswapd_* y pgsteal_* muestran la agresividad con la que trabaja el recuperador. Si se acumulan los pgmajfault (fallos de p\u00e1gina graves), esto indica recargas con gran carga de E\/S. Consulto estos valores repetidamente o mediante sar -B y sar -W para ver las tasas, no solo instant\u00e1neas. Con vmstat 1 detecto si\/so (swap in\/out) y puedo asignar los picos a eventos reales. Adem\u00e1s, \/proc\/pressure\/memory ofrece una estimaci\u00f3n de hasta qu\u00e9 punto las tareas se ven afectadas por la presi\u00f3n de memoria <strong>bloque<\/strong> (PSI). Si estos valores aumentan ligeramente o por completo, tengo un indicio claro de que el reclaim es demasiado agresivo o de que el nivel de swappiness no es el adecuado.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/08\/serverperformance-8734.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Swappiness 0 frente a 1: qu\u00e9 hace realmente el n\u00facleo<\/h2>\n\n<p>A menudo se da por sentado que Swappiness=0 desactiva por completo el swap. Eso no es del todo cierto. El valor 0 indica al n\u00facleo que evite el swap en la medida de lo posible y que solo lo utilice en caso de verdadera falta de memoria. En la pr\u00e1ctica, un valor de entre 1 y 10 basta para lograr un comportamiento muy conservador, mientras que el valor 0 puede provocar, en algunas versiones, fases de recuperaci\u00f3n tard\u00edas pero intensas. Para servicios en los que la latencia es cr\u00edtica, suelo establecer un valor de entre 1 y 5 y observo si pswpout\/pswpin se mantienen pr\u00e1cticamente en cero. Si con el valor 0 se producen eventos OOM durante picos de actividad, lo aumento ligeramente para que el n\u00facleo alivie la presi\u00f3n antes y de forma suave, en lugar de hacerlo de forma brusca. <strong>irrumpir<\/strong>.<\/p>\n\n<h2>C\u00f3mo sacar el m\u00e1ximo partido a Zswap y ZRAM<\/h2>\n\n<p>Adem\u00e1s del swap cl\u00e1sico en disco, utilizo Zswap o ZRAM, dependiendo del perfil. Zswap comprime las p\u00e1ginas paginadas y las mantiene inicialmente en la RAM, antes de que se transfieran al disco cuando sea necesario. Esto reduce las operaciones de E\/S y suaviza las latencias, pero consume recursos de la CPU. En servidores con una gran reserva de CPU, esto supone una <strong>m\u00e1s rentable<\/strong> Compromiso. ZRAM proporciona memoria de intercambio comprimida directamente en la RAM, lo cual es ideal para cargas con picos de actividad o m\u00e1quinas virtuales muy peque\u00f1as, en las que prefiero utilizar RAM comprimida en lugar de E\/S lenta. Importante: elijo conscientemente uno de los conceptos y establezco las prioridades de tal forma que se atienda primero la ruta m\u00e1s r\u00e1pida. La \u00abswappiness\u00bb sigue siendo una herramienta de control: incluso con Zswap\/ZRAM, quiero evitar oleadas de recuperaci\u00f3n innecesarias.<\/p>\n\n<h2>Cach\u00e9 de p\u00e1gina, vfs_cache_pressure y aciertos en la cach\u00e9<\/h2>\n\n<p>Swappiness interact\u00faa con la cach\u00e9 de p\u00e1ginas, que almacena archivos e inodos en la RAM. Con vm.vfs_cache_pressure controlo la agresividad con la que el n\u00facleo vac\u00eda estas cach\u00e9s frente a p\u00e1ginas an\u00f3nimas. Unos valores demasiado altos hacen que las cach\u00e9s de metadatos desaparezcan demasiado r\u00e1pido, lo que ralentiza los servidores web. Normalmente empiezo con un valor de entre 50 y 100, mido las tasas de aciertos de la cach\u00e9 y observo c\u00f3mo se comportan las latencias en los recursos est\u00e1ticos y las respuestas de la API. El objetivo es mantener en la RAM los contenidos m\u00e1s utilizados, sin que las p\u00e1ginas que se consultan con poca frecuencia saturen la memoria. Si la tasa de aciertos sigue siendo buena y la E\/S baja, significa que el equilibrio es adecuado; de lo contrario, ajusto la swappiness y el vfs_cache_pressure en el <strong>T\u00e1ndem<\/strong>.<\/p>\n\n<h2>Evitar el \u00abdirty-writeback\u00bb y los picos de E\/S<\/h2>\n\n<p>Las rutas de escritura influyen en las latencias tanto como el swap. Con vm.dirty_background_ratio\/bytes y vm.dirty_ratio\/bytes determino cu\u00e1nta cach\u00e9 \u00absucia\u00bb se acumula antes de que el n\u00facleo la escriba. Prefiero utilizar *_bytes en lugar de porcentajes para establecer l\u00edmites m\u00e1ximos definidos, especialmente en configuraciones con mucha RAM, en las que los porcentajes pueden generar enormes oleadas de reescritura. Objetivo: una escritura continua y planificable, en lugar de picos espor\u00e1dicos que, junto con el swap, generan bloqueos de E\/S. Compruebo iostat y las colas de reescritura, y mantengo los valores de tal forma que los SSD\/NVMe est\u00e9n constantemente ocupados, pero no <strong>atropellar<\/strong> convertirse.<\/p>\n\n<h2>NUMA, \u00abZone Reclaim\u00bb y hosts de gran tama\u00f1o<\/h2>\n\n<p>En los sistemas con NUMA, la localidad de la memoria es importante. Si vm.zone_reclaim_mode est\u00e1 activado, el n\u00facleo puede recuperar memoria de forma m\u00e1s agresiva en el nodo NUMA local, lo que provoca picos de recuperaci\u00f3n no deseados. Para muchas cargas de trabajo de alojamiento, desactivo la recuperaci\u00f3n de zonas y dejo que el programador se encargue de la ubicaci\u00f3n, con el fin de lograr un comportamiento m\u00e1s estable. Adem\u00e1s, compruebo las p\u00e1ginas enormes transparentes (THP): Las bases de datos suelen responder mejor con THP=never o madvise, ya que la desfragmentaci\u00f3n no planificada y las asignaciones de THP pueden provocar picos de latencia. El \u00abswappiness\u00bb puede ser perfecto, pero si las pol\u00edticas de THP o NUMA interfieren, los <strong>Tartamudeo<\/strong>.<\/p>\n\n<h2>Aspectos avanzados de los contenedores y los cgroups<\/h2>\n\n<p>Con Cgroups v2 dispongo de otros controles adem\u00e1s de la swappiness del host: \u00abmemory.high\u00bb provoca una recuperaci\u00f3n suave, \u00abmemory.max\u00bb establece l\u00edmites m\u00e1ximos estrictos y \u00abmemory.swap.max\u00bb limita el uso del swap por carga de trabajo. De este modo, evito que determinados contenedores ralenticen el host mediante el swap. En el nodo, establezco valores bajos de swappiness y otorgo prioridad a las cargas de trabajo cr\u00edticas mediante memory.low, para que sus conjuntos activos permanezcan m\u00e1s tiempo en la RAM. En Kubernetes, presto atenci\u00f3n a c\u00f3mo gestiona el nodo el intercambio y pruebo los cambios primero en grupos que no son de producci\u00f3n. Lo importante es la visi\u00f3n global: los par\u00e1metros del host, los l\u00edmites de Cgroup y el orquestador deben estar en consonancia; de lo contrario, la presi\u00f3n solo se traslada de un nivel a otro. <strong>otros<\/strong>.<\/p>\n\n<h2>Implementaci\u00f3n, automatizaci\u00f3n y reca\u00edda<\/h2>\n\n<p>Aplico los cambios en Swappiness, al igual que cualquier optimizaci\u00f3n del rendimiento, de forma controlada: primero en un peque\u00f1o grupo de nodos pr\u00e1cticamente id\u00e9nticos (Canary) y, a continuaci\u00f3n, de forma gradual a un conjunto m\u00e1s amplio. Systemd-sysctl o la gesti\u00f3n de configuraciones incorporan los valores de forma reproducible. Documento los valores iniciales y finales, las fechas y horas, los hosts implicados y <strong>M\u00e9tricas<\/strong>. Para el caso de que se produzca una reca\u00edda, planifico de antemano el cambio inverso (por ejemplo, sysctl vm.swappiness=60) y guardo los archivos sysctl anteriores. Durante las ventanas de mantenimiento, mido deliberadamente escenarios t\u00edpicos de carga para no confundir los cambios con las fluctuaciones horarias o de tr\u00e1fico. Solo as\u00ed las decisiones siguen siendo s\u00f3lidas y consensuadas en el equipo. <strong>comprensible<\/strong>.<\/p>\n\n<h2>Malentendidos frecuentes y antipatrones<\/h2>\n\n<ul>\n  <li><strong>\u201eSwappiness=0 desactiva el swap\u201c<\/strong>: No, el n\u00facleo sigue utilizando el espacio de intercambio, aunque de forma muy moderada.<\/li>\n  <li><strong>\u201eCuanto m\u00e1s swap, m\u00e1s seguro es\u201c<\/strong>: Un uso excesivo del swap prolonga las fases de presi\u00f3n y enmascara los cuellos de botella de la RAM, en lugar de resolverlos.<\/li>\n  <li><strong>\u201eCon NVMe, el intercambio de datos no importa\u201c<\/strong>: NVMe es r\u00e1pido, pero varios \u00f3rdenes de magnitud m\u00e1s lento que la RAM. Las latencias siguen siendo perceptibles.<\/li>\n  <li><strong>\u201eUn valor para todos los servidores\u201c<\/strong>: Las cargas de trabajo var\u00edan mucho. Sin mediciones, el ajuste queda al azar.<\/li>\n  <li><strong>\u201eSwappiness soluciona cualquier problema de latencia\u201c<\/strong>: A menudo, los problemas se deben a los aciertos de cach\u00e9, el \u00abwriteback\u00bb, el THP, los planes de consulta o las rutas de red.<\/li>\n<\/ul>\n\n<h2>Resumen para empezar r\u00e1pidamente<\/h2>\n\n<p>Normalmente configuro vm.swappiness entre 10 y 20 para los servidores web y entre 0 y 10 para las bases de datos, compruebo el efecto y observo la E\/S, las latencias y <strong>Intercambiar<\/strong>-Porcentaje. Establezco el valor definitivo mediante sysctl en \/etc\/sysctl.d\/ y mantengo un registro de los cambios. Al mismo tiempo, me aseguro de que la configuraci\u00f3n del espacio de intercambio sea adecuada: tama\u00f1o adecuado, soporte r\u00e1pido y prioridades razonables. En cuanto a la presi\u00f3n sobre la memoria, presto atenci\u00f3n adem\u00e1s a la cach\u00e9 de p\u00e1ginas y a su comportamiento; esta visi\u00f3n general ofrece una buena gu\u00eda de inicio sobre <a href=\"https:\/\/webhosting.de\/es\/servidor-pagina-cache-desalojo-linux-memoria-impresion-optimizacion-insight\/\">Eliminaci\u00f3n de la cach\u00e9 de p\u00e1gina<\/a>, que me ayuda a analizar las causas y <strong>Contexto<\/strong> . Con este procedimiento consigo tiempos de respuesta fiables, evito picos de paginaci\u00f3n y aprovecho eficazmente la memoria RAM disponible.<\/p>","protected":false},"excerpt":{"rendered":"<p>Descubre c\u00f3mo optimizar de forma espec\u00edfica el valor de vm.swappiness para tu servidor de alojamiento Linux y c\u00f3mo mejorar notablemente el rendimiento del servidor mediante un ajuste adecuado del swap en Linux.<\/p>","protected":false},"author":1,"featured_media":20859,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-20866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server_vm"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"151","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"vm.swappiness","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"20859","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts\/20866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/comments?post=20866"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/posts\/20866\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/media\/20859"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/media?parent=20866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/categories?post=20866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/es\/wp-json\/wp\/v2\/tags?post=20866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}