[FUG-BR] Benchmark Performance -- PostgreSQL -- FreeBSD x Linux
Eduardo Frazão
edufrazao em gmail.com
Sexta Março 28 15:45:50 BRT 2008
Com certeza. Estou recompilando meu FreeBSD agora, e já vou tirar
resultados.
Fiz um teste com escrita massiça em RAID 5 ( 128 arquivos de 16MB cada ), e
o mesmo teste em RAID 10
Velocidade de gravação em RAID 5 = 105mb/s
Velocidade de gravação em RAID10 = 155mb/s
Agora, vamos testar o BD.
Muito obrigado!
Abraços!
Em 27/03/08, Joao Rocha Braga Filho <goffredo em gmail.com> escreveu:
>
> 2008/3/27 Diego Augusto Dalmolin <dalmolin em gmail.com>:
>
> > Eduardo
> >
> > Seguindo algumas recomendações da oracle, talvez possa se aplicar ao
> pgsql
> > (e talvez ao seu caso)
> >
> > A oracle recomenda o SAME (strip and mirror everything) ou seja raid
> 0+1 ou
> > 1+0 ou 10.
> > A raid 5 é mais lenta para operações de escrita.
>
>
> Melhor explicando. O RAID 5 pdoe ser desastroso para pequenas escritas,
> como é um bando de dados. Acho que o único bando de dados que pode
> se beneficiar de RAID 5 é o CDB, Contant Data Base (Ver nos ports). Mas
> o RAID 5 pode ser muito rápido para escritas GRANDES e SEQUENCIAIS,
> nas quais blocos de muitos MB são escritos sequencialmente. Neste caso
> a controladora não precisa ficar calculando a paridade com o que está em
> disco.
>
> O RAID 5 SEMPRE implica em leitura antes de escrita, para pequenas
> escritas, para recalcular o a paridade. Digamos que vai escrever um
> setor, então ele e a paridade precisam ser lidos, para desfazer a paridade
> dele, e poder escrever a paridade correta para o novo setor do disco.
>
> Espelhamento, RAID 1, não implica em leitura antes de escrita. Pode
> atrasar a escrita, pois o tempo de escrita seria o tempo levado para
> escrever no HD que mais demorar, o mais atrasado, que pode mudar
> devido rotações, seek etc. Mas a escrita pode ser acelerada, pois pode
> ler alternadamante, e como bancos de dados e sistemas de arquivos
> tem que ler dados sobre posição onde está certa posição no arquivo
> (Sei que expliquei isto mal), então pode ser que até a escrita acabe
> sendo acelerada devido à aceleração das leituras necessárias pelo
> sistema operacional antes de fazer a escrita.
>
> Por favor, refaça os testes em RAID 1 e RAID 10, e nos apresente os
> resultados.
>
>
>
> João Rocha.
>
>
>
> >
> > Existe alguns parametros no freebsd pra semafoto e shmem no pgsql
> > Vc pode ter mais informacoes em:
> > http://www.freebsddiary.org/postgresql.php
> >
> > 2008/3/27 Eduardo Frazão <edufrazao em gmail.com>:
> >
> >
> >
> > > Bom dia pessoal! Estamos desenvolvendo um sistema de gestão, que
> utilizará
> > > como SGBD, PostgreSQL.
> > >
> > > Decidi fazer alguns testes antes de escolher qual S.O. vai rodar o
> banco,
> > > e
> > > publicar os resultados aqui, para obter alguma ajuda, inclusive nos
> > > tunings.
> > >
> > > Utilizei o sysbench ( http://sysbench.sf.net ) para realizar os
> testes.
> > >
> > > Configuração do servidor:
> > > Dual Intel Xeon E5410 QuadCore 12MB Cache por CPU 1333Mhz FSB EM64T
> // 8GB
> > > DDR2 ECC FBD // Controladora RAID Perc6/i ( LSI Logic MegaRaid SAS )
> 256MB
> > > Cache PCI-E // 4 Discos SAS Segate ST3146855SS 146GB / 15k RPM em
> Raid 5
> > > // Duas Fontes de alimentação de 730W Reais.
> > >
> > >
> > > Configurações da tabela de Testes:
> > > Base com 1 Milhão de registros Randômicos
> > >
> > > Quantidade Limite de Requisições: 10 000
> > >
> > > Compilação do SysBench em ambos os sistemas: ( -march=nocona -O3
> -pipe
> > > -fomit-frame-pointer -m64 )
> > > Versão: 0.4.8
> > >
> > > Comando de preparação do banco de dados:
> > > # ./sysbench --max-requests=10000 --test=oltp --pgsql-user=postgres
> > > --pgsql-password=XXX --pgsql-db=sysbench --db-driver=pgsql
> > > --oltp-dist-type=special --oltp-table-size=1000000
> --oltp-read-only=off
> > > --num-threads=16 prepare
> > >
> > > Comando para realização do teste
> > > # ./sysbench --max-requests=10000 --test=oltp --pgsql-user=postgres
> > > --pgsql-password=XXX --pgsql-db=sysbench --db-driver=pgsql
> > > --oltp-dist-type=special --oltp-table-size=1000000
> --oltp-read-only=off
> > > --num-threads=16 run
> > >
> > >
> > >
> > > *******************************************************
> > > * Resultado do primeiro teste
> > > *******************************************************
> > >
> > > Sistema Operacional: FreeBSD 7.0Stable AMD64 SMP - Scheduller ULE (
> > > Kernel:
> > > removidos apenas suporte a hardware não existentes, e adicionado a
> opção:
> > > options HZ=1000 )
> > > VERSÃO do PostgreSQL: 8.3.1 - ( Flags de compilação: -march=nocona
> -O3
> > > -pipe
> > > -funronll-loops )
> > >
> > > Resultado:
> > >
> > > OLTP test statistics:
> > > queries performed:
> > > read: 140070
> > > write: 50025
> > > other: 20010
> > > total: 210105
> > > transactions: 10005 (781.40 per sec.)
> > > deadlocks: 0 (0.00 per sec.)
> > > read/write requests: 190095 (14846.69 per sec.)
> > > other operations: 20010 (1562.81 per sec.)
> > >
> > > Test execution summary:
> > > total time: 12.8039s
> > > total number of events: 10005
> > > total time taken by event execution: 204.6433
> > > per-request statistics:
> > > min: 0.0061s
> > > avg: 0.0205s
> > > max: 1.9591s
> > > approx. 95 percentile: 0.0157s
> > >
> > > Threads fairness:
> > > events (avg/stddev): 625.3125/10.93
> > > execution time (avg/stddev): 12.7902/0.00
> > >
> > >
> > > ********************************************************
> > > * Resultado do Segundo teste
> > > ********************************************************
> > >
> > > Sistema Operacional: FreeBSD 7.0Stable AMD64 SMP - Scheduller ULE (
> > > Kernel:
> > > removidos apenas suporte a hardware não existentes, e adicionado a
> opção:
> > > options HZ=1000 )
> > > VERSÃO do PostgreSQL: 8.2.7 ( Flags de compilação: -march=nocona -O3
> -pipe
> > > -funronll-loops )
> > >
> > > OLTP test statistics:
> > > queries performed:
> > > read: 140056
> > > write: 50020
> > > other: 20008
> > > total: 210084
> > > transactions: 10004 (1040.60 per sec.)
> > > deadlocks: 0 (0.00 per sec.)
> > > read/write requests: 190076 (19771.31 per sec.)
> > > other operations: 20008 (2081.19 per sec.)
> > >
> > > Test execution summary:
> > > total time: 9.6137s
> > > total number of events: 10004
> > > total time taken by event execution: 153.6019
> > > per-request statistics:
> > > min: 0.0040s
> > > avg: 0.0154s
> > > max: 0.6847s
> > > approx. 95 percentile: 0.0266s
> > >
> > > Threads fairness:
> > > events (avg/stddev): 625.2500/10.92
> > > execution time (avg/stddev): 9.6001/0.00
> > >
> > >
> > >
> > > *****************************************************
> > > * Resultado do Terceiro Teste
> > > *****************************************************
> > >
> > > Sistema Operacional: Gentoo Linux 2007.0 Stage 3 AMD64 - Kernel:
> Gentoo
> > > Sources 2.6.23 SMP Core2/Newer Xeons (EM64T)
> > > Versão do Banco: PostgreSQL 8.3.1 ( Flags de compilação:
> -march=nocona -O3
> > > -pipe -funronll-loops -m64 )
> > >
> > > Resultado:
> > >
> > > OLTP test statistics:
> > > queries performed:
> > > read: 140000
> > > write: 50000
> > > other: 20000
> > > total: 210000
> > > transactions: 10000 (1476.05 per sec.)
> > > deadlocks: 0 (0.00 per sec.)
> > > read/write requests: 190000 (28045.01 per sec.)
> > > other operations: 20000 (2952.11 per sec.)
> > >
> > > Test execution summary:
> > > total time: 6.7748s
> > > total number of events: 10000
> > > total time taken by event execution: 108.1316
> > > per-request statistics:
> > > min: 0.0022s
> > > avg: 0.0108s
> > > max: 0.2696s
> > > approx. 95 percentile: 0.0189s
> > >
> > > Threads fairness:
> > > events (avg/stddev): 625.0000/8.70
> > > execution time (avg/stddev): 6.7582/0.00
> > >
> > > ---
> > >
> > > ***************************************
> > > *** Resultado do Quarto Teste
> > > ***************************************
> > >
> > > Sistema Operacional: Gentoo Linux 2007.0 Stage 3 AMD64 - Kernel:
> Gentoo
> > > Sources 2.6.23 SMP Core2/Newer Xeons (EM64T)
> > > Versão do Banco: PostgreSQL 8.2.7 ( Flags de compilação:
> -march=nocona -O3
> > > -pipe -funronll-loops -m64 )
> > >
> > > Resultado:
> > >
> > > OLTP test statistics:
> > > queries performed:
> > > read: 140000
> > > write: 50000
> > > other: 20000
> > > total: 210000
> > > transactions: 10000 (189.47 per sec.)
> > > deadlocks: 0 (0.00 per sec.)
> > > read/write requests: 190000 (3599.84 per sec.)
> > > other operations: 20000 (378.93 per sec.)
> > >
> > > Test execution summary:
> > > total time: 52.7801s
> > > total number of events: 10000
> > > total time taken by event execution: 843.9876
> > > per-request statistics:
> > > min: 0.0032s
> > > avg: 0.0844s
> > > max: 0.2446s
> > > approx. 95 percentile: 0.1395s
> > >
> > > Threads fairness:
> > > events (avg/stddev): 625.0000/15.79
> > > execution time (avg/stddev): 52.7492/0.02
> > >
> > >
> > > *********************************
> > > * Resultado do Quinto Teste
> > > *********************************
> > >
> > > Sistema Operacional: Gentoo Linux 2007.0 Stage 3 AMD64 - Kernel:
> Gentoo
> > > Sources 2.6.23 SMP Core2/Newer Xeons (EM64T)
> > > Versão do Banco: PostgreSQL 8.2.7 ( Flags de compilação:
> -march=nocona -O3
> > > -pipe -funronll-loops -m64 )
> > > *** COMPILADOR: Intel C Compiler ( ICC ) - Versão: 10.0.0.26 Intel64
> > >
> > >
> > > Resultado:
> > >
> > > OLTP test statistics:
> > > queries performed:
> > > read: 140014
> > > write: 50005
> > > other: 20002
> > > total: 210021
> > > transactions: 10001 (1528.89 per sec.)
> > > deadlocks: 0 (0.00 per sec.)
> > > read/write requests: 190019 (29049.00 per sec.)
> > > other operations: 20002 (3057.79 per sec.)
> > >
> > > Test execution summary:
> > > total time: 6.5413s
> > > total number of events: 10001
> > > total time taken by event execution: 104.4052
> > > per-request statistics:
> > > min: 0.0025s
> > > avg: 0.0104s
> > > max: 0.2413s
> > > approx. 95 percentile: 0.0186s
> > >
> > > Threads fairness:
> > > events (avg/stddev): 625.0625/13.33
> > > execution time (avg/stddev): 6.5253/0.00
> > >
> > > Observação: Não pude usar ICC no FreeBSD, pois o port ainda não
> suporta o
> > > compilador X86_64
> > >
> > > ---
> > >
> > >
> > >
> > >
> > > Pessoal, por favor. A Idéia deste benchmark e POST não foi gerar
> flames.
> > > Na
> > > verdade, gostaria de saber se alguem me indica técnicas de Tunnings
> no
> > > FreeBSD para que eu possa fazer mais testes, e compartilhar os
> resultados
> > > com todos!
> > >
> > > Muito obrigado!
> > >
> > > Um abraço
> > >
> > > Eduardo Frazão
> > > -------------------------
> > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > >
> >
> >
> >
> > --
> > --------------------------------------------------
> > Diego Augusto Dalmolin
> > Certificado LINUX LPI
> > Cel: (41) 8436-2448
> > Msn: diegoaugustodalmolin em hotmail.com
> > Mail: dalmolin em gmail.com
> >
> >
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
>
>
>
> --
> "Sempre se apanha mais com as menores besteiras. Experiência própria."
>
> goffredo em goffredo.eti.br
> goffredo em gmail.com
> http://www.goffredo.eti.br
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
Mais detalhes sobre a lista de discussão freebsd