[FUG-BR] Benchmark Performance -- PostgreSQL -- FreeBSD x Linux
Diego Augusto Dalmolin
dalmolin em gmail.com
Quinta Março 27 11:39:12 BRT 2008
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.
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
Mais detalhes sobre a lista de discussão freebsd