Acceder

Ver la Versión Completa : [ TUTORIAL ] Configuración de la Ram, Governors y Planificadores E/S


TTMaster
17/07/14, 23:38:26
He recibido varias consultas sobre cómo se debería configurar el terminal para una gestion mejor de la Ram en cada caso. Y, como cada usuario es un mundo y es mejor enseñar que aconsejar...

Voy ha explicar el funcionamiento de android y que tienes que tener muy presente a la hora de configurar la gestion de la ram.
Olvidate de S.O. Windows cuando veas que tienes poca ram, porque en Android ES NORMAL. Ahora veras por qué.

En Android (linux) la gestion de memoria se realiza de la siguiente manera:

--Tipos de aplicaciones y procesos ejecutandose en el sistema

1. Aplicación en primer plano (La aplicacion que estas utilizando)
2. Aplicación Visible ( Aplicacion en segundo plano que esta realizando alguna accion)
3. Servidor secundario (Proceso que esta preparado en caso de necesitarlo)
4. Aplicaciónes Ocultas (Procesos de las aplicaciones ocultas)
5. Proveedor de contenido (Aplicaciones que proveen contenido al sistema)
6. Aplicación vacía (Aplicaciones guardadas en memoria para abrirse mas rapidamente)

De acuerdo con esta estructura y, ya que el funcionamiento de este sistema es llenar el maximo de ram para conseguir una respuesta mucho mas eficiente, android debe seleccionar que tipo de aplicacion debe matar para conseguir mas memoria cuando la necesite. Esto lo consigue gracias al LMK (Low Memory Killer. En linux OOM), encargado de matar procesos automaticamente si se necesita recuperar ram cuando arrancas otra aplicacion o antes de saturarla.

Ahora quiero que pienses cual de los 6 procesos matarias antes para recuperar ram.

Por prioridades logicamente seria esta:
1º.- Matarias la 6 ya que no interesa nada tener una aplicacion en memoria si es probable que no la vuelvas a utilizar. Ejemp.: la aplicacion de tu banco, Droidwall, etc.
2º.- Matarias la 5 ya que puedes matar procesos de contenido, una vez hayan hecho su funcion. Ejemp.: Sincronizacion de Google Play, idem del Correo electronico, etc.
3º.- Matar aplicaciones ocultas (4) no tiene que causar un efecto negativo cara al usuario, por lo tanto tambien puedes eliminarlas.
4º.- Servidor Secundario (3) hemos dicho que es un proceso que esta activo por si es necesario. O sea un servicio que esta preparado en caso de necesitarlo una aplicacion. Puedes matarlo, pero no seria recomendable.
5º.- Matar las Aplicaciones Visibles (2) es simplemente renunciar a la multitarea. No recomendable
6º.- Quien quiere matar la aplicacion que estas usando? (1)

Entonces... ¿Como configuras la ram o, mejor dicho, el LMK?(minfree LMK)

Android 4.3 para nuestro SP viene configurado de la siguiente forma:
Valores minfree LMK 58,68,78,88,98,118 (estamos hablando de puro Stock)

Significado:
Cuando la ram esta por debajo de 118Mb libres mataria las "Aplicaciónes vacías"
Cuando la ram esta por debajo de 98Mb libre mataria el "Proveedor de contenido"
Cuando la ram esta por debajo de 88Mb libre mataria las "Aplicaciónes Ocultas"
Cuando la ram esta por debajo de 78Mb libres mataria el "Servidor Secundario"
Cuando la ram esta por debajo de 68Mb libres mataria las "Aplicaciones Visibles"
Cuando la ram esta por debajo de 58Mb libres mataria la "Aplicación en primer plano"

