[FUG-BR] Teste Performance PostgreSQL FreeBSD Linux e Windows2003Server
Patrick Tracanelli
eksffa em freebsdbrasil.com.br
Quinta Agosto 24 10:18:00 BRT 2006
Em teoria eu concordaria que benchmark ideal deve ser na instalacao
padrao; mas so em teoria; sistemas BSD de forma geral sao conservadores
em sua instalacao padrao. Ate pouco tempo atraz a granularidade (HZ) do
FreeBSD era 10% da otimizacao ideal para arquiteturas i386 por exemplo.
Algumas definicoes controladas pela kern.maxusers ficam aquem do ideal
pois esta variavel tem um auto-tuning igualmente conservador. Alias so
tem auto tuning desde meados da serie 4, porque Matt Dillon fez um
algoritimo segundo ele "simplista, conservador, considerando apenas 1
dos 5 principais recursos da maquina, mas principalmente seguro", porque
antes disso essa mesma variavel tinha valor estatico - e ridiculamente
baixo. Em sistemas de grande demanda invariavelmente buffers de rede tem
que ser modificado manualmente, ate mesmo diretivas IPC sao
conservadoras e podem apresentar limites bem cedo na utilizacao do
sistema, dependendo do objetivo.
Na verdade se alguem sai em desvantagens em benchmarks "out of the box"
sao os sistemas BSD, que por padrao tem kernel de proposito geral nao
otimizado. Veja que ai ainda ha diferencas, no FreeBSD o kernel de
proposito geral tem um unico objetivo: permitir a instalacao do sistema
operacional no maior numero possivel de hardware. Qualquer coisa menos
basica, a premissa mais basica indica que o usuario do FreeBSD tera que
recompilar seu kernel, por exemplo, nem firewall ha por padrao. Outros
BSDs sao diferentes, o OpenBSD tambem nao e otimizado out of the box,
mas por outro lado seu kernel de proposito geral nao e orientado apenas
para instalacao: eh realmente proposito geral, tem quase tudo que o
kernel do sistema pode ter, e consequentemente demanda mais recurso (eh
maior) do que poderia, em praticamente todo tipo de uso do OpenBSD. Ou
seja nao so "da" customizar, "deve" ser feito.
Testes com sistemas que dependam fortemente de recursos nao disponiveis
no kernel padrao, sao ainda menos justos. Por exemplo Squid e PostgreSQL
dependem de memoria compartilhada e semaforo, estilo System V. Como
esse benchmark foi feito por nosso amigo com PostgreSQL sem isso? O
kernel do FreeBSD nao tem definicoes essenciais por padrao desses
recursos para essas aplicacoes trabalharem corretamente. Se o kernel do
FreeBSD foi recompilado ja nao e mais "out of the box" e isso invalida o
benchmark.
No minimo as mesmas paginas de memoria divididas nos mesmos segmentos em
proporcoes iguais deviram estar definidos no kernel de ambos sistemas
operacionais. Ai ja entramos em outro problema: sistemas distintos tem
variaveis e MIB de tuning distintas, que as vezes apresentam
comportamento diferente, ou as vezes sequer tem em comum as mesmas
possibilidades de ajustes. Ai vem um e diz "ah mas o FreeBSD eh mais
'tunavel' que Linux". Eh verdade, o que so aumenta a injustica do
benchmark que nao pode ser realizado "out of the box".
Note que nao estou defendendo o Linux hehe. Mas benchmarks de forma
geral demanda profissionais capacitados em todos os sistemas testados
para comprovar a "justica" das comparacoes. Nesse teste realizado pelo
amigo da lista o FreeBSD ganhou. Otimo. Mas em diversos outros
benchmarks FreeBSD se mostrava inferior ao Linux, ou ao NetBSD, ou ate
mesmo ao Windows em alguns. Em todos eles os testes foram questionados
porque eram sempre realizados por especialistas em Linux, ou
especialistas em NetBSD, ou em Windows, e que ignoravam premissas
basicas do FreeBSD, ou entao que no maximo sabiam o basico mas nao
passava disso, e em condicoes iguais os sistemas mostravam-se capazes de
desempenhar no minimo, na mesma proporcao, quando o FreeBSD nao virava o
jogo. Mas ai vinha um e reclamava que "tinha que mecher muito no kernel
FreeBSD". Esse mesmo nao reclamava que o FreeBSD na epoca poderia ser
instalado em um 386 ou 486 "out of the box" por exemplo.
Se nao me engano o proprio time do PostgreSQL ja publicou benchmarks, e
em FreeBSD desenpenhava mesmo melhor - sera porque essa aplicacao eh
BSD-oriented? - mas ate o bench oficial foi criticado, se nao me engano
ele era "injusto" com algum outro sistema, nao era Linux, mas nao sei se
era Tru64, Solaris, sei la..
Benchmarks que merecem respeito devem ser acompanhados por especialistas
dos sistemas testados. Por exemplo, benchmarks da TechTV sao muito
validos, porque eles colocam especialistas conhecidos mundialmente, ou
representando empresas conhecidamente capazes de impor autoridade sobre
suas decisoes tomadas.
Acho que a TechTV parou com isso porque o pessoal do Linux comecou ficar
desconfortavel. Me lembro de 3 benchmarks - que alias tem em video por
ai - um em ambiente clusterizado com processamento paralelo usando MPI,
outro de performance de rede com alguns servicos basicos, como Apache e
Sendmail, e um muito bom, com comparativos entre sistemas de arquivos.
Todos eles foram acompanhados por engenheiros da SuSE e por consultores
da VA Linux, e pelo Matt Olander, Murray Stokely, ou Olander e Brooks
Davis, todos commiters do FreeBSD.
Entao, em um teste desses, com commiters do FreeBSD e com
desenvolvedores do kernel Linux presentes, garantindo igualdade de
condicoes, como nao concordar com os resultados dos benchs? hehe pois
eh, pior que alguns ainda nao concordaram, queriam "especialistas Linux
melhores". Enfim.
Em outro desses testes, acho que um dos mais famosos, em um programa nao
tecnico da TechTV, o ScreenSavers, uma comparacao de instalacao basica
dos sistemas para ambiente Desktop foi feita, o objetivo era quem
instalava mais rapido um ambiente Desktop com os mesmos recursos, mas
poderiam ser qualquer Desktop `a criterio e decisao dos "especialistas",
mas o resultado final tinha que ter os mesmos recursos disponiveis pro
usuario.
O resultado? hehe quem nao viu o video, tai uma boa chance.
Yotube, Yahoo Video e Google Video indicam esses episodios todos desse
programa de TV.
Resumindo: se benchmark nao for muito serio e bem projetado, so serve
pra uma coisa: arrumar confusao e manadas de usuarios contestando os
resultados ou o a "igualdade" de condicoes/justica da comparacao.
Similar ao que esta acontecendo aqui.
--
Patrick Tracanelli
FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"
Mais detalhes sobre a lista de discussão freebsd