PROCEDIMENTO PRÁTICO
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
Alguns usuários as consideram úteis, quando não, até vantajosas (no caso de computadores com pouca memória RAM). Vejam nestes exemplos:
- Como descobrir se sua instalação GNU/Linux é 32 ou 64 bits [Dica]
- Debian 64 ou 32 bits [RESOLVIDO] [Debian]
- Qual é a melhor opção? 32bits ou 64bits? [RESOLVIDO] [Iniciantes no Linux]
- Ubuntu 32 ou 64? Qual usar? [RESOLVIDO] [Ubuntu & Kubuntu]
- Memória Swap [Dúvidas em Geral]
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:
- Tópicos Especiais em Engenharia Mecânica IV
- Metodologia e Planejamento Experimental
- Laboratório de Aspersão Térmica e Soldagem Especiais; Departamento de Engenharia Mecânica-DEMEC; Setor de Tecnologia; Universidade Federal do Paraná. P.R. (1996).
- CORRÊA DA SILVA, J. G. Estatística Experimental: Planejamento de Experimentos
- Departamento de Matemática e Estatística; Instituto de Física e Matemática; Universidade Federal de Pelotas, R.S. (2007).
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:
- Bulldozer Arrives: AMD FX-8150 Review > Application Performance – TechSpot
- AMD FX-8120 Review – Performance
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:
- 32 bits: http://releases.ubuntu.com/utopic/ubuntu-14.10-desktop-i386.iso
- 64 bits: http://releases.ubuntu.com/utopic/ubuntu-14.10-desktop-amd64.iso
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:
- Geekbench – Testando o Desempenho do Linux [Artigo]
- Tunando sistemas de arquivos para GNU/Linux [Artigo]
- Regulando o desktop para trabalhar em máxima performance [Artigo] – página 5
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:
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:
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:
Atendendo às mensagens que aparecem, dê os nomes que quiser e depois salve as informações. Veja que o teste executa, automaticamente:
Espere terminar o teste. Para facilitar a visualização, dirija os resultados para o navegador. Veja:
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:
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:
D.7. Mais um teste, OpenSSL (uma criptografia RSA 4096-bit, para protocolos SSL e TLS):
- OpenSSL – Wikipédia, a enciclopédia livre
- Transport Layer Security – Wikipédia, a enciclopédia livre
- RSA – Wikipédia, a enciclopédia livre
Para rodar o teste, execute:
# phoronix-test-suite benchmark openssl
Resultados:
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.
- Transformada rápida de Fourier – Wikipédia, a enciclopédia livre
- FFTE: A Fast Fourier Transform Package
- 301 Moved Permanently
- Série de Fourier – Wikipédia, a enciclopédia livre
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:
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):
E.2. Executando o teste “smallpt” (Resultado SMALLPT, em 64 bits):
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):
E.4. X264-64 bits:
E.5. C-RAY 64 bits:
E.6. OPENSSL 64 bits:
E.7. FFTE 64 bits:
E.8. Stress de CPU, 64 bits:
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:
- Ubuntu 32 bits reconhecendo 4GB (ou mais) de RAM [Dica]
- Reconheça 4 GB de memória em 32 bits com o Kernel PAE | Meu Pinguim
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:
- http://www.tomshardware.com/forum/54850-63-windows-quicker-itself
- performance – Are 64 bit programs bigger and faster than 32 bit versions? – Stack Overflow
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)
- Ubuntu 11.04: i686 vs. i686 PAE vs. x86_64 – Phoronix
- Ubuntu 32-bit, 32-bit PAE, 64-bit Kernel Benchmarks – Phoronix
- Ubuntu 14.10 Linux 32-bit vs. 64-bit Performance – Phoronix
- Tesseract (software) – Wikipédia, a enciclopédia livre
- OpenBenchmarking.org – Xonotic Test Profile
- OpenBenchmarking.org – Tesseract Test Profile
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:
- Ubuntu 14.04 LTS 32-bit vs. 64-bit Performance – Phoronix
- Ubuntu 14.10 – Phoronix
- AMD FX-8150 Bulldozer On Ubuntu Linux Review – Phoronix
- AMD FX-8150 Bulldozer On Ubuntu Linux Review – Phoronix
- AMD Phenom 32-bit vs. 64-bit in Ubuntu Linux | Archive
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.