¿Por qué se recomienda swappiness = 10?

9

Se swappiness=10recomienda un valor de en SwapFaq de Ubuntu .

¿Por qué se recomienda un valor de 10 en lugar de swappiness=0?

¿Hay ventajas de 10 o contras de cero?

Eric
fuente
3
@Mitch Esa pregunta es sobre por qué las personas recomiendan reducir el intercambio. Esta pregunta es diferente; se pregunta por qué el intercambio debería estar por encima de cero en absoluto . Así que esto no es preguntar por qué la gente recomienda que sea tan bajo ; se pregunta por qué la recomendación es tan alta como es. Debido a que la respuesta allí (bastante racionalmente) no está de acuerdo con el argumento para reducir el intercambio hasta el momento, hay una cierta superposición con mi respuesta aquí, pero en última instancia, creo que estas son preguntas separadas (aunque relacionadas) con respuestas separadas.
Eliah Kagan
@EliahKagan touché :)
Mitch

Respuestas:

9

swappiness=0esperará para intercambiar hasta que sea absolutamente necesario. Establecer un valor moderado como swappiness=10hará que las páginas se intercambien de la memoria al disco algo más fácilmente. Esto puede evitar la necesidad de cambiar mucho de una vez; Tal necesidad puede introducir retrasos molestos.

Además, a menudo se ejecuta un proceso pero no hace nada durante un tiempo prolongado. Muchos demonios (servicios en segundo plano) se comportan de esta manera. Es posible que tenga una aplicación en segundo plano que no se usa por un tiempo. Y en la actualidad, algunas aplicaciones se implementan como procesos múltiples, como Chromium y Google Chrome, donde cada pestaña tiene un proceso separado detrás (no un hilo separado, sino un proceso separado ). Establecer swappinessun valor como 10 hace que estas tareas en segundo plano que no se usan activamente se intercambien en la memoria, incluso cuando podrían permanecer en la RAM. Luego, cuando un proceso más utilizado necesita asignar más RAM, puede hacerlo más rápidamente.

En conclusión, permitir que los procesos se intercambien de RAM a disco antes de lo necesario a menudo confiere un beneficio de rendimiento y latencias más bajas cuando un proceso asigna memoria. Esto es a expensas del tiempo que lleva volver a intercambiar los procesos. Pero esto generalmente se hace con mucha menos frecuencia que un proceso en uso activo que asigna y libera memoria, por lo que la compensación a menudo vale la pena.

Eliah Kagan
fuente
También debe tener en cuenta el búfer de su unidad. Si tiene un SSD con un búfer de 512 MB y 4 GB de RAM. probablemente pueda dejar esto en 10 sin preocuparse por ningún problema de rendimiento porque cualquier programa podrá asignar casi instantáneamente aproximadamente 1 GB de RAM. Tengo un SSD con 256 MB de búfer y 8 GB de RAM, así que también lo dejo en 10 porque también garantiza una asignación rápida de aproximadamente 1 GB que rara vez necesito.
stackount