Entendiendo esto, podemos comprobar la logica del sistema para gestionar la ram.
Ahora bien... ¿Estos valores son buenos para todos los usuarios del XSP? NO. Pero son los aconsejables para disfrutar de la multitarea real con aplicaciones "normales" de uso cotidiano.
¿Y si uso mucho la camara, juegos o aplicaciones pesadas con el terminal?
Entonces me conviene tocar estos valores para adaptarlos a mi gusto. ¿Cómo?
Si estamos utilizando Perfomance control u otra aplicacion similar, podemos observar que 4Mb equivalen a 1024. ¿Por que?. Porque esos 1024 android no los cuenta como bytes, si no como paginas y cada pagina equivale a 4k bytes.
Mirar esta operacion y lo entendereis:
1024x4 = 4096 --- > 4096 / 1024 bytes = 4Mb

http://i58.tinypic.com/2965c8.png

Si usaramos una aplicacion rot que nos permitiera cambiar los valores a nuestro gusto (lo que hace Perfomanse control es lanzar un script al inicio de sesion) podriamos aumentar o disminuir los valores para adaptar el rendimiento de nuestro terminal a las diferentes condiciones de uso... Gammer, Multitasking, etc. Para.estos casos bastaría con aumentar o disminuir. los cuatro últimos valores.
En el caso de Perfomance control deberemos optar en los ajustes preestablecidos, entre Agresivo o Muy Agresivo para situaciones que requieran tener mucha ram libre (juegos,aplicaciones pesadas,etc) o Ligera o muy ligera cuando necesitemos tirar de la multitarea.

¿Cuantas veces puedo cambiar estos valores?
Tantas veces como queramos ya que este ajuste se hace en tiempo real y no requiere reinicio.

Por ultimo aclararos que la ram libre que os aparece no es real. Es mucho menor a lo indicado.
El sistema Android, llena la ram que le queda con la cache. Memoria Libre=Ram Libre+Cache, por eso se nota mucha mas fluidez con mas ram libre, porque el sistema enseguida carga en la parte libre de la memoria la cache del sistema.

Espero haber aclarado conceptos y ayudado a que os configureis perfectamente vuestro terminal

En el siguiente post veremos los Governors y Planificadores e/s asi como el enlace para descargar Perfomance Control (Open Source)

TTMaster
17/07/14, 23:38:58
En esta segunda parte vamos a tratar de aspectos relacionados con el procesador y la lectura y escritura de la memoria fisica.

Como apuntaba en el post anterior, en este tema solo vamos a tratar de configurar el kernel Stock. Dicho de otra forma, trabajar con los parametros que Sony a puesto en nuestras manos para sacar el maximo partido a nuestro terminal. Es por ese motivo que no voy a citar Governors o Planificadores de entrada y salida que no podamos tener con una Stock ya que estos trabajan a nivel de kernel (Capa que se coloca entre las aplicaciones y los controladores de hardware)

Governors
1.- Definicion

Se llaman Governors o patrones de comportamiento del procesador a aquel software que regula la frecuencia del reloj del procesador a nivel de kernel.
Este software esta diseñado para controlar tanto la velocidad de ascenso como la de descenso del reloj, dependiendo de la carga de trabajo en cada momento. Esto se consigue mediante unas reglas prefijadas que permiten ese incremento o decremento.
Hay que reseñar que dependiendo del tipo (regla que escojamos) tendremos un consumo mayor o menor de la bateria.

2.- Tipos

ONDEMAND:
Es el governor que viene preestablecido en el 99% de los smartphones. Este governor, como su nombre indica, inicia rapidamente el escalado a la maxima potencia en el momento que se necesita. Es decir, tan solo con activar la pantalla el procesador trabajaria a su maxima potencia para despues ir descendiendo esta poco a poco hasta el nivel idoneo para trabajar.
Esto tiene un inconveniente. Y es que los cambios tan repentinos de potencia hace que la vida util de la bateria se vea comprometida pero, aun asi y como he citado anteriormente, es el que llevamos todos preconfigurado de fabrica.

