Sergio,
A questão de "out of memory" pode ser o ponto de dificultade...
Vc vai ter de tirar a memoria de outras areas para privilegiar a
restauração, e retornar aos valores anteriores para por em produção.
Como vc está utilizando um workmem baixo, é provavel que o consumo de
cpu esteja sendo limitado pelo iowait, já que a cpu só será utilizada
haverem dados para processar.
A ideia de ter valores comparativos entre os tipos de uso de
processamento (user/system), e relação com IO dão uma boa pista, pois
podem indicar outros gargalos não imaginados (exemplo swapping,
escalonamento, etc).
Sds,
Marco Antonio
Sergio Medeiros Santi wrote:
> Marco:
>
> Eu aumentei vários parâmetros, entre eles o work_mem, o problema é que
> alguns parâmetros funcionam ao subir o banco e dão pau quando são
> usados. Neste processo recebi vários out of memory durante a execução.
>
> O consumo de CPU que citei é total. Com relação a IO eu sei que é
> bastante (como não poderia deixar de ser), mas não me parece ser o
> gargalo. Não consigo imaginar que para criar uma única constraint o PG
> consuma mais IO que todo o processo de criar o banco, seus dados,
> indices e demais constraints.
>
> Abraços,
> Sergio Medeiros Santi
>
>
>
> Marco A P D´Andrade escreveu:
>> Sergio,
>>
>> Vc chegou a aumentar o workmem ?
>>
>> A sugestão para restaurações é sempre, em varios bancos, de subir este
>> valor o maximo durante operações críticas como o restore...
>>
>> O consumo de CPU é de 4 a 10%, mas e o io ? 4% à base de system ou user
>> time ? Sugiro registrar todos ...
>>
>> Por estar fazendo muita leitura, para validar a constraint, isto poderia
>> estar consuminto tempo excessivo ...
>>
>> Ok, cheguei tarde, mas fica minha sugestão...
>>
>> PS: não sei qual o impacto de usar um "disable constraints" para a
>> restauração dos dados, visto que se sabe ter integridade, algo que ainda
>> quero testar (ainda não li o manual).
>>
>> Sds,
>> Marco Antonio
>>
>> Sergio Medeiros Santi wrote:
>>
>>> Pessoal, a luta continua.
>>>
>>> Depois de colocar em prática muitas das sugestões recebidas (senão
>>> todas) sem nenhum resultado aparente resolvi fazer um backup na 8.1.9,
>>> desinstalar o 8.1.9, instalar o 8.2.5 e restaurar o backup realizado.
>>> O resultado foi praticamente o mesmo, ou seja, de um total de 13:40,
>>> 9:40 foram consumidos pela aplicação da constraint nefasta. Também
>>> desta vez o consumo de cpu ficou abaixo de 10%, tipicamente 4%.
>>>
>>> Minha idéia agora é enviar este problema para os mantenedores do PG.
>>> Neste sentido eu preciso de vocês a indicação de para onde enviar este
>>> problema e se é preciso me cadastrar em alguma nova lista.
>>>
>>> Também gostaria que vocês analisassem o cenário abaixo e, se for o
>>> caso, me sugiram informações a acrescentar ou suprimir.
>>>
>>> Antecipo agradecimentos,
>>>
>>> CENÁRIO:
>>> --------------
>>>
>>> Hardware: Dell Power Edge 1900, Dual Xeon 3.2, Ram 4Gb, Disco 160Gb SAS
>>>
>>> PostgreSQL: 8.2.5 em Server W2K3 SP2
>>>
>>> Principais parâmetros do postgresql.conf:
>>> - max_connections = 100
>>> - enable = bitmapscan-On, hashagg-On, hashjoin-On, indexscan-On,
>>> mergejoin-On, nestloop-On, seqscan-Off, sort-On, tidscan-Off
>>> - efective_cache_size = 128MB
>>> - maintenance_work_mem = 120MB
>>> - max_stack_deph = 2MB
>>> - shared_buffers = 1000MB
>>> - work_mem = 10MB
>>> - max_fsm_pages = 204800
>>> - max_fam_relations = 2000
>>> - checkpoint_segments = 30
>>>
>>> Base de dados com 22GB
>>> Tempo para restaurar: 13:40:00
>>>
>>> Constraint problemática na restauração:
>>> Tabela Produto com 17MB e 40.000 registros
>>> Tabela NotaItem com 9GB e 18.500.000 registros
>>> Constraint Lenta: ALTER TABLE "NotaItem"
>>> ADD CONSTRAINT "NotaItem_CodigoProduto_Produto_FK"
>>> FOREIGN KEY ("CodigoProdutoItem")
>>> REFERENCES "Produto" ("CodigoInternoProduto")
>>> MATCH FULL
>>> ON UPDATE RESTRICT ON DELETE RESTRICT;
>>> Tempo para aplicar: 09:40:00 (9 horas e 40 minutos)
>>>
>>> Constraint sem problema na restauração (a título de exemplo):
>>> Tabela NotaFiscal com 1GB e 1.500.000 registros
>>> Tabela NotaItem com 9GB e 18.500.000 registros
>>> Contraint Rápida: ALTER TABLE "NotaItem"
>>> ADD CONSTRAINT
>>> "NotaItem_CodigoNotaItem_NotaFiscal_FK" FOREIGN KEY ("CodigoNotaItem")
>>> REFERENCES "NotaFiscal" ("CodigoInternoNota")
>>> MATCH FULL
>>> ON UPDATE NO ACTION ON DELETE CASCADE;
>>> Tempo para aplicar: 00:08:00 (8 minutos)
>>>
>>>
>>> Bem, além destas informações pretendo enviar em anexo as DDLs das duas
>>> tabelas envolvidas na constrainte LERDA e da constraint satisfatória,
>>> além do postgresql.conf completo.
>>>
>>> Esqueci algo ou exagerei nos detalhes?
>>>
>>> Antecipo agradecimentos,
>>> Sergio Medeiros Santi
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> [email protected]
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>>
>>
> ------------------------------------------------------------------------
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
--
Marco Antonio P D'Andrade
Gerência Técnica de Segurança de Suporte Servidores IP - ELN120024
Embratel - Rio de Janeiro - RIT 521-4898
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral