¿Por qué el intercambio predeterminado es 60? ¿Cuál sería el efecto si reduzco el valor de intercambio para mi PC de escritorio?

16

Estaba leyendo sobre intercambios en varios foros y vi algunos videos. Muchos declararon que es bueno que los usuarios de escritorio disminuyan el valor de intercambio por debajo de 60 (que es el valor predeterminado). Algunos declararon que 60 es bueno para los servidores. Exactamente, ¿por qué sería mejor para mí reducirlo y por qué 60 es bueno para los servidores? Traté de buscar una respuesta (busqué aquí, por ejemplo) pero no pude entender. ... Utilice términos fáciles: D

Mina Michael
fuente
editado la pregunta. ¿Está bien ahora?
Mina Michael

Respuestas:

22

Tu premisa está mal. No existe un valor de intercambio 'bueno para servidores'.

El intercambio es la cantidad de intercambio que se realiza, especialmente qué tan agresivamente intercambias. Para mis servidores, el intercambio es cercano a cero, ya que me aseguro de que tengan suficiente memoria para todo. No existe el valor "mejor para los servidores". hay 60, que es el valor predeterminado, y luego está "su valor" que depende del uso y la memoria disponible.

Si tiene servidores que a veces usan MUCHAS CARGAS de memoria, podría tenerlos más altos que los predeterminados, pero yo diría que algunos servidores (¿servidores de bases de datos?) Pueden querer mantenerlos mucho más bajos que una computadora doméstica.

