COMPARANDO DESEMPENHO DE DISTROS, ARQUITETURAS OU AMBIENTES GRÁFICOS – MÉTODO UNIVERSAL

PROCEDIMENTO PRÁTICO

 

Para os que não são afeitos e ler muita teoria, ou são iniciantes, ou ainda são “preguiçosos de plantão”. (rsrsrs)

Descrevo o procedimento geral para realizar os testes, mesmo sem precisar ler o artigo inteiro:

1) Baixe as ISOs do Ubuntu (ou da distro que quer testar, 32 ou 64 bits), prepare o live-DVD da maneira usual.

2) Dê boot com ele, mas não instale a distro no HDD, use o boot do live-DVD mesmo.

3) Configure sua rede para ela funcionar. Óbvio, isso depende da distro e das características da sua rede.

4) Instale os pacotes de PHP em sua distro, no boot live-DVD, mesmo. Ficarão só residentes na RAM, e todos os experimentos serão feitos assim.

5) Baixe o pacote “Phoronix Test Suite” do endereço:

E o expanda para uma pasta que conheça a localização. Entre nessa pasta e execute os testes Phoronix que quiser.

6) Se desejar, repita os testes para 32 e 64 bits, para outras distros ou para a mesma distro, ambientes gráficos diferentes etc. e compare (detalhes no artigo).

 

INTRODUÇÃO

 

Embora, em minha modesta opinião, eu considere arquitetura de 32 bits totalmente superada, obsoleta (o Linux que uso, Sabayon, nem tem mais versões de 32 bits), muita gente ainda usa distribuições Linux de 32 bits, em computadores de 64 bits.

Alguns usuários as consideram úteis, quando não, até vantajosas (no caso de computadores com pouca memória RAM). Vejam nestes exemplos:

Por outro lado, é classicamente conhecido, em Teoria de Planejamento de Experimentos, que numa Experimentação Científica, deve-se procurar bloquear (ou uniformizar, evitando que atuem) o maior número possível de variáveis, focando em apenas uma.

Se isto não for possível, deve-se isolar ou tratar matematicamente essas variáveis independentes e não controláveis, para minimizar os possíveis erros devidos à atuação delas:

CORTÉS PAREDES, R. S. Documento da Disciplina de:

Deste modo, sempre que tivermos muitas variáveis independentes envolvidas, fica difícil validar os resultados obtidos, sem tratamento estatístico e matemático especial e rigoroso.

Afortunadamente, com alguns experimentos, podemos realizá-los em condições similares ou iguais (e com variáveis dependentes ou interdependentes).

Se dois experimentos são realizados em condições similares ou iguais, eles têm as mesmas variáveis, atuando igualmente, então podem ser facilmente comparados:

  • RABELO, A. O que é e para que serve um Experimento?. (2011).
  • MENDONÇA SOUZA, A. Aulas do Curso de Experimentação.
  • Departamento de Estatística. Curso de Especialização em Estatística e Modelagem Quantitativa.Programa de Pós-Graduação em Engenharia de Produção-PPGEP e Programa de Pós-Graduação em Engenharia Química-PPGEQ. Universidade Federal de Santa Maria, R.S. (2009).

Nos experimentos e testes do presente Artigo, as arquiteturas de 32 e 64 bits, são ambas estudadas em termos de desempenho, no mesmo computador, com o mesmo hardware, mesma distribuição Linux (Ubuntu) e em condições idênticas de “boot live”.

Portanto, condições isoladas de quaisquer interferências do disco rígido, ou de programas instalados, o que as torna facilmente comparáveis.

 

MATERIAIS E MÉTODOS

 

A. MATERIAIS

A.1. Computador utilizado:

O mesmo computador foi utilizado em ambos os testes. Um AMD, Phenom, 8 núcleos, 64 bits, processador “Bulldozer”, FX-8120, com 16 gigas de memória RAM, DDR3.

Esse computador é reportado como tendo performance comparável aos Intel Core I5:

A.2. Distribuição Linux utilizada:

Escolhemos usar live- DVDs de Ubuntu Versão 14.10, 32 e 64 bits.

Porque Ubuntu? Embora eu não seja um usuário de Ubuntu, o escolhi por alguns motivos: ele é facilmente disponível e é um Linux “padrão”. É o Linux mais conhecido pelos usuários e o mais usado no Brasil.

Ainda, não seria possível usar Sabayon (minha distro favorita) visto que as versões de 32 bits não existem mais. Ficaria sem termos de comparação.