INTERACTIVE:
Es el governor ideal (si se me permite decirlo) ya que es casi identico al ondemand pero con mas niveles de escalado. Esto significa que no vas a tener saltos tan amplios para incrementar o decrementar la potencia del procesador.
Este governor es el que en teoria hara que tengas un consumo mas racional de la bateria y, aunque esto hay muchos que no lo comparten, yo sigo pensando que la ventaja de tener mas niveles de escalado es que este es capaz de funcionar a un nivel inferior cuando ondemand esta al maximo. Este governor es el que permite que el procesador este siempre al rendimiento optimo.

PERFOMANCE:
Governor que hace que tu terminal vuele y vuele y vuele y consuma mucha mas bateria :)
El procesador trabajando al 100% hace que tu movil vaya increiblemente rapido y, para haceros dudar un poco mas, comentare que si necesitais alta potencia en cualquier ocasion, por trabajo o diversion y vas a tener que hacer tareas que requieran alta potencia, aunque parezca mentira ahorraras en consumo de bateria. ¿Por qué?. Pues porque tardaras menos en realizar dichos trabajos con el consiguiente ahorro de bateria.

Hasta aqui os he intentado explicar, de la manera mas sencilla que sé, los tres governors que podeis elegir con una rom con kernel oficial.


Planificadores E/S

1.- Definicion:

Se llaman planificadores E/S o planificacion E/S al método mediante el cual los sistemas operativos deciden el orden en que se procesan las peticiones de lectura/escritura en el disco duro o unidad de almacenamiento. Controla tambien la asignacion del espacio requerido para los procesos en ejecucion y garantizan que las peticiones de acceso se hagan en un tiempo limite. En ingles I/O Scheduler.
Para que entendais todos como trabajan pondremos el tipico simil de cuello de botella o embudo. Imaginaros un embudo lleno de bolas de colores y que cada color corresponde a una peticion de acceso y al mismo tiempo habria que meter mas bolitas de colores en sentido contrario. Con eso en mente veamos los tres planificadores que tenemos a nuestra disposicion.

2.- Tipos

NOOP:
Es el mejor para nuestras tarjetas flash (sdcard int/ext) ya que no necesitan un reordenamiento de las peticiones de Entrada/Salida(en adelante E/S) y este planificador gestiona todas las peticiones por el metodo FIFO o, lo que es lo mismo, las primeras en llegar son las primeras en salir o ser atendidas. Es el mas simple de los tres planificadores
En teoria es de las tres la que mas ahorro de bateria puedes obtener ya que se necesitan menos ciclos de CPU para gestionar las peticiones de E/S.

DEADLINE:
Con este planificador empezamos a ver un algoritmo que se basa en colas de procesamiento, es decir, reordena las peticiones y las pone en cola (5 en total)equitativamente, imponiendo tiempos de caducidad (deadline) a todas las peticiones E/S. Este planificador prioriza las peticiones de lectura sobre las de escritura.El mejor para bases de datos ya que agiliza mucho las consultas. Muy bueno salvo cuando el sistema se sobrecarga ya que se vuelve inestable en la eleccion de procesos.

CFQ:
Para mi es el mejor entre estos tres ya que es un planificador 100% equitativo. Su objetivo es mantener una cola de procesamiento de E/S escalable y por proceso que intenta distribuir equitativamente el ancho de banda disponible entre todas las peticiones de E/S.
Es un planificador similar al Anticipatory (linux)es decir manteniendo una buena capacidad de procesamiento al permitir que las colas de procesamiento puedan pausar al finalizar un proceso de Entrada/Salida y anticipando la petición más cercana de ese mismo proceso.
El inconveniente que tiene este planificador es que se dan casos en que el escaner de medios (la cache que realiza android con los archivos multimedia al inicio) tarda mas de lo normal en completarse.

Conclusiones y Configuraciones

Despues de leer y saber que es lo que tenemos entre manos, podemos decir que la mejor configuracion para cada caso seria:

1.- Juegos y aplicaciones pesadas:
Gestion de memoria: Agresiva o Muy Agresiva
Governor: Perfomance
Planificador: Noop

2.- Imagen y Video:
Gestion de memoria: Agresiva o Muy Agresiva
Governor: Ondemand o Interactive
Planificador: CFQ

3.- Multitarea Ofimatica:
Gestion de memoria: Media o Ligera
Governor: Interactive
Planificador: Deadline o CFQ

4.- Multitarea ligera:
Gestion de memoria: Ligera o Muy Ligera
Governor: Interactive
Planificador: Noop o CFQ

Con estos 4 supuestos he querido respetar en todo momento la relacion entre potencia de procesado, tasa de E/S y el consumo de bateria.

Descarga de Perfomance Control
Perfomance Control Open Source (http://forum.xda-developers.com/devdb/project/dl/?id=7333&task=get)

http://cdn5.andro4all.com/wp-content/blogs.dir/28/files/2014/03/performance-control.jpg

fernandoskit55
17/07/14, 23:47:00
Buen aporte,muy interesante

nolito16
18/07/14, 02:34:31
Quien no se lea esto si no lo sabe es que android le importa bien poco. Gracias maestro

.J.I.M.
18/07/14, 02:53:38
Excelente aporte :gracias: esperando la II PARTE....... :ok:

mastermil
18/07/14, 03:13:36
Buenisima explicación, muchas gracias

chucky6600
18/07/14, 11:39:49
Gracias por el aporte :ok:

eldelbaar
18/07/14, 12:06:30
Muy buena [emoji106]

leve_lepero92
18/07/14, 12:26:06
TTMaster Eres un crack! Muy buena explicación! :ok:

boo_guar70
18/07/14, 14:55:42
Agradecido totalmente a un aporte tan completo como el que ofreces, TTMaster :ok:

Jaime26
18/07/14, 15:02:14
Muchas gracias crack! Estaba buscando algo así :ok:

Edwings
18/07/14, 15:53:42
Chincheta!!!!!pero ya

miguel2013
18/07/14, 16:22:15
Gracias TTMaster un excelente aporte y de tu tiempo, gracias.

este va a favoritos pero ya....

TTMaster
18/07/14, 18:58:32
Actualizado.

dave1022
19/07/14, 23:15:52
gracias maestro....muy buen post :gracias:

mpiero
20/07/14, 11:23:05
Buen trabajo...
¿Y que sabes de los governors lionheart y Wheatley ?
Yo este último lo probe en la slimkat, y lo que notaba es que el consumo era mucho más bajo con el.

TTMaster
20/07/14, 12:54:02
Buen trabajo...
¿Y que sabes de los governors lionheart y Wheatley ?
Yo este último lo probe en la slimkat, y lo que notaba es que el consumo era mucho más bajo con el.
En la slimkat se sacaron esos dos governors de la manga, pero estan basados en los Conservative y OnDemand respectivamente. El Wheatley que pusiste te podria ahorrar algo de bateria porque intenta frenar esos saltos a frecuencia max de la cpu. El otro es una adaptacion de un governor sacado por samsung. Al principio dieron problemas y no se si los han corregido, pero como ya he comentado con el kernel Stock tan solo podemos disfrutar de esos 3 que cito. Hay muchos governors y planificadores pero al estar trabajando a nivel de kernel, o metes un kernel modificado o...
Fijate en esta imagen y veras hasta donde se puede llegar con kernels NO oficiales.

http://i57.tinypic.com/2lmt1tg.jpg

Saludos

mamechapa2
21/07/14, 14:54:51
Buenisimo el tutorial. Habia leido sobre todo esto pero nunca tan detallado y tan facil. Muchas gracias!
Aunque tengo una duda: en Perfomance Control, al configurar los valores para la RAM, los predeterminados serian el que se llama "Medio"?

Kraksiplus
21/07/14, 16:39:04
Exelente amigo, es lo que nesesitaba para el control de la rom existenz, se me estaba pegando demasiado asi que configure estas opciones segun el uso que le doy y es perfecto gracias!!!

TTMaster
21/07/14, 19:18:20
Gracias a TODOS vosotros por vuestros comentarios. De verdad que me animáis a seguir compartiendo todo lo que sé para que podáis disfrutar del teléfono. ;-)
Dicho esto contesto a MAMECHAPA2: si no tocas nada, estás utilizando el ajuste Medio.

