Olá, Estou com algumas dúvidas sobre instalação e performance.
Tenho um servidor IBM System S-3560 quadcore com 6 discos SCSI, esta máquina vai segurar o novo banco de produção daqui. Coloquei 4 discos em RAID 10 + 1 disco para SPARE O array do RAID 10 ficou com 293 GB. Deixei um disco separado para backup (173 GB). Instalei o Debian Lenny 64 bits (kernel 2.6.26.1-amd64) na máquina pois acima de 4 GB de memória é recomendável usar 64bits correto? Separei as partições da seguinte forma: /boot / /pgsql/indices (pg_clog) /pgsql/tabelas (base) /pgsql/tablespaces /pgsql/wal (pg_xlog) /pgsql/archives (global) /var /var/log /backup swap O servidor tem 8 GB de RAM, deixei 4 GB de SWAP, acredito ser suficiente. Sistemas de arquivos: / > ext3 defauls /pgsql/indices > ext3 noatime,writeback /pgsql/tabelas > xfs noatime /pgsql/wal > ext3 noatime,writeback /pgsql/wal > ext3 noatime,writeback /pgsql/archives > ext3 noatime,writeback /var > ext3 defaults /var/log > ext3 defaults Fiz isto, está assim, mas fico pensando se não seria melhor fazer 2 raids 10 ao invés de apenas 1, assim poderia separar fisicamente índices e logs de transações das tabelas, será o mais indicado? Ainda tenho tempo de mudar :) Compilei o postgreSQL 8.2.9 (lá eles ainda usam o 8.2). --- exemplo da compilação... ./configure --prefix=/opt/pgsql/8.3.4/ --enable-nls --enable-integer-datetimes --enable-thread-safety --enable-debug --disable-rpath --with-tcl --with-perl --with-python --with-pam --with-krb5 --with-openssl --with-ldap --with-gnu-ld criei o usuario postgres, criei o diretorio data e rodei o initdb. depois movi tudo para as partições e criei links simbólicos no diretório, espero que seja o procedimento correto, se não for por favor me digam se tem um método mais eficiente ;) --- Fiz os seguintes ajustes no sysctl.conf kernel.shmmni = 128 kernel.shmmax = 2147483648 kernel.shmall = 33554432 vm.overcommit_memory = 2 fs.file-max = 65535 kernel.sem = 250 32000 100 128 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 net.core.wmem_max = 16777216 net.core.rmem_max = 16777216 ---referências---------------------------------------- Maximum size of shared memory segment (bytes) kernel.shmmax = 25% da minha memoria Total amount of shared memory available (bytes or pages) kernel.shmall = 25%/64 Maximum number of shared memory segments system-wide kernel.shmmni = não tenho referencia do parametro ideal net.core.rmem_default=65536 This sets the default OS receive buffer size for all types of connections. net.core.wmem_default=65536 This sets the default OS send buffer size for all types of connections. net.core.rmem_max=8388608 This sets the max OS receive buffer size for all types of connections. net.core.wmem_max=8388608 This sets the max OS send buffer size for all types of connections. http://www.redhat.com/docs/manuals/database/RHDB-2.1-Manual/admin_user/kernel-resources.html http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.amq1ac.doc/lq10410_.htm http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php http://www.midstorm.org/~telles/2008/07/25/postgresql-discos-cia/ http://www.midstorm.org/~telles/2007/12/18/acabou-o-espaco-em-disco/ Muitas dicas eu peguei diretamente nas... ...palestras do Bruce Monjian no Consegi 2008 em Brasília/DF. ...palestras do Fernando Ike no Consegi 2008 em Brasília/DF. http://momjian.us/ http://www.midstorm.org/~fike ---------------------------------------------------------------- Mudando o I/O Scheduler dos discos... echo “deadline” > /sys/block/sda/queue/scheduler Isto é recomendável? --- Fiz os seguinte ajustes nos limits.conf postgres soft nofile 4096 postgres soft nproc 4096 postgres hard nofile 63536 postgres hard nproc 63536 --- Configurações do postgresql.conf max_connections = 25 shared_buffers = 2703 MB work_mem = 2048 MB temp_buffers = 64 MB maintenance_work_mem = 64 MB max_fsm_pages = 150000 max_fsm_relations = 250 wall_buffers = 256 KB stats_start_collector = on stats_row_level = on autocacumm = on autovacuum_naptime = 1min autovacuum_vacuum_threshold = 500 autovacuum_analyze_threshold = 250 autovacuum_vacuum_scale_factor = 0.2 autovacuum_analyze_scale_factor = 0.1 autovacuum_freeze_max_age = 200000000 autovacuum_vacuum_cost_delay = -1 autovacuum_vacuum_cost_limit = -1 Será que exagerei com as configurações de memória? Em relação ao max_fsm ainda estou estudando como determinar as necessidades do meu cenário. Liguei o autovacuum, no 8.2 faz tanta diferença quanto no 8.3 ? Espero estar no caminho certo ;) Bom estou começando a estudar postgres, está será minha primeira implementação para ambiente em produção e quero fazer direito, agradeço se puderem me dar dicas e links para aprofundar os estudos ;) Percebi uma lentidão ao criar bancos, 2 a 3 segundos, é normal? Ainda estou analisando a lentidão, nem vou arriscar um chute no momento, continuo estudando as documentações do postgresql.org :) Valeu gente. []'s Guto
signature.asc
Description: Esta é uma parte de mensagem assinada digitalmente
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
