postgresql - preferências de cache por tabela / db

1

Estou curioso para saber se existe alguma maneira de sugerir ao postgresql quais dados devem ser mais provavelmente armazenados em cache na memória. no meu cenário o servidor estaria lidando com tráfego de leitura, todo o conjunto de dados é muito maior do que a memória disponível, mas algumas das tabelas [que não são acessadas com mais frequência] devem ser armazenadas na memória, enquanto outras não requerem alto desempenho e pode ser acessado a partir do disco.

Eu sei que memcached ou similar pode ser uma solução razoável, mas talvez tudo isso possa ser feito sem isso.

esta questão é mais adequada para o stackoverflow?

    
por pQd 10.01.2010 / 10:59

1 resposta

2

Não há como sugerir o PostgreSQL sobre o seu cache. Na maioria dos casos, você não precisa - as partes mais usadas das tabelas serão armazenadas em cache. Não é tão ingênuo como apenas "esta tabela é mais usada, vamos armazenar em cache esta tabela", ela coloca outras coisas em acordo. (Por exemplo, as varreduras sequenciais em tabelas grandes ainda não podem usar o cache de buffer completo)

Uma solução alternativa que você poderia fazer é colocar as tabelas quentes em um espaço de tabela diferente, montadas em uma partição diferente e ajustar os parâmetros de armazenamento em cache do SO para essa partição (se isso for possível no nível do SO, é claro). O PostgreSQL depende bastante do cache do sistema de arquivos no nível do sistema operacional, portanto, se você puder ajustá-lo às suas necessidades, isso poderá resolver o problema.

    
por 10.01.2010 / 12:43