Como alterar a velocidade do processador no Android — ajuste dos governors

Neste artigo, vou explicar o que é um governor e como ele afeta o desempenho do seu aparelho.
Você irá conhecer e entender mais de 20 governors disponíveis para aparelhos Android – sejam tablets ou smartphones. A relação de governors, disponíveis em seu aparelho pode ser extensa e depende dos recursos de hardware presentes nele.

O que é exatamente um governor?

Basicamente, é um “gestor” de recursos do(s) processador(es) de seu aparelho. Cada governor segue um conjunto próprio de políticas que adaptam a frequência do clock da CPU e da GPU a certas condições – elevando-a ou diminuindo-a. Há dezenas de governors, cada qual projetado para um determinado perfil de uso – alguns te dão maior performance, outros maior duração da bateria.

Android CPU Painel de controle
clique para ampliar
O assunto tem ganhando mais importância, entre os usuários de dispositivos móveis por que tem grande impacto na fluidez da interface gráfica dos smartphones e tablets e na duração da carga da sua bateria. O que pode te dar um ganho de eficiência é escolher o governor, enquanto conjunto de ajustes, que melhor  se acomode ao seu estilo de vida. Neste artigo, vamos conhecer os gestores mais comuns.

Como alterar o meu governor

Você não pode alterar o governor do seu dispositivo, como usuário normal. Você precisará ser root para isto. Além do quê, precisará ter uma ROM e um aplicativo que te dê acesso a este mecanismo do sistema.
Em seguida, vamos relacionar os governors mais comuns e seus efeitos no seu aparelho.

OnDemand

Este governor tem um gatilho sensível, que impulsiona o clock à velocidade máxima definida pelo usuário. À medida que a demanda por recursos do processador diminui, a frequência do clock vai se reduzindo até chegar ao mínimo definido pelo usuário.

O perfil de gestão de recursos OnDemand oferece excelente fluidez à interface por causa de sua tendência à alta freqüência – mas tudo tem um preço. Este governor, pode ter um efeito relativamente negativo sobre a duração da bateria, se comparado a outros. Não se esqueça: quanto mais alta a frequência do clock, maior é a velocidade do sistema e menor será a duração da sua bateria.

Sua principal característica é elevar o clock ao seu nível máximo, assim que uma nova atividade é detectada, para garantir a responsividade do sistema.

O OnDemand é comumente escolhido por fabricantes de smartphones e é padrão em quase todos os kernels (Android e Linux), porque é bem testado, confiável e praticamente garante o desempenho mais suave possível para o telefone. Isto é assim porque os usuários são muito mais propensos a reclamar do desempenho do que das poucas horas de vida extra (da bateria) que outro governor poderia ter-lhes concedido.

OndemandX

Basicamente, é um OnDemand com maior atenção para os recursos de suspend e wake, portanto, é um pouco mais econômico em relação à bateria. Ao apagar das luzes da tela, a frequência máxima é fixa em 500 Mhz. Tem boa interação com o scheduler SIO.

Performance

Aqui, o clock é fixado na frequência máxima possível. Embora pareça ser uma má ideia (por que drena a carga da bateria), há evidências que sugerem que usar o aparelho com o clock máximo acelera o race-to-idle — processo no qual um aparelho completa uma tarefa e retorna a CPU a um estado de eficiência extrema de economia de energia. Mas esta tese ainda requer testes e o perfil requer um kernel que implemente o C-states (estado de baixo consumo) na CPU.

setcpu, clock speed
Clique para ampliar

Powersave

Oposto do Performance. Este governor fixa o clock no nível mais baixo, determinado pelo usuário. O seu objetivo é a economia de energia.

Conservative

Orienta o aparelho a usar o menor clock, sempre que possível. Em outras palavras, uma carga de tarefas precisa ser maior e mais persistente para “convencer” o governor a aumentar a velocidade do clock da CPU.

A depender do modo como o programador o implementou ou da velocidade mínima de clock, definida pelo usuário, este pode ser um tanto ruim na performance. Por outro lado, isto pode ser bom para quem precisa economizar na bateria. Às vezes, ele é chamado de slow OnDemand – o que pode ajudar a ter uma ideia melhor da sua funcionalidade.

Userspace

Excepcionalmente raro no mundo móvel, este é mais presente em servidores ou PCs. Ele permite que programas executados pelo usuário determinem a frequência em que a CPU vai operar.

Min Max

Este é o “ou oito, ou oitenta”. Com ele, a CPU opera no clock máximo ou no mínimo – baseado na carga de exigências.