Portanto, ambas as ISOs (32 e 64 bits) de Ubuntu 14.10, com ambiente gráfico Unity, foram baixadas destes endereços:

E “queimadas como imagem”, em DVDs virgens de mesma marca (Elgin), mesma velocidade (4X), no mesmo programa (K3B, versão 2.0.3, em Sabayon Linux 15.06 atualizado, com KDE 4.14.7), de maneira clássica e conhecida.

Em ambos os live-DVDs feitos, a gravação dos dados foi verificada no próprio K3B.

B. MÉTODOS

B.1. Boot dos live-DVDs:

Separadamente, um por vez, foram carregados os Boot dos live-DVDs de Ubuntu.

Como os DVDs são semelhantes e carregados no mesmo computador, a maior parte das condições e variáveis envolvidas são iguais, portanto, são controláveis. A única diferença entre os DVDs, seriam as arquiteturas 32 e 64 bits.

Cumpre salientar que por trabalharmos em ambiente live Boot, live-DVDs, os experimentos foram feitos em condições independentes do disco rígido e portanto, de nada adiantaria configurar a máquina para condições de máxima performance.

Fazer isso implicaria em configurar programas que estão no disco rígido, o que seria ineficiente em nossos Experimentos, pois isolamos e uniformizamos o maior número de variáveis, para podermos comparar (veja Introdução).

B.2. Suite, conjunto de testes de desempenho, benchmark:

Poder-se-ia empregar pequenos pacotes de Benchmark ou “Estressadores de CPU” como Geekbench, Bashmark, Hardinfo, CPUBurn ou scripts feitos para isso:

Porém, a maior e mais completa suite de benchmark, é considerada a “Phoronix”:

O site OpenBenchmarking descreve os inúmeros testes constantes da Phoronix:

Além das versões presentes nos repositórios da principais distros, a Phoronix tem uma versão pré-compilada, que roda “standalone”, independente da distro usada, bastando expandir e executar:

Pela facilidade e pela necessidade de mantermos a maior parte da variáveis sob controle, em ambiente live Boot, utilizamos essa versão de Phoronix.

Portanto, a suite Phoronix, versão 5.8 “Development”, foi baixada e expandida para o diretório adequado e usada nos Experimentos (vejaPáginas 4 e 5).

Se você quiser, você pode baixar a “Phoronix Test Suite” e salvá-la, guardá-la em um pendrive. Desse modo, bastará copiar para as distros que vai testar, no ambiente live, mesmo.

Em resumo, os testes deste artigo foram feitos no mesmo micro, com a mesma distro (DVDs gravados da mesma maneira), com boot de live-DVDs semelhantes, fora do disco rígido, com a mesma suite de benchmark.

Podemos então, comparar as performances de Ubuntu, 32 e 64 bits, em condições análogas e muito semelhantes. Isso minimiza eventuais erros. Percebem que os testes foram feitos em condições em tudo análogas, para poderem ser comparados?

 

PREPARATIVOS PARA REALIZAR OS EXPERIMENTOS

 

C. PREPARAÇÃO PARA OS EXPERIMENTOS DE BENCHMARK

C.1. Inicialmente, tome o live-DVD de Ubuntu 14.10 (32 bits) e dê Boot com ele. Espere carregar completamente. Boot padrão, sem alterar a linha do Kernel (não modifique os “Cheat-Codes”).

Verá uma imagem semelhante a esta:

Acerte a linguagem para Português do Brasil e não instale a distro, ao invés disso, clique em “Experimentar Ubuntu”, espere carregar completamente.

C.2. Clique em “Configurações de Sistema”, “Rede” e configure a rede, adequadamente para seu sistema. Aqui, o método pode variar um pouco, de micro para micro, de local para local. Se a sua rede é cabeada ou Wi-Fi etc. O importante neste ponto, será ter sua rede funcionando.

Como fiz os experimentos do artigo na USP, configurei para a rede da USP, que tem IP fixo.

C.3. Aperte as teclas Alt+F2 e execute “gnome-terminal”. No terminal que se abre, execute:

# apt-get update

Depois execute este comando:

# apt-get install php5

Isso instalará os pacotes do PHP, a principal dependência da suite Phoronix:

Vejam que está instalada:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Instale só na RAM, porque estamos no ambiente de Boot do live-DVD. A ideia deste artigo é essa mesma.

C.4. Baixe o pacote “Phoronix Test Suite 5.8 Development, Milestone 3” (veja Página 3) do endereço:

Se desejar, espete um Pendrive numa porta USB e salve uma cópia dessa suite no pendrive (você precisará dela depois, quando for testar a versão de 64 bits). Assim não precisará baixá-la novamente.

C.5. Aqui, usei interface gráfica, por comodidade e porque queria saber se o Ubuntu estava funcionando bem. Se quiser, pode usar comandos.

Vá em “Arquivos”, abra o Gerenciador de Arquivos e arraste a suite Phoronix para a Área de Trabalho, ou copie a que está no pendrive.

C.6. Clique, com o botão direito do mouse, no arquivo do Phoronix, escolha “Extrair Aqui”. Vá na pasta que se forma “phoronix-test-suite”. Eis ela aqui:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Agora, você tem tudo o que precisa para começar a brincadeira, os testes de benchmark.

C.7. Se você estiver testando com outra distro, que não Ubuntu, eis um pequeno sumário do que precisa fazer :

  • Prepare o live-CD/DVD;
  • Dê boot com ele;
  • Ative a rede na sua distro;
  • Atualize os repositórios;
  • Instale os pacotes de PHP;
  • E baixe e expanda a “Phoronix Test Suite”.

 

EXPERIMENTOS, TESTES E RESULTADOS

 

D. EXPERIMENTOS DE BENCHMARK – 32 BITS

D.1. Dê Alt+TAB e abra o terminal que estava usando (Página 4). Se necessário, para ficar como root, execute:

$ sudo su

Navegue até a pasta onde está expandido o Phoronix e cheque com comando ls:

# cd /
# cd home/ubuntu/Desktop/phoronix-test-suite
# ls -a

D.2. Certificando-se que está na pasta adequada. Para ver os comandos de Phoronix, leia o arquivo “README.md” e/ou o conteúdo do subdiretório “Documentação”.

“Instale” o Phoronix no ambiente boot live e veja os diversos comandos e opções dele:

# ./install-sh
# ./phoronix-test-suite

D.3. Escolha os testes que quiser.

Sugiro um pequeno teste simples, que é um padrão recomendado pela Phoronix. “Smallpt”, um renderizador gráfico de iluminação:

Para instalar e depois rodar automaticamente o teste, execute:

# phoronix-test-suite benchmark smallpt

Veja que se instala:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Atendendo às mensagens que aparecem, dê os nomes que quiser e depois salve as informações. Veja que o teste executa, automaticamente:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Espere terminar o teste. Para facilitar a visualização, dirija os resultados para o navegador. Veja:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal   Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Eu não fiz, mas se quiser executar novamente o mesmo teste, é este o comando:

# phoronix-test-suite run smallpt

Vejam que o resultado mostra alta performance, mesmo em 32 bits, mas lembre que este Phenom é conhecido como máquina de alta performance.

D.4. Observe que, embora toda minha memória RAM (verificável com o comando free), 16 gigas, é enxergada graças ao suporte dos Kerneis PAE dos novos Ubuntus:

total       usado      livre    compart.  buffers     em cache
Mem:      16353664    4069340   12284324    1285004     418212    2853528
-/+ buffers/cache:     797600   15556064
Swap:      2047996          0    2047996

Mas a ATI (do meu micro) que aparece no teste é a onboard, que é menor.

Isso é por causa do driver de vídeo, que eu não troquei. Não haverá problema, porque as arquiteturas são comparadas na mesmas condições. Se você não alterar o driver de vídeo, num dos live-DVDs, não o faça no outro, a não ser que seja exatamente o parâmetro que está comparando.

D.5. A Suite Phoronix é muito grande e demoraria muito para poder executar tudo.

O teste mais completo, para uma rigorosa comparação, pode ser executado pelo comando:

# phoronix-test-suite benchmark 1204293-BY-PHORONIX357

Eu executei vários testes, mas para este artigo, destaco apenas os experimentos principais. Em condições análogas ao descrito em D.3, vamos fazer mais um experimento.

Vamos testar a capacidade de manipular vídeo, com o “Encoder” X264:

Como em D.3. Mas agora, execute:

# phoronix-test-suite benchmark x264

Espere o teste instalar e executar. Eis os resultados, no meu micro:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

D.6. Outro teste, C-Ray, um algoritmo de renderização, “ray tracing” e “anti aliasing” e usando calculo de ponto flutuante.

O comando para instalar e rodar é:

# phoronix-test-suite benchmark c-ray

Eis os resultados:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

D.7. Mais um teste, OpenSSL (uma criptografia RSA 4096-bit, para protocolos SSL e TLS):

Para rodar o teste, execute:

# phoronix-test-suite benchmark openssl

Resultados:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

D.8. Mais um experimento que fiz, cálculo de FFTE (“Fast Fourier Transform Extended”) “Transformada de Fourier”.

Escolhi, porque transformada de Fourier é muito importante em Ciência e Tecnologia.

Usada em processamento, diagnóstico por imagem, Matemática e até Física e Química, para refinar os dados obtidos por Computação Gráfica, datação por Carbono-14, Ressonância Magnética Nuclear, espectroscopias e cromatografias de diversos tipos etc.

Aqui, destaco que foi preciso instalar um compilador Fortran, GFortran, para o teste funcionar:

# apt-get install gfortran

Em seguida, executei o comando para fazer o experimento:

# phoronix-test-suite benchmark ffte

Resultado, NÃO obtido! Não sei por que. O sistema trava o cálculo, antes de terminar. Tentei duas vêzes. Mas encontrei valores de literatura para poder comparar (veja Página 6).

D.9. Finalmente, o último teste que fiz, estressando a CPU. (coitadinha!)

Isso é feito fazendo rodar vários testes de benchmark ao mesmo tempo:

Executei o comando:

# phoronix-test-suite stress-run ffte openssl smallpt c-ray x264

Executando:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Não travou, mas foi ficando muito lento, 5 Giga de RAM (do total de 16, que o Micro tem) foram consumidos e 95 % da CPU foi usada. Quando ficou muito lento, foi necessário interromper (com Ctrl+c) e matar o processo:

# killall phoronix-test-suite

Resumindo, foram feitos no boot do DVD de Ubuntu 32 bits, os testes: Smallpt (D.3); X264 (D.5); C-Ray (D.6); OpenSSL (D.7); FFTE (D.8) e estresse de CPU (D.9).

E. EXPERIMENTOS DE BENCHMARK – 64 BITS

E.1. Fechei a sessão e reiniciei o micro, dando boot no outro live-DVD, o do Ubuntu 14.10, 64 bits.

Todos os passos, testes e experimentos acima descritos (Veja item D e seus sub-itens e Página 4) foram repetidos, no DVD de 64 bits, na mesma ordem e de modo exatamente igual.

Observe, “Instalando” a “Phoronix Test Suite”, na RAM, no boot do live-DVD, 64 bits (pelo mesmo modo descrito na Página 4, para o DVD de 32 bits):

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

E.2. Executando o teste “smallpt” (Resultado SMALLPT, em 64 bits):

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

Os outros experimentos, testes, foram executados de maneira exatamente igual ao descrito para o Boot no live-DVD de 32 bits.

Eis os resultados (E.3. SMALLPT 64 bits):

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

E.4. X264-64 bits:

Linux: Comparando desempenho de distros, arquiteturas ou ambientes gráficos - Método universal

E.5. C-RAY 64 bits:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

E.6. OPENSSL 64 bits:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

E.7. FFTE 64 bits:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

E.8. Stress de CPU, 64 bits:

Linux: Comparando Desempenho de distros, Arquiteturas ou Ambientes Gráficos - Método Universal

F. 32 e 54 bits. Alguns resultados armazenados:

Alguns de meus resultados foram hospedados na nuvem, no site OpenBenchmarking:

 

DISCUSSÃO E CONCLUSÃO

 

G. DISCUSSÃO

Os sistemas Linux antigos de 32 bits, não reconheciam acima de 3 gigas de RAM. Para que reconhecessem, era necessário instalar um Kernel PAE:

Nos Linux novos, inclusive no Ubuntus posteriores ao 12.10, já há esse reconhecimento:

Distros de 32 bits, ainda são recomendadas para computadores com pouca memória RAM, abaixo de 4 Giga. Por isso, o ideal seria testar os dois Ubuntus, 32 e 64 bits, num computador com apenas 2 Giga de RAM, mas eu não tenho mais nenhum computador assim.

Também, alguns usuários e profissionais de TI reportam que aumentar muito a RAM não teria tanto efeito sobre a performance, exceto em certos jogos de 64 bits:

Comparei os resultados obtidos com 32 bits (Página 5, item D) e com 64 bits (Página 5, item E).

Em meus experimentos, notei muita diferença quando a CPU foi estressada (D.8 e E.9).

Em 32 bits, o micro ficava muito lento e praticamente não usável e em pouco tempo, cerca de 5 gigas da RAM (de 16) eram utilizados.

Em 64 bits, não. O micro não fica tão lento, fica usável e apenas cerca de 3 Giga de RAM são gastos. Inclusive, foi possível completar o trabalho “estressante”, em batch (em 64 bits) sem precisar matar o processo.

Uma observação que a mim surpreendeu. Visualmente, o boot do live-DVD de 32 bits é consideravelmente mais rápido que o boot do DVD de 64 bits, além de que, aparentemente, o DVD de 64 bits é lido muito mais.

Esse fenômeno também é conhecido para Windows:

Atribuo isso a dois fatores: sistemas de 64 bits devem precisar mais RAM para carregar que os de 32 bits, além de que os programas de 64 bits são maiores, ocupam mais espaço e sabe-se que a leitura do HDD, ou do DVD, são relativamente lentas e funcionam como um “gargalo de funil” para os dados:

Eu selecionei testes e fiz experimentos onde 64 bits, me pareceu ter desempenho bem superior a 32 bits:

  • Teste Smallpt (valores menores são melhores) (Unidade: Score) – (241 (Ubuntu 32 bits); 133 (Ubuntu 64 bits).
  • Teste X264 (valores maiores são melhores) (Unidade: Frames por Segundo) – (105.99 (Ubuntu 32 bits); 120.76 (Ubuntu 64 bits). Condições padrão, sem OpenGL e sem modificar o driver de vídeo.
  • Teste C-Ray (valores menores são melhores) (Unidade: Segundos) – (57.83 (Ubuntu 32 bits); 34.07 (Ubuntu 64 bits).
  • Teste OpenSSL (valores maiores são melhores) (Unidade: Sinais por Segundo) – (122.03 (Ubuntu 32 bits); 505.20 (Ubuntu 64 bits).
  • Teste FFTE (valores maiores são melhores) (Unidade: MFLOPS) – (NÃO OBTIDO (Ubuntu 32 bits); 3816.25 (Ubuntu 64 bits).

Em Ubuntu 32 bits, não pode ser obtido o resultado do teste. Ele trava, não sei por que, tentei duas vezes.

Contudo, para comparar, um valor de literatura é: 1657,49 (para Ubuntu 13.04):

Mas, saliento que existem alguns testes Phoronix onde a performance seria praticamente igual. Exemplos: Tesseract (cálculo de hipercubo) e Xonotic (um jogo)

Interessante citar outros resultados obtidos pela própria Phoronix e outras empresas ou sites, tanto com Ubuntu 14.04, como com Ubuntu 14.10 e em micros semelhantes aos que eu usei:

CONCLUSÃO

Como se opera em somente em live-DVDs, sem instalar nada, disso implica poder-se controlar vários fatores e variáveis que poderiam influenciar, como programas instalados, HDD etc.

Distros diferentes, ambientes gráficos diferentes, 32 bits com 64 bits podem então ser facilmente comparados. Alguns exemplos, para que possa ser entendido:

Aqui no artigo, no método, dois Ubuntus, ambos com Unity, ambos na mesma versão, foram usados em boot live. Com isso, a única característica diferente, um é 32 bits e o outro, é 64 bits. Então pode ser comparados.

Num outro exemplo, suponha: se você usar 2 live-DVDs de Linux Mint, ambos 64 bits. Poderá comparar a característica diferente. Um é Cinnamon e o outro é MATE Desktop. Saber qual o mais leve.

Terceiro exemplo: duas distros, ambas 64 bits, ambas com KDE. Uma, Mageia e outra OpenMandriva. Saber qual dos dois é o mais pesado.

O método aqui proposto trabalha sempre em ambiente live-Boot, com a maior parte das variáveis iguais, controladas, assim, seria um método UNIVERSAL para testar distros.

E não é necessário instalar a distro no disco rígido, nem isso deve ser feito.

Assim, as variáveis de ambiente nas duas distros, nas duas arquiteturas, ou nos dois ambientes gráficos testados, serão praticamente as mesmas, em tudo comparáveis. Uma característica só poderia ser testada como um único fenômeno independente.

Sobre os resultados que obtive, pelo menos nas condições que experimentei e estudei, em micros com muita RAM, 64 bits parece ser bem vantajoso em relação à 32 bits, embora o boot possa ser algo mais lento em 64 bits.

Pelo que conferi em literatura, certos jogos e softwares gráficos tem desempenho parecido em 32 e 64 bits, mas sempre que estão envolvidas grande número de operações matemáticas pesadas, 64 bits parece ser bem mais vantajoso.

O ideal seria testar em computadores 64 bits de pouca memória RAM, mas não tenho como fazer isso no momento.

Rolar para cima