Tentando descobrir como devo esperar que meu banco de dados seja executado. Basicamente, preciso determinar quando o servidor que configurei está atingindo seus limites de desempenho - o que me ajudaria a planejar melhor o escalonamento do servidor.
Esta questão visa mais as maneiras pelas quais posso calcular ou estimar (realmente, qualquer ideia disso seria boa) o desempenho esperado. Idealmente, isso deve me ajudar a criar uma fórmula que possa ser executada com base em vários fatores (como tamanho do registro, número de linhas etc.), em vez de uma suposição subjetiva baseada em um servidor / banco de dados específico.
Então, qual é uma boa maneira de determinar o desempenho esperado em um servidor PostgreSQL?
Muito obrigado!
Acho que determinar o desempenho esperado é muito mais difícil do que planejar a capacidade. Meu palpite é que é isso que você realmente está tentando fazer, portanto, examinarei o que considero as regras mais importantes para cargas de trabalho OLTP aqui.
Você deseja que o conjunto de dados de trabalho caiba na memória, se possível. O cálculo do desempenho onde este não é o caso depende da frequência com que os discos são atingidos e do tipo de E/S do disco. Se você não pode colocar tudo na memória, pelo menos você deve tentar colocar os dados mais usados e todos os índices usados na memória.
Você deseja ter disponível pelo menos um núcleo por duas consultas simultâneas. Melhor é um núcleo por consulta simultânea.
Ambos são um pouco complicados de calcular e dependem do tamanho da linha, número de páginas na tabela, número de tuplas mortas na tabela, que por sua vez depende em parte do número de atualizações simultâneas.
Além disso, o desempenho irá se degradar lentamente, esperançosamente, graciosamente. Estimar o desempenho quando eles são ou não atendidos é muito difícil porque é um fato muito específico.