Interactive

Este governor foi projetado para dar mais prioridade às tarefas na Interface do Usuário (seus apps) – ele aparenta ser mais responsivo que o tradicional OnDemand. Pode-se dizer que ele foi feito para quem deseja obter maior suavidade na interação entre os aplicativos.

Semelhante ao OnDemand, o Interactive faz um escalonamento dinâmico da velocidade do clock em resposta à carga de trabalho imposta à CPU pelo usuário – e é aí que as similaridades terminam. Este modo de operação é significantemente mais sensível que o OnDemand, uma vez que é mais rápido na escalada pra frequência máxima.

Diferente do OnDemand, no qual as escalas da velocidade do clock são determinadas pela fila de trabalhos, o Interactive faz o escalonamento do clockspeed ao longo de um temporizador definido internamente pelo desenvolvedor. Em outras palavras, se uma aplicação demanda a velocidade máxima do clock (inserindo uma carga de trabalho de 100% na CPU), ainda é possível executar outra tarefa do usuário antes do governor voltar a reduzir a frequência da CPU. Isto pode reduzir o sobe e desce da frequência. Em função deste temporizador, o Interactive está melhor preparado para usar clockspeeds intermediários – fato que também beneficia a duração da carga da bateria. Contudo, já que este perfil se permite permanecer mais tempo na frequência máxima da CPU (em benefício da performance), os ganhos na vida útil da carga da bateria acabam não sendo tão significativos em relação ao perfil OnDemand.

Para encurtar a estória, o Interactive oferece uma performance melhor do que o OnDemand — e há quem diga que, de todos, é o melhor governor — e uma diferença desprezível na economia de energia.

InteractiveX

Criado pelo desenvolvedor do kernel Imoseyon, o InteractiveX se baseia fortemente no Interactive, como já era de se esperar, com um timer ajustado para prover uma relação melhor entre consumo e performance do aparelho.

A característica que define InteractiveX, contudo, é o fato de que ele fixa a frequência da CPU no valor mínimo definido pelo usuário, quando a tela é apagada.

Smartass

Baseado nos conceitos do Interactive – o Smartass (ou espertinho) foi totalmente reescrito, com algumas adições, por erasmux, para usar no seu kernel Android. Popular por sua habilidade no uso do mecanismo de suspensão onboard do Android. Tal como o Conservative, é suave para aumentar a frequência do clock.

É consenso entre alguns especialistas que ele faz bem o que ele se propõe. Sua performance é equivalente à do “velho” mínimo/máximo e, há quem diga, é um pouco mais responsivo – ou seja, reage rápido às mudanças no ambiente.

É difícil quantificar, com precisão, o consumo energético do aparelho rodando neste perfil. Mas ele permanece, a maior parte do tempo, em baixas frequências – o que indica baixo consumo.

Outra característica deste perfil é que ele fixa a frequência máxima em 352Mhz — ou, no caso de você ter definido uma frequência mínima acima de 352, o Smartass vai respeitar a sua definição. Pra exemplificar, Se você definiu as velocidades máxima/mínima em 624/152, ele vai entrar no modo de espera (standby ou sleep mode) em 352/152.

Durante o dia, o seu aparelho passa mais tempo em standby?

SmartassV2

A segunda versão do Smartass também é a favorita entre muitas pessoas. Este governor visa uma “frequência ideal” e, quando precisa, a alcança agressivamente – a partir daí, a escalada é mais suave.

Samsung GT S5360 clock frequencias
Opções de frequências de clock.

Tela ligada e tela desligada têm frequências de operação diferenciadas — estes eventos são chamados awake_ideal_freq e sleep_ideal_freq, internamente.

Este governor é capaz de reduzir o clock rapidamente para atingir a sleep_ideal_freq, assim que a tela é desligada. E sobe rapidamente em direção ao awake_ideal_freq, quando a tela é ligada.

Diferente do Smartass, não há limite máximo de frequência, quando a tela está desligada. Desta forma, todo a faixa de frequência disponível é usada pelo governor no processo de mudança entre tela desligada/ligada.

Aqui, o objetivo é balancear a performance e o consumo da bateria e, dependendo do poder de processamento do seu aparelho, ninguém vai perceber o lag quando sair do standby.

Conheça o perfil Scary (assustador!), na próxima página — um caso em que o nome não corresponde à “pessoa”.

Como mudar o hostname no Ubuntu

No momento em que você instala o seu sistema pela primeira vez, é perguntado qual vai ser o nome do computador dentro da rede em que ele estará sendo instalado – ainda que não haja rede fisicamente, o computador tem que ter um nome. Se você se arrependeu do nome dado inicialmente, veja aqui como trocar.

Como mudar o hostname via linha de comando

Para realizar os procedimentos abra um terminal (Ctrl + Alt + T) e execute o comando hostname, para ver o nome atual da sua estação de trabalho:

hostname

Wintermute-server

Vamos alterar o hostname para Matrix-Server e verificar se deu certo:

sudo hostname Matrix-Server
hostname

Matrix-Server

Convém verificar o arquivo /etc/hosts e, se for o caso, alterar alguma linha que faça referência ao hostname antigo:

sudo nano /etc/hosts
127.0.0.1	localhost
127.0.1.1	Wintermute-server

Se houver alguma referência ao hostname antigo neste arquivo, altere-o para o novo nome.

127.0.1.1	Matrix-Server

Em seguida, grave o arquivo com Ctrl + O e saia do editor com Ctrl + X.
Agora, para que as mudanças tenham efeito em todo o sistema, você precisa reiniciar o computador. Se você quiser, contudo, pode apenas reiniciar o hostname, deste jeito:

sudo /etc/init.d/hostname stop
sudo /etc/init.d/hostname start

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

Neste artigo, vamos tratar dos ajustes do I/O scheduler – que, numa tradução livre, quer dizer agendador ou programador de E/S (Entrada/Saída de dados), que também ajuda a melhorar a performance geral do aparelho — se você conseguir ajustá-lo ao seu perfil de uso.
Diferente dos governors, os schedulers não atuam nos processadores, mas direcionam as prioridades no fluxo de dados do seu dispositivo.

O que é I/O Scheduler

De acordo com a Wikipedia, é o método que os sistemas operacionais usam para decidir em que ordem os blocos de E/S serão submetidos aos dispositivos de armazenamento — motivo pelo qual são chamados, às vezes, disk scheduling (agendamento de disco).

Os perfis de I/O Schedulers

Android CPU Painel de controle
clique para ampliar

Como já foi dito, este gestor determina as prioridades do fluxo de dados no seu aparelho em relação às mídias de armazenamento. Há diversos perfis possíveis de gestão que visam alcançar estes 4 propósitos:

  • Minimizar o uso do disco rígido, cartão etc;
  • Priorizar as requisições de E/S vindos de processos;
  • Reservar largura de banda para rodar processos nas mídias de armazenamento;
  • Garantir que certas requisições sejam satisfeitas antes que “prescrevam”.

Portanto, de forma resumida, o Kernel controla o acesso aos dispositivos de armazenamento usando o scheduler, que tenta se pautar pelas seguintes diretrizes:

  • Justiça – permitir que cada processo tenha o seu tempo de acesso aos dispositivos de armazenamento;
  • Performance – tenta atender as requisições mais próximas à posição atual de leitura/gravação na mídia, uma vez que ali a busca será mais rápida;
  • Tempo real – tenta garantir a rapidez para atender cada requisição, no momento em que ela chega.

Dito isto, vamos analisar cada perfil do scheduler e a que eles se propõem, além de suas vantagens e desvantagens. De posse destas informações, você poderá escolher aquele que mais se adéqua ao seu estilo pessoal de uso do smartphone.

Anticipatory

noop deadline android schedulers
Clique para ampliar

Baseia-se no fato de que a velocidade de acesso aos dispositivos de armazenamento é muito lenta, que as operações de escrita podem ocorrer a qualquer momento e há sempre um processo querendo realizar uma operação de leitura.

Portanto, prioriza as operações de leitura em relação às de escrita. Ele antecipa operações de leitura síncrona.

Vantagens
  • As requisições para leitura nunca ficam “morrendo à míngua”;
  • Tão bom quanto o noop quanto à performance de leitura em mídias flash;
Desvantagens
  • O seu trabalho de “adivinhação” nem sempre é confiável;
  • Reduzida velocidade de escrita em discos de alta performance.

BFQ

Em vez de fatias de tempo alocados pela CFQ, a BFQ propõe “orçamentos”. O disco é oferecido a um processo ativo até que seu orçamento (número de setores alocados) expire. O BFQ determina grandes previsões de recursos a tarefas que não são de leitura. O orçamento associado a um processo varia de acordo com seu comportamento.

Vantagens
  • Há usuários que concordam que é muito bom para transferência de dados via USB;
  • Acredita-se que seja o melhor scheduler para gravação de videos de alta definição e streaming de video;
  • É considerado um I/O scheduler acurado;
  • Atinge cerca de 30% mais rendimento.
Desvantagens
  • Não é o melhor para benchmarking;
  • Orçamento mais elevado atribuído a um processo pode afetar a interatividade e aumento da latência

CFQ

Sigla para Completely Fair Queuing, é um scheduler que mantém uma fila de E/S escalável por processo e procura distribuir o fluxo igualmente entre todas as requisições.
No Linux, o CFQ é o scheduler padrão, desde a versão do kernel 2.6.18 (setembro de 2006).

Vantagens
  • Conhecido por oferecer uma performance de E/S balanceada;
  • Mais fácil de ajustar;
  • Se destaca em sistemas multiprocessados;
  • Depois do deadline, é o melhor sistema para lidar com bancos de dados.
Desvantagens
  • Alguns usuários têm reportado que as buscas nos dispositivos de armazenamento tomam mais tempo, com o uso do CFQ – o que pode ocorrer em função do scheduler atribuir a mesma prioridade a todas as operações de E/S e, portanto, nenhuma prioridade seria concedida à buscas nas outras mídias;
  • O Jitter (pior caso de atraso) pode ser bastante alto, por causa do número de tarefas competindo pelo acesso ao disco.

SIO

Sigla que corresponde a Simple I/O scheduler. Corresponde a um perfil que tem como objetivo produzir o mínimo de sobrecarga ao sistema para manter baixo o nível de latência para servir as requisições de E/S.

Vantagens
  • Simples – confiável, portanto;
  • Um mínimo de requisições que “morrem de inanição”.
Desvantagens
  • Comparado a outros schedulers, a velocidade de leitura aleatória é baixa em drives flash;
  • A leitura sequencial em drives flash também não muito boa.

V(R)

A diferença deste schedulers para outros é que as requisições síncronas e assíncronas não são tratadas separadamente. Em vez disto, um prazo “imparcial” para sua execução é imposto. A próxima requisição a ser executada é a que estiver mais próxima.

Vantagens
  • Há casos em que é melhor para benchmarking.
Desvantagens
  • Flutuações na performance pode resultar em desempenho abaixo da média;
  • Menos confiável/Mais instável.

Na próxima página, vamos falar sobre os 2 últimos e mais usados schedulers: o Noop e o Deadline.

Minha análise sobre a hospedagem grátis PHP e MySQL do 000webhost

Web Hosting
Dos vários provedores de hospedagem grátis, que já experimentei, há alguns que merecem ser destacados em alguns posts. O 000WebHost ou FreeHosting.com é um deles.
Estabelecidos desde 2006 e, segundo o site, contam com mais de 60 mil clientes mundo afora. Oferecem vários planos, sendo que o básico (gratuito) conta com 1.5Gb de espaço e a promessa de 100Gb de transferência de dados mensal. O objetivo é conquistar o cliente do plano básico, é seduzi-lo para fazer um upgrade para uma conta paga, com mais recursos.

O ideal, é sempre contratar um plano sério e pagar pelos serviços recebidos. Mas há casos em que um provedor gratuito é a melhor opção: sites demo, de aprendizado etc.

Uma das boas surpresas do plano grátis é o suporte a PHP, Ruby, Perl, MySQL e PostgreSQL – com isto, praticamente qualquer projeto pode ser iniciado e, assim que você julgar necessário, partir para um dos planos pagos do provedor.

As restrições ao uso do PHP e do MySQL são mínimas (máximo de 5 contas no banco de dados). E o PHP tem suporte aos seguintes recursos:

  • função PHP mail() e Sendmail;
  • Curl, biblioteca GD2, XML, Zend e suporte a .htaccess;
  • fopen() e sockets PHP sockets;
  • safe_mode, desligado e upload de arquivos, ligado;
  • suporte ao Zend Optimizer, Ioncube etc;

Outros recursos oferecidos:

  • Sem publicidade. O serviço não impõe anúncios ao seu site;
  • Hospedagem do seu próprio domínio;
  • Se não tiver um domínio, o usuário pode escolher um dos subdomínios gratuitos do próprio site;
  • Contas de email POP3 e acesso web (webmail);
  • Mais de um tipo de gerenciador de arquivos Web e FTP.

Painel de controle cPanel

Um dos painéis de controle mais usados nos provedores e com vários recursos disponíveis, já nesta versão básica e gratuita do plano de que estamos falando é um atrativo pro serviço. Se você for iniciante, não vai ter dificuldades para realizar qualquer tarefa dentro deste painel.

Fantastico De Luxe, instalador automático de aplicativos

Aqui, os iniciantes ou quem tem pouco tempo para por uma solução no ar, têm uma ferramenta que permite instalar com poucos cliques mais de 40 aplicativos pro seu site, tais como Drupal, Geeklog, Joomla, Xoops, WordPress, b2evolution, Support Logic Helpdesk, phpBB2, SMF, OS Commerce, ViPER Guestbook, Coppermine Photo Gallery, PhpWiki, PHPauction, WebCalendar etc. – acesse o site e veja a lista completa.

Faça você mesmo o seu website

O SiteReptile, um dos aplicativos disponíveis, permite montar o seu próprio site, em poucos passos — é uma questão de dar os detalhes do seu cadastro, selecionar um entre os mais de 300 templates e mandar publicar (pra resumir).

Suporte

O que diferencia os diversos serviços online, costuma ser a qualidade do suporte. Não espere muito de uma hospedagem gratuita, neste quesito. Suporte é caro e eles precisam pagar as suas contas. Ainda assim, há uma boa quantidade de tutoriais e informações que podem ser lidas para ajudar a resolver a maior parte dos problemas que você encontrar pela frente.
Na versão paga, normalmente, um técnico resolve a maior parte dos problemas pra você. Isto é uma grande diferença.

POSTS RELACIONADOS

O serviço é para você?

Se você está iniciando um projeto de comunidade online, um blog ou site pessoal, pensa em começar pequeno para crescer aos poucos, sim.

Desvantagens do serviço

A hospedagem gratuita, como já era de se esperar, é claramente uma degustação. Não é feita para projetos que já passaram da fase inicial – neste caso, a experiência será decepcionante.
O suporte técnico, embora costumem responder agilmente, não se iluda, é voltado para clientes pagantes – portanto se prepare para resolver a maior parte dos problemas por sua própria conta.
Há limite de upload de arquivos (2mb). Não há acesso SSH/SFTP/SCP, nem suporte a SSL pro seu domínio, na versão grátis.
Abaixo, segue o banner “discreto” do serviço, para você clicar – o melhor julgamento, é que você mesmo faz.
Web hosting

Como usar o tasksel para instalar softwares no seu sistema

O tasksel é um dos aplicativos mais eficientes para instalar vários softwares de uma só vez nas distribuições baseadas no Debian — o que inclui Ubuntu, Linux Mint etc.
O programa pode ser usado para determinar um perfil de uso de um computador: você diz para quê vai usar a máquina e o tasksel baixa e instala todos os softwares que correspondem àquele perfil de uso. E, sim! Você pode selecionar mais de um perfil para o seu sistema.
Em outro artigo, ensinei como usar o tasksel para instalar um servidor web (Apache), MySQL e PHP de maneira simples.

Como instalar o tasksel

O aplicativo é parte integrante do Debian. No Ubuntu, você precisa instalá-lo antes de usar.
Abra um terminal (Ctrl + Alt + T) e digite o comando, a seguir:


sudo apt-get update

sudo apt-get install tasksel

Aguarde enquanto os pacotes são baixados e instalados.
feito isto, rode o tasksel:


sudo tasksel
Tasksel no debian 7.0
Clique para ampliar

Quais são os perfis possíveis para instalação pelo tasksel?

A resposta a esta pergunta vai depender da distro utilizada. São muitos.
Contudo, a partir de uma pequena distro, como mini CD Debian, as opções são bastante limitadas inicialmente. Em uma distro tradicional Ubuntu a lista de perfis é bem maior – onde é possível trocar todos os pacotes instalados para Ubuntu/unity por Ubuntu/KDE, com dois toques no teclado.

Exemplos de uso do tasksel

Você pode listar os perfis possíveis de instalação ou ordenar a instalação diretamente via linha de comando, sem a necessidade de acessar a tela principal do aplicativo.
Para ver os perfis disponíveis:


sudo tasksel --list-tasks

Para ver os softwares que compõem o perfil de um servidor de impressão — e que serão instalados, se você o selecionar:


sudo tasksel --task-packages print-server

tasksel para instalar servidor dns
Clique na imagem para ampliar

Para instalar diretamente, da linha de comando, todos os pacotes que compõem o UbuntuStudio-photography (versão Ubuntu voltada para uso e produção de multimídia, com ferramentas profissionais de edição de fotos):


sudo tasksel install ubuntustudio-photography

Experimente e veja com seus próprios olhos como é fácil!
Fonte: Wiki Debian.