El próximo tuto ira sobre la forma de crear un archivo update.zip para que os metáis ahí vuestras aplicaciones preferidas e instalarlas por recovery. Creo que es interesante ya que podéis hacer una instalación limpia y flashear el update al final y al arrancar tener vuestras apps ya instaladas.

mamechapa2
21/07/14, 21:44:32
Gracias a TODOS vosotros por vuestros comentarios. De verdad que me animáis a seguir compartiendo todo lo que sé para que podáis disfrutar del teléfono. ;-)
Dicho esto contesto a MAMECHAPA2: si no tocas nada, estás utilizando el ajuste Medio.

El próximo tuto ira sobre la forma de crear un archivo update.zip para que os metáis ahí vuestras aplicaciones preferidas e instalarlas por recovery. Creo que es interesante ya que podéis hacer una instalación limpia y flashear el update al final y al arrancar tener vuestras apps ya instaladas.
Me he animado a cambiar el valor, he seleccionado medio y los valores han cambiado, es decir ahora son distintos a los que venian default. Pero bueno, no importa, ahora tengo mas control aun sobre mi dispositivo y en ligero el movil va de perlas para lo que lo uso. Aunque si alguien tiene esos valores default no me vendrian nada mal...

leve_lepero92
22/07/14, 11:02:57
Grande TTMaster!!! Deseando poder leer el nuevo tema sobre como crear un .zip GRANDE! :dios:

chone
22/07/14, 15:02:37
Gracias TTMaster. Muy buen aporte.
Y los gobernors Wheatley y Lionheart qué hacen? Porque a mi me aparecen.

boo_guar70
24/07/14, 21:12:58
Gracias TTMaster. Muy buen aporte.
Y los gobernors Wheatley y Lionheart qué hacen? Porque a mi me aparecen.

Lee el post #17, chone X-D

chone
24/07/14, 23:32:15
Lee el post #17, chone X-D

Muchas gracias Boo. Había leído todos los post(es una rara costumbre que tengo, leer los hilos completos antes de dar la chapa) pero se ve que con la edad cada día tengo más memoria de pez.
Muchas gracias

mpiero
02/08/14, 17:59:45
Es una pena que se pierdan los artículos de ttmaster, propongo crear un índice de Artículos interesantes o algo así y que quede fijo arriba ¿?

boo_guar70
06/08/14, 18:46:20
Pues es una lástima que no lo hagan ya!
Son pautas buenas que se está tomando la molestia de hacer para ayudar y no para que desaparezcan en el olvido

leve_lepero92
06/08/14, 19:31:45
Estoy totalmente de acuerdo con mpiero y con boo_guar70 :-)

TTMaster
07/08/14, 00:13:30
Para eso estan tambien los favoritos :D

Letal34
07/08/14, 13:51:37
Gran trabajo TTMaster, como de costumbre. Llevo muy poco tiempo en el foro y ya puedo ver tus grandes aportes. Me falta la chincheta aquí! 😊

Andres_vlc
11/08/14, 09:00:45
sin palabras.... por fin entiendo el funcionamiento de esa dichosa aplicacion que todos piden y yo no sabia para que funcionaba...

gracias Maestro TTMaster!!!!

boo_guar70
16/08/14, 10:53:22
¿como no os animáis los moderadores a subir este tutorial junto al hilo de principales? :ok: