Explicando o load average no Linux

A expressão load average(s), numa tradução livre, quer dizer média(s) de carga (de trabalho).
No universo UNIX/Linux, é uma expressão recorrente e, talvez, pouco compreendida

Se você usar a caixa de busca deste site, vai encontrar alguns artigos que fazem menção a load average (ou LA), além de ferramentas que lidam com estas variáveis.
O assunto pode ter alguma complexidade, mas espero conseguir facilitar sua compreensão neste artigo.
As variáveis de LAs usualmente são exibidas em trio (LALALA). 😉
A maneira mais simples de acessar estes números é através do comando uptime:


uptime

 09:04:33 up 1 day, 23:32,  1 user, 
load average: 0,72, 0,67, 0,64

Você pode também usar o comando top, para obter estes valores.

top load average
Em destaque, no topo, à direita, os valores do load average.
Clique na imagem, para ver detalhes.

Como a maioria dos meus posts, este surgiu da minha parcial ignorância sobre o assunto.
Depois de pesquisar um pouco, vim compartilhar o que aprendi com meus leitores.
Os sites pesquisados, como sempre, estão na sessão de referências, para quem quiser se aprofundar um pouco mais.

Resumidamente, trata-se da média total do número de processos em espera na lista de execução (run-queue) somado ao número de processos atualmente em execução, dentro do último período de 1, 5 e 15 minutos.

A definição, destacada acima, é bastante razoável, mas a fórmula para chegar lá é um pouco mais complicada.
Vamos entender qual o significado disto no seu sistema.
Vamos usar o resultado abaixo como exemplo:

load average: 0,72, 0,67, 0,64

Neste exemplo, vemos que o valor de 1 minuto é 0,72; 5 minutos, 0,67 e 15 minutos, 0,64.
Podemos tirar algumas conclusões disto:

  • Em média, no último minuto, havia 0,72 processos rodando ou esperando por recursos do sistema.
  • Há uma crescente demanda por recursos, aqui, uma vez que os valores aumentam (da direita para a esquerda) desde os últimos 15 minutos para o último minuto — de 0,64 para 0,72.
  • Este sistema está ocioso, embora seja necessário observar outras variáveis do sistema antes de concluir tal coisa.

Os load averages do sistema são as médias do número de processos que estão ou em estado de execução ou de ininterrupção.
Os primeiros, ou estão usando a CPU ou esperando para usá-la.
Os outros estão esperando por acesso E/S (gravar informações em disco, por exemplo).
As médias são obtidas dos 3 intervalos de tempo.

É importante mencionar que o load average não trata especificamente de número de processos em execução.
Ele trata também de processos na fila de espera para usar a CPU, ler dados no disco, enviar informações pela rede etc.
O que dá para saber é que um sistema com um load average significantemente mais alto do que o número de CPUs, está provavelmente muito ocupado ou travado em um gargalo.
Por outro lado, um sistema que tenha um LA significantemente mais baixo que o número de CPUs disponíveis, está provavelmente ok e rodando bem.
Como estão as coisas no seu sistema?

Os números são normalizados para a quantidade de CPUs no sistema.
Por isto, o valor 1 significa que um única CPU estava carregada — enquanto que em um sistema com 4 CPUs, o valor significa que este estava ocioso 75% do tempo.

Referências

https://pt.wikipedia.org/wiki/Load_average.

https://serverfault.com/questions/328260/what-is-the-closest-equivalent-of-load-average-in-windows-available-via-wmi

https://stackoverflow.com/questions/21617500/understanding-load-average-vs-cpu-usage.

http://www.teamquest.com/import/pdfs/whitepaper/ldavg1.pdf.

http://www.lifeaftercoffee.com/2006/03/13/unix-load-averages-explained/.

Conheça estas 10 opções escondidas no painel do programador do seu celular Android

Para não incomodar o leitor, explicando cada um dos mais de 50 (oh yeah, baby!) itens do painel do desenvolvedor no Android, separei 10 itens que podem ser, de alguma forma interessantes para usuários comuns e, razoavelmente, seguros para brincar.
Antes de começar, contudo, cabe uma rápida advertência aos incautos: você pode danificar o seu aparelho ou perder dados importantes para você, com o mau uso deste painel. Considere-se avisado(a), portanto.

Para ter acesso ao painel de opções para desenvolvedores, é necessário realizar um procedimento de ativação — verifique se você já fez isso.
Clique nos links, no decorrer do texto, para tirar dúvidas ou se aprofundar um pouco mais sobre algum assunto. 😉
android painel de opções do desenvolvedor

Quais são as possibilidades do painel de opções do programador no Android?

O painel do desenvolvedor descortina uma série de itens voltados a programadores Android (óbvio), a testadores de aplicativos e a usuários que desejam obter algo mais de seu dispositivo móvel.

Este artigo é voltado a estes últimos: pessoas comuns, que desejam melhorar algum aspecto da usabilidade do seu smartphone ou tablet.

Para o usuário comum, o painel traz as seguintes possíbilidades:

  • aumentar a velocidade de resposta das ações no dispositivo;
  • melhorar a qualidade da renderização de seus jogos ou da reprodução de seus vídeos;
  • alterar a resolução da interface gráfica etc.

As opções podem ser facilmente revertidas — basta voltar ao painel e desativar/reativar o item que você editou.

O ideal é alterar um item de cada vez. Ver como o aparelho se comporta e, se não gostou, é fácil voltar ao painel e desfazer a alteração.

Ajuste das animações gráficas do dispositivo

Já notou que as transições são animadas?
Quando você abre ou fecha uma janela com um aplicativo ou rola a tela ou, ainda, muda de área de trabalho, o Android faz a transição de maneira suave.
As configurações de animação, dependendo do modelo do seu dispositivo e da versão do sistema operacional, podem ter sua velocidade editada.

Se você prefere um dispositivo mais ágil, pode desligar as animações — eliminando o delay das transições. Este procedimento ajuda também a poupar memória.

Simplesmente, abra cada item e selecione a opção “desligado”, para ter uma interface mais rápida, eficiente e… um pouco sem graça, talvez.
android escala de duração da animação
Por outro lado, você também pode optar por aumentar o valor referente à velocidade de cada uma das animações.
Experimente e veja o mais gosta.

Habilitar o modo de depuração USB

A função deste modo de operação do celular é permitir que o desenvolvedor se conecte (via cabo USB, Bluetooth ou WiFi) ao dispositivo para transferir arquivos e realizar operações de manutenção mais profundas.
Este modo de operação abre uma porta de entrada para crackers acessarem fisicamente o seu aparelho — mesmo que ele esteja criptografado.
Usos comuns incluem conectar aplicativos do PC ao smartphone e fazer capturas da tela direto pro computador.
Leia mais sobre o recurso aqui.

Estabelecer a senha de backup do computador

Se você pretende fazer um backup dos seus arquivos do celular no seu desktop, é possível protegê-lo com uma senha. Muito útil, se você tiver que fazer este backup com o uso de um computador que não é seu ou tem acesso de outras pessoas — esta opção adiciona uma outra camada de segurança aos seus arquivos.

Ative o MSAA para jogos OpenGL

Caso você tenha interesse, escrevi sobre como testar o desempenho OpenGL em máquinas Linux neste texto.
Se você usa o dispositivo Android para jogar e prefere ter um alto desempenho dos aplicativos de jogos, pode “forçar” a ativação do MSAA.
A qualidade na renderização será perceptível nos jogos que tenham suporte ao recurso — mas existe um preço a ser pago: ele pode drenar rapidamente a carga da sua bateria.
Se você estiver perto de uma tomada, com o carregador em mãos e não tiver problemas com o aquecimento do aparelho, esta pode ser uma boa ideia, contudo.

Não manter atividades

Se ativar esta opção, os aplicativos serão fechados assim que você terminar de usá-los ou quando iniciar novos.
Alguns usuários imaginam que a opção ajuda a “economizar a memória” do aparelho e pode trazer ganho de performance — o que não é verdade.
O Android descende do Linux e, portanto, tem a tendência a usar toda a memória disponível sempre.
Por isto, o comportamento padrão do sistema operacional é ir mandando os apps inativos para o segundo plano.
Quando você precisa abrir novamente um aplicativo, ele volta para o primeiro plano do jeito em que estava quando você o deixou.
Ao optar por não manter as atividades, você irá experimentar mais lentidão ao abrir novamente seus apps e, em alguns casos, ainda terá o trabalho de voltar ao ponto em que estava, manualmente, no aplicativo.
A opção pode ser útil para desenvolvedores que desejam experimentar o funcionamento de aplicativos isoladamente, mas traz prejuízos de desempenho e eficiência para usuários normais.
Este tipo de ação é mais um dos motivos pelos quais não devemos usar task killers no Android.

Limitar processos em segundo plano

Trata-se de uma continuação do item anterior.
Deixar a opção “padrão” ligada é a melhor.
Deixe o próprio sistema operacional decidir quando é a hora de retirar algum app da memória.
Limitar processos em background não traz ganhos de desempenho.

Apps inativos

Exibe uma relação de apps “inativos”, ou seja, que se encontram em segundo plano no seu sistema Android.

Ativar localização falsa

Quando presente, o recurso permite indicar uma localização geográfica que não corresponde àquela em que você verdadeiramente se encontra.
Aos desenvolvedores, possibilita testar recursos que se deseja restringir geograficamente.
Usuários normais podem usá-lo para fazer exatamente a mesma coisa — usar aplicativos ou recursos específicos deles que foram desabilitados para a sua localização real.
Você está pensando no Netflix e em outros serviços de streaming? Para estes casos, os resultados serão melhores com a configuração da sua VPN no Android.

Manter a tela ligada

O item pode vir nomeado como “permanecer ativo” e faz com que a tela do aparelho seja mantida ligada durante o carregamento.
Pode ser útil em alguns casos, mas convém prestar atenção ao sobreaquecimento do smartphone — de um lado a tela ligada produz calor e, de outro, a bateria também.
No meio dos dois, há equipamentos sensíveis do smartphone, que podem ter desgaste acelerado e apresentar mau funcionamento nestas condições.
O calor é um dos maiores inimigos da sua bateria.

Exibr uso da CPU

Para fins estatísticos, a ativação deste item vai passar a exibir, na tela do aparelho (usualmente, no canto superior direito) informações sobre o uso do processador (CPU).
Pode dar uma dica sobre quais aplicativos consomem mais recursos do sistema.

Acompanhe o consumo de energia de cada programa no seu sistema com o aplicativo powertop

Cada aplicativo em execução no seu sistema, consome a carga da sua bateria.
Podem ser programas que já são parte do sistema operacional, tais como o Firefox, o LibreOffice etc.
O powertop permite saber qual software está consumindo mais energia no seu sistema.

Além disto, ajuda a fazer ajustes para otimizar o consumo e proporcionar um tempo maior de uso entre uma recarga e outra.

O aplicativo é estável e possui boa parte de sua documentação já traduzida para português, veja:

# para usuários Debian/Ubuntu
apt show powertop

A descrição (resumida) do aplicativo, segue abaixo:

Description: diagnóstico de problemas com gerenciamento e consumo de energia (power)
 PowerTOP é uma ferramenta do Linux para diagnóstico de problemas com
 gerênciamento e consumo de energia. Adicionalmente para ser uma ferramenta
 de diagnóstico, o PowerTOP também tem um modo interativo que você pode usar
 para experimentar com várias configurações de gerênciamento de energia para
 casos onde a distribuição Linux não habilitou estas configurações.
 .
 PowerTOP relata quais componentes no sistema estão mais sujeitos a consumir
 mais energia do que o necessário, variando entre os aplicativos de software
 para componentes ativos no sistema. Telas detalhadas estão disponíveis para
 o 'CPU C' e 'P states', atividade de dispositivos e atividade de software.

No OpenSUSE, resultado semelhante será obtido com o seguinte comando:

zypper show powertop

Como instalar o powertop no Linux

Se você usa o Debian, Ubuntu ou outra distro baseada nestas, use o apt, para instalar o powertop:

sudo apt update
sudo apt install powertop

Usuários do openSUSE, podem usar o zypper:

sudo zypper update
sudo zypper install powertop

É sugerido (opcional) instalar, ainda, o pacote cpufreq, para obter melhores estatísticas e mais capacidade de manuseio do sistema.

Como ajustar o powertop

Após a instalação, recomenda-se reiniciar o computador.
Depois, calibrar as leituras obtidas a partir da bateria, com o seguinte comando:

