Categories
Android Tutoriais

Como tornar o seu sistema Android mais eficiente — ajuste do I/O scheduler.

Deadline

Sua atuação é minimizar a latência dos fluxos de informação ou reduzir as possibilidades de que as requisições “morram de inanição” – o que será atingido através de uma política de “rodízios” para ser justo entre os vários pedidos de E/S. Cinco filas (no Linux, são duas) são agressivamente usadas para reordenar as solicitações recebidas.

Os schedulers no Linux

Na documentação do kernel do Linux, é sugerido que este seja o preferido para operações em sistemas de bancos de dados ou sistemas com grande número de dispositivos de armazenamento.
A preferência a leituras em detrimento da escrita aliada às garantias de latência, fazem deste scheduler o ideal para lidar com as cargas de trabalho de servidores web.

Vantagens
  • Está bem próximo de um agendador em tempo real;
  • Se destaca por reduzir a latência de qualquer E/S;
  • Melhor scheduler para acesso a bancos de dados e queries;
  • A exigência da largura de banda de um processo, a percentagem de tempo de CPU que ele precisa, é facilmente calculada.
  • Tal como o noop, é um bom scheduler para flashdrives ou solid state drives.
Desvantagens
  • Quando o sistema fica sobrecarregado, a quantidade de processos que pode perder seu prazo de execução é imprevisível.

Noop

Este scheduler insere todos os pedidos de E/S em uma fila First In First Out – “O Primeiro a Entrar é o Primeiro a Sair”, em uma tradução livre – e implementa a fusão de requisições. É melhor para ser usado com dispositivos de armazenamento que não dependam de movimentos mecânicos para acessar dados. A principal vantagem, aqui, é que os drives flash não exigem reordenação de múltiplas requisições de E/S – diferente dos discos rígidos.

Vantagens
  • Atende as requisições de E/S com um mínimo de ciclos do processador (CPU). Pode ser útil para preservar a carga da bateria;
  • Melhor para drives flash, uma vez que não há penalidade por realizar buscas nos dispositivos de armazenamento;
  • Bom rendimento com bancos de dados.
Desvantagens
  • Tá certo… a redução no número de ciclos de CPU é proporcional à queda na performance.

Como você já deve ter percebido, o assunto não se esgota aqui e este artigo não traz respostas prontas. O ideal é testar cada um dos schedulers disponíveis para você e, a partir daí, determinar qual se encaixa melhor em suas necessidades.
Fontes:

Forum XDA-developers

Post do Maicon Jordan

Koolatek.com

Vincent Kong

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

3 replies on “Como tornar o seu sistema Android mais eficiente — ajuste do I/O scheduler.”

Há uma forma de, modificando os ajustes do scheduler CFQ, torná-lo (teóricamente) parecido com o Deadline? Pois meu dispositivo não possui Deadline, e eu gostaria de performance extra em games pesados.

Micro SD UHS-1 e pro armazenamento interno (flash)

Boa noite, parabéns! suas matérias estão me ajudando bastante, toda via necessito de uma opinião mais qualificada para esse assunto que é muito técnico para mim, qual desses schedulers é o melhor para se aumentar a velocidade de processamento sem consumir muita bateria?

Os Schedulers não são eficientes neste sentido.
Este é um trabalho pros governors.
A sua pergunta não é das mais fáceis de se responder, uma vez que cada governor é voltado ao perfil específico de cada usuário. Você vai ter que experimentar para saber qual o melhor pra você.
Não precisa experimentar todos. Leia as descrições de cada governor e anote aqueles que têm maior afinidade com o seu perfil. Você vai precisar usar cada um por, pelo menos, um dia inteiro, para ter a certeza de qual o melhor.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.