Nanne
fuente
bien está bien: DI seguía este unix.stackexchange.com/questions/88693/… . La segunda respuesta (la que actualmente tiene 2 votos a favor) dice que 60 pueden ser los más adecuados para los servidores. ... Y déjame aclarar esto. ¿Debo establecer un intercambio alto si realizo procesos que requieren memoria grande y bajos si hago múltiples procesos pequeños?
Mina Michael
(y dependiendo de las especificaciones de mi computadora, por supuesto) Tengo un núcleo 2 dúo de aproximadamente 2.9 GHz con gráficos integrados de Intel por cierto
Mina Michael
1
Imposible decirlo. Depende de muchas cosas, como también se indica en esa respuesta:> algunas bases de datos pueden hacer su propio almacenamiento en caché, pero otras no. Depende de los programas y de su hardware. Hay un valor predeterminado y lo mejor que puede hacer es probar cómo funciona su sistema en qué situación. Como dije, he agregado suficientes mem a mis sistemas, y sé lo que requieren, por lo que puedo tener un intercambio cercano a 0. Pero en sistemas saludables, algunos intercambios pueden ser algo bueno. No hay un consejo de configuración fácil de 'Dios para todos' aquí, lea la respuesta mejor votada. También: dice "puede ser", no "es" en esa segunda respuesta
Nanne
(y según sus especificaciones: lo más importante si está hablando de la memoria que tiene y de usted, pero no es necesario agregarla aquí: podríamos hablar durante días sobre todo tipo de detalles, lo mejor que puede hacer es leer el respuesta más alta en ese enlace de Unix que diste, y continúa probando cómo funciona en tu entorno. ''
Nanne
bueno, fue entonces cuando dije que no podía entender lo que había leído. Soy bastante débil en conocimiento (e incluso lenguaje para ser honesto XD) ... ¡así que solo necesito seguir intentándolo! bien gracias: D
Mina Michael
8

El valor de intercambio se escala de una manera que confunde a las personas. Ven que tiene un rango de 0-100, por lo que piensan en el porcentaje, cuando realmente el mínimo efectivo es de alrededor de 50.

60 significa aproximadamente no intercambiar hasta que alcancemos aproximadamente el 80% de uso de memoria, dejando un 20% para caché y demás. 50 significa esperar hasta que se nos acabe la memoria. Los valores más bajos significan lo mismo, pero con una agresividad creciente al tratar de liberar la memoria por otros medios.

La describen bastante bien en http://lwn.net/Articles/83588/

David
fuente
¿Qué significan los valores más altos, por ejemplo, 80 o 100?
Jocull
5

La configuración de intercambio es un ajuste en la forma en que Linux calcula los beneficios / inconvenientes del intercambio en un escenario particular. Un intercambio alto no hará que el sistema se intercambie cuando no sea necesario, y un intercambio bajo, siempre que no desactive el intercambio por completo, no evitará que su sistema se intercambie cuando sea absolutamente necesario.

El intercambio predeterminado de 60 más o menos es un compromiso muy bueno que garantiza un buen rendimiento de su sistema al garantizar que no tenga problemas para asignar memoria caché mientras haya memoria de programa asignada no utilizada.

Recuerde que si tiene suficiente RAM para todos sus procesos más caché, que generalmente debería ser el caso si tiene suficiente RAM física, el intercambio no debería ser un problema para usted de todos modos. La forma preferida de solucionar problemas de intercambio excesivo es disminuir el uso de RAM por parte de los procesos y / o aumentar la RAM física. Reducir el intercambio tendrá un efecto negativo si lo que realmente necesita es más RAM.

Por favor, vea la respuesta que escribí a una pregunta muy similar:

/ubuntu//a/184221/54256

Extracto:

¿Por qué la mayoría de las personas recomiendan reducir el intercambio a 10-20?

Porque la mayoría cree que el intercambio = malo y que si no reduce el intercambio, el sistema cambiará cuando realmente no sea necesario. Ninguno de los dos es realmente cierto. Las personas asocian el intercambio con los momentos en que su sistema se atasca; sin embargo, es principalmente un intercambio porque el sistema se atasca, no al revés. Es cierto que hay ciertos momentos en que el intercambio puede tener una penalización de rendimiento notable, pero el sistema ya lo habrá tenido en cuenta en su decisión de intercambiar, y decidió que no hacerlo tendría una penalización general mayor en el rendimiento o la estabilidad del sistema, lo que puede Más tarde se hará notable. En general, la configuración predeterminada debería dar como resultado el mejor rendimiento general y fiabilidad Recomiendo dejarlo en el valor predeterminado.

...

Una vez que haya utilizado suficiente memoria para que no quede suficiente para un caché que funcione sin problemas, Linux puede reasignar parte de la memoria de la aplicación no utilizada de la RAM para intercambiar.

Sin embargo, no hace esto de acuerdo con un límite definido. No es como si alcanzas un cierto porcentaje de asignación, entonces Linux comienza a intercambiarse. Tiene un algoritmo bastante "difuso". Tiene en cuenta muchas cosas, que se pueden describir mejor por "cuánta presión existe para la asignación de memoria". Si hay mucha "presión" para asignar nueva memoria, entonces aumentará las posibilidades de que algunas sean intercambiadas para hacer más espacio. Si hay menos "presión", disminuirá estas posibilidades.

Su sistema tiene una configuración de "intercambio" que le ayuda a ajustar cómo se calcula esta "presión". Normalmente no se recomienda alterar esto en absoluto, y ciertamente nunca recomendaría que lo altere. En general, el intercambio es algo muy bueno: cualquier penalización de rendimiento ocasional está destinada a compensarse con una ganancia en la capacidad de respuesta y la estabilidad general del sistema para una amplia gama de tareas. Si reduce la capacidad de intercambio, permite que la cantidad de memoria caché se reduzca un poco más de lo que lo haría de otra manera, incluso cuando realmente sea útil. Por lo tanto, corre el riesgo de ralentizar su computadora en general, porque hay menos caché, mientras que la memoria está siendo ocupada por aplicaciones que ni siquiera la usan. Depende de usted si es una compensación suficiente para cualquier problema específico que tenga con el intercambio.

¿Qué sucede cuando el sistema está bloqueado e intercambiando mucho?

Muchas veces las personas miran su sistema que está agotando el disco y usando mucho espacio de intercambio y culpa del intercambio. Ese es el enfoque equivocado a tomar. Si el intercambio llega a este extremo, significa que su sistema tiene una memoria extremadamente baja y el intercambio es lo único que evita que se bloquee o elimine los procesos al azar. Sin intercambio, en esta situación, los procesos se bloquearán y morirán. El intercambio es un síntoma de un problema más profundo. En un sistema con suficiente memoria para todas sus tareas, el intercambio solo garantiza que la memoria se utilice de manera eficiente, distribuyendo la memoria a la memoria caché a través de procesos inactivos donde cree que valdrá la pena. En un sistema donde el intercambio está agitando el disco sin descanso, no es culpa del intercambio.

Al elegir lo que se va a intercambiar en el disco, el sistema intenta elegir la memoria que no se está utilizando realmente: leer o escribir. Tiene un algoritmo bastante simple para calcular esto que elige bien la mayor parte del tiempo.

...

Pero, ¿cómo puede el intercambio acelerar mi sistema? ¿El intercambio no ralentiza las cosas?

El acto de transferir datos de la RAM al intercambio es una operación lenta, pero solo se toma cuando el núcleo está bastante seguro de que el beneficio general superará esto. Por ejemplo, si la memoria de su aplicación ha aumentado hasta el punto de que casi no le queda memoria caché y su E / S es muy ineficiente debido a esto, en realidad puede obtener mucha más velocidad de su sistema liberando algo de memoria, incluso después del gasto inicial de intercambio de datos para liberarlos.

Siéntase libre de leer la publicación completa en /ubuntu//a/184221/54256

thomasrutter
fuente
0

El intercambio es completamente contradictorio con todas estas respuestas.

El verdadero funcionamiento del intercambio se describe en el artículo: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-management/

La ambigüedad es corroborada por la declaración de Andrew Morton: https://lwn.net/Articles/83593/

Voy a meter mis dedos en mis oídos y cantar "la la la" hasta que la gente me diga "puse el intercambio a cero y no hizo lo que quería que hiciera".

Espero que sea útil

usuario3624410
fuente
1
Bienvenido a AU. ¿Podría resumir los puntos clave del artículo al que señala y explicar cómo responde a la pregunta, que no es para explicar qué es el intercambio o no?
Marc Vanhoomissen