Estou usando AWS Aurora PostgreSQL Serverless
com escalonamento automático. Parece que o dimensionamento limpa o buffer compartilhado, então, quando queremos aumentar o desempenho, somos forçados a enfrentar um gargalo de E/S. Após o aquecimento, vemos uma grande melhora no desempenho. No entanto, se executarmos consecutivamente uma vez dimensionados, a segunda execução será muito mais rápida. Embora eu não tenha visto nada específico sobre se o buffer compartilhado é limpo no dimensionamento, tenho quase certeza de que é.
O Aurora Serverless está usando atualmente PostgreSQL 10.14
e oferece suporte à pg_prewarm
extensão. Parece que a documentação mais recente sugere que o pré-aquecimento suporta o pré-aquecimento automático após a reinicialização do servidor, mas isso é sem servidor e uma versão que não parece mencionar o pré-aquecimento automático na documentação .
Encontrei este post que funciona muito bem para o PostgreSQL ao reiniciar o servidor ou se recuperar de uma falha.
- Se pudéssemos pelo menos reter o conteúdo do buffer compartilhado do nó ACU inferior após o dimensionamento, tudo bem.
- Se pudéssemos pré-aquecer exatamente o que precisa estar na memória antes do tempo, seria incrível!
- Existem certas mesas que são bastante grandes e gostaríamos de pré-aquecer seletivamente as peças que queremos.
pg_prewarm
suportafirst_block
elast_block
bloqueia números para uma tabela/índice, mas como saber quais valores colocar lá?
Sabemos com antecedência quando é nosso pico e dizemos ao RDS para dimensionar logo antes, então temos uma janela de tempo em que podemos nos preparar.
Quais são minhas opções?