2 votos

Ajustes del ratio de sobrecompromiso para Android (Kernal Adiutor)

Parece que no puedo obtener una respuesta directa sobre esto, y es la configuración de Overcommit en el Kernel de Android. Sólo tengo una comprensión básica de la misma, que permite que el sistema (?) para utilizar sólo un determinado porcentaje de la memoria RAM? De todos modos, con mis intentos fallidos de investigación, hay muy poco sobre este tema, y a menudo los artículos se contradicen entre sí. Por ejemplo, en estos artículos:

https://forum.xda-developers.com/Android/general/guide-comprehensive-guide-to-kernels-t3121088

https://forum.xda-developers.com/Android/general/guide-comprehensive-guide-to-kernels-t3121088

Ambos dicen que comprometerse en exceso es malo y debe ser desactivado. Sin embargo, en algunos otros artículos:

https://forum.xda-developers.com/showthread.php?t=1621808

Ellos establecen el sobrecompromiso al 100% (O simplemente lo dejan en 50). Sólo quiero una respuesta simple y directa, ¿cuál es la proporción de sobrecompromiso y cómo afecta a Android específicamente, de una manera u otra? (Batería, rendimiento, estabilidad)

¡Muchas gracias!

(Estoy editando mi Kernel Android [HotDog] con Kernel Adiutor)

EDITAR : Mi teléfono es Android 7.1 con 2GB de ram

0 votos

Nota rápida, también he notado que poniendo el overcommit a 0, da una media de 1000 mb de ram libre, mientras que el 50 por defecto da 900mb libres.

0 votos

engineering.pivotal.io/post/ Parece que lo explica bastante bien.

1voto

Diego LC Puntos 21

Cuando una aplicación solicita algo de memoria RAM, el sistema reservará algo de memoria para esa aplicación. Las aplicaciones no siempre utilizan tanta memoria RAM como solicitan, por lo que el sistema le dirá a la aplicación que tiene X cantidad de memoria RAM para utilizar cuando en realidad sólo se reservó Y cantidad de memoria RAM y X>Y es la proporción esencialmente. así que el 50% significaría que el sistema intentaría reservar un 50% menos de memoria física para esta aplicación de lo que quiere, pero lo mantiene en secreto de la aplicación y luego utiliza la multitarea para tratar de darle la ram que necesita

0 votos

Muchas gracias. ¿Afecta al rendimiento ponerlo a 0 o a 100%? No debería afectar a la batería porque es ram.

1voto

Hashbrown Puntos 588

El cambio de overcommit_ratio es, como la mayoría de los ajustes de Android, un mito de optimización. Si investigas estos parámetros del kernel, descubrirás que la opción overcommit_ratio sólo determina el sobrecompromiso permitido cuando el modo de sobrecompromiso manual está activado, es decir, overcommit_memory=2. Sin embargo, que yo sepa, ningún dispositivo Android tiene esta opción activada, y los dos dispositivos que he probado activando este modo han dado lugar a fallos de malloc/fork en todo el sistema, independientemente de la proporción que se haya establecido previamente.

Es decepcionante que un buen desarrollador como el que está detrás de Kernel Adiutor ni siquiera se haya molestado en investigar esto.

Comprometerse en exceso es bueno y necesario. Las aplicaciones siempre asignarán más memoria de la que realmente utilizan, como se puede ver en las discrepancias vss/rss/pss. Parece que los únicos modos válidos para sobrecomprometer memoria en Android son o bien determinar heurísticamente el límite de sobrecompromiso (es decir, overcommit_memory=0) que es el valor por defecto de Linux, o siempre tener éxito en cualquier commit que no sea absurdo y simplemente dejar que los gestores LMK/OOM acaben con las cosas según sea necesario (es decir, overcommit_memory=1) que creo que es el valor por defecto de Android (a pesar de que los documentos dicen lo contrario).

En pocas palabras, no importa lo que se establezca esto porque no hace literalmente nada para las distribuciones típicas (tal vez incluso todas) de Android. Cualquier mejora de rendimiento percibida es un placebo.

EDIT: Parece que overcommit_memory=0 sólo debería usarse en sistemas que tienen una partición de intercambio dedicada para actuar como red de seguridad ante fallos OOM cuando la memoria está realmente llena, pero esta configuración no es ideal para Android - el LMK de Android gestiona situaciones de baja memoria sin necesidad de paginación de disco.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X