sudo powertop -c

O procedimento de calibragem leva, aproximadamente, 15 minutos.
O sistema irá desligar a tela algumas vezes e você ficará impedido de fazer qualquer atividade no seu laptop durante todo o processo .
Isto é normal. Pegue um café e espere.
Quando o processo tiver terminado, um relatório em HTML pode ser obtido com o seguinte comando:

sudo powertop --html=desempenho.html

Acima, usei o nome ‘desempenho.html’, mas use o que quiser.
Para abrir o arquivo dentro do seu navegador preferido, basta citar o nome dele:

firefox desempenho.html

powertop linux
As estatísticas do upower podem ser encontradas em ‘/var/lib/upower/’:

sudo ls -lah /var/lib/upower/history-*
-rw-r--r-- 1 root root 29K dez 14 18:09 /var/lib/upower/history-charge-DELL_7P3X953I-43-0948.dat
-rw-r--r-- 1 root root 14K dez 14 18:09 /var/lib/upower/history-rate-DELL_7P3X953I-43-0948.dat
-rw-r--r-- 1 root root 18K dez 14 18:09 /var/lib/upower/history-time-empty-DELL_7P3X953I-43-0948.dat
-rw-r--r-- 1 root root 19K dez 14 18:09 /var/lib/upower/history-time-full-DELL_7P3X953I-43-0948.dat

Se você quiser dar um reset nas estatísticas, remova estes arquivos:

sudo rm /var/lib/upower/*

Alguns fabricantes (System76) recomendam – caso o indicador do ciclo de carga da bateria esteja impreciso – remover as estatísticas (com o comando acima).
Depois deste procedimento, após alguns ciclos completos de cargas/descargas as informações voltarão a ser mais exatas.

Como baixar, compilar e instalar fácil o glmark2 no Debian

O glmark2 é um aplicativo popular, de código aberto, usado para avaliar o desempenho da placa gráfica no sistema, com suporte a OpenGL 2.0 e OpenGLES 2.0.
A ferramenta está disponível para as plataformas GNU/Linux e Android.
Se você usa Ubuntu ou openSUSE, recomendo ler o post Guia para testar a performance do seu sistema com OpenGL, onde abordo a instalação do glmark2 nestas duas distros, a partir de seus repositórios específicos.
Naquele post, abordo também algumas dicas de uso do glmark2 —. Sugiro ler enquanto instala.
O glmark2 foi desenvolvido pela equipe da Linaro, com o objetivo de oferecer uma ferramenta de fácil uso para fazer benchmarking de unidades de processamento gráfico (GPUs) em hardware ARM, para sistemas embarcados.
Enquanto o aplicativo está disponível nos repositórios de outras distros, (Ubuntu, openSUSE etc), no Debian será necessário baixar e compilar o código fonte.
Se você é iniciante, no Linux, não se preocupe — por que é fácil.

Se você conhece os benefícios de baixar o código e compilá-lo no seu sistema e deseja usar este processo no Ubuntu, fique à vontade. Vai funcionar perfeitamente.

OpenGL oficial logo

Como preparar o ambiente para tratar o código

Para poder compilar código em seu sistema é necessário ter algumas ferramentas de desenvolvimento.
Neste caso, precisamos do git, do g++ e de algumas bibliotecas apropriadas.
Abra um terminal e instale-as:

sudo aptitude update
sudo aptitude install git g++ build-essential pkg-config

Com este comando, você estabelece um ambiente de desenvolvimento bem básico voltado para C++.
A seguir, instale as ferramentas de desenvolvimento X11 e OpenGL:

sudo aptitude install libx11-dev libgl1-mesa-dev

… e os headers de desenvolvimento para imagens JPEG e PNG:

sudo aptitude install libjpeg-dev libpng12-dev

Como baixar o código do glmark2

Agora já é possível receber o código e trabalhar em cima dele.
Para fazer o download, podemos usar o git ou ir até o site oficial do glmark2 e baixar o código.
Para baixar o código para dentro da minha pasta bin/ vou proceder da seguinte maneira:

cd ~/bin
git clone https://github.com/glmark2/glmark2.git
cd glmark2/

Como configurar, compilar e instalar

O glmark2 usa o sistema de desenvolvimento WAF, baseado no Python.
Este sistema requer uma instalação funcional Python 2.x.
A versão binária, disponível nos repositórios das outras distros, vem com suporte ao X11, Wayland e Mir.
A que nós vamos compilar, terá suporte apenas ao X11 e OpenGL:

./waf configure --with-flavors=x11-gl

Parte da graça de compilar um programa a partir do código fonte é poder retirar o que não é necessário, enxugar o código e ter um executável/binário mais rápido e eficiente.
As outras opções, caso queira acrescentar suporte a mais tecnologias, são as que seguem:

./waf configure --with-flavors=drm-gl,drm-glesv2,mir-gl,mir-glesv2,wayland-gl,wayland-glesv2,x11-gl,x11-glesv

Note que cada uma destas outras opções demanda um conjunto adicional de bibliotecas de suporte. Se você não as tiver, irá obter mensagens de erro ou avisos de que algo está faltando.
Quando terminar esta parte, construa o código e instale o binário:

./waf build -j 4
sudo ./waf install

Por fim, aplique o procedimento do stripping, que irá reduzir o tamanho final do binário e, portanto, torná-lo mais rápido.

sudo strip -s /usr/local/bin/glmark2

O processo está finalizado e você já pode rodar o glmark2 para verificar os resultados.

glmark2

Para concluir, você pode rodar o autoremove do aptitude e apagar o diretório com os fontes do glmark2 — mas, neste último caso, você terá que baixar tudo de novo, para fazer alguma alteração posterior no programa.

Referências

https://github.com/glmark2/glmark2.
http://fixmynix.com/how-to-install-glmark2-from-source-in-debian/.

Como testar o desempenho da placa gráfica no Linux usando o Unigine

O Unigine Heaven e o Unigine Valley são ferramentas de benchmarking proprietárias, de código fechado, desenvolvidas pela empresa russa Unigine.
A companhia focaliza o universo das soluções de alta performance, em 3D real-time.
Com a exibição de mundos 3D virtuais e gráficos impactantes a ferramenta é capaz de testar todo o potencial do seu hardware o que inclui o desempenho da sua GPU (placa gráfica).

Os softwares de benchmarking, alvos deste post, são multiplataforma e rodam no Linux, Windows e MacOS.

Unigine logo
A empresa desenvolve softwares para a AMD, NVIDIA, para a plataforma PLAYSTATION etc.
Neste texto, vou mostrar como baixar e rodar o programa de testes gráficos da empresa.
O download pode ser feito direto no site da empresa, aqui.
Outras opções de download, via torrent:

Os dois têm funcionamento semelhante (quase igual).
Saliento que o post é baseado em uma máquina rodando com uma placa gráfica Intel (integrada à placa mãe) comum, sob o OpenSUSE Leap 42.1.
unigine Heaven main screen
Há algumas opções a mais, presentes no Valley — mas ambos fazem uma análise profunda do desempenho gráfico do seu sistema.
Nenhum deles “deu pau” nas minhas máquinas de testes. Quando a exigência é muito grande para o seu hardware, o programa tende a finalizar a bateria e voltar para o menu inicial graciosamente.
Recomendo iniciar os testes com as opções mínimas ou Basic.
Observe, no canto superior esquerdo da tela, à medida em que o vídeo é exibido, a taxa de FPS.
Você pode ver mais informações no canto inferior direito da tela, se clicar no botão Benchmark, no canto superior esquerdo.

Como instalar o Unigine Benchmark tool

Feito o download, abra um terminal e vá até o diretório em que o pacote baixado se encontra. Trata-se de um pacote comprimido que se auto-extrai.
Para poder executá-los, é necessário dar-lhes permissões de execução:

chmod +x Unigine_Valley-1.0.run Unigine_Heaven-4.0.run

em seguida, execute os dois pacotes .run:

Unigine_Heaven-4.0.run; Unigine_Valley-1.0.run

Para executar o Heaven, dê o seguinte comando:

cd Unigine_Heaven-4.0/
./heaven

Para executar o Valley, dê o seguinte comando:

cd Unigine_Valley-1.0/
./valley

Conheça outras formas de testar suas placas gráficas no Linux.
Se quiser comentar sobre os resultados, logo abaixo, sinta-se à vontade.
unigine running benchmark tests