PostgreSQL escalando até 64 núcleos?

10

Neste artigo da Computer World , ele especifica que o PostgreSQL pode escalar até um limite central de 64. Isso significa para um processador multi-core de 64 núcleos? Ou vários processadores com menos núcleos?

A razão pela qual eu pergunto é porque estou tentando descobrir quanto processadores o PostgreSQL pode escalar, mas é claro, que pode ser limitado ao tipo de processador. No entanto, tenho encontrado outras estatísticas em outros bancos de dados (ou seja, Microsoft SQL Server aqui informando que pode escalar até 320 processadores lógicos) e eles não especificam o número de núcleos. Esta é uma estatística muito vaga?

Qualquer pensamento seria muito apreciado. Obrigado!

    
por O_O 18.12.2012 / 19:56

4 respostas

7

Não, é uma estatística muito precisa. Um "processador lógico" é um núcleo. E um núcleo é apenas isso, não importa como eles estão espalhados por processadores físicos.

E se você está lidando com uma máquina com mais núcleos do que o número suportado, isso não deve ser um problema com o PostgreSQL. Cada conexão é inerentemente single-threaded * então qualquer número de núcleos que você tem é o que vai limitar a eficiência e eficácia de conexões simultâneas.

Escusado será dizer que isso também significa que você deve colocar seu dinheiro em núcleos mais rápidos do que a quantidade de núcleos, a menos que você queira agrupar as coisas em um método mais complicado.

* Atualização de 2017: Algumas consultas (ou subconsultas) podem ser executadas em paralelo .

    
por 18.12.2012 / 20:00
11

O Postgres pode escalar até o número de processadores que você deseja instalar, e o sistema operacional pode gerenciar / gerenciar com eficiência. Você pode instalar o Postgres em uma máquina de 128 núcleos (ou até mesmo uma máquina com 128 processadores físicos) e funcionará bem. pode funcionar ainda melhor do que em uma máquina com 64 núcleos, se o agendador do sistema operacional puder lidar com muitos núcleos.

O Postgres mostrou dimensionar linearmente até 64 núcleos (com ressalvas: estamos falando de desempenho de leitura, em um específico configuração (disco, RAM, sistema operacional, etc.) - Robert Haas tem um artigo no blog com um bom gráfico que eu reproduzi abaixo:

Oqueéimportantesobreestegráfico?

Orelacionamentoélinear(ouquase)desdequeoNúmerodeClientessejamenorouigualaoNúmerodeCores,eentãocomeceoqueparecesermaisoumenosumdecréscimolog-linearnodesempenho,poisvocêtemmaisconexõesclientedoquenúcleosparaexecutarosbackendsdoPostgresporqueosbackendscomeçamalutarpelaCPU(amédiadecargaéacimade1.0,etc...).

Emboratenhasidodemonstradoparaaté64núcleos,épossívelgeneralizarquevocêpodecontinuaradicionandonúcleos(eclientes)econtinuarmelhorandoodesempenho,atéolimitedealgumoutrosubsistema(disco,memória,rede)ondeosprocessosnãoestãomaistendoproblemasdecontençãodaCPU,masestãoaguardandooutracoisa.

( Haas também tem outro artigo onde eles provaram escalabilidade linear para 32 núcleos que tem algum excelente material de referência sobre escalabilidade em geral - uma leitura de fundo altamente recomendada!)

    
por 18.12.2012 / 20:42
2

Outros esclareceram que um processador lógico geralmente se refere a um núcleo de CPU, mas eu quero comentar sobre a afirmação de que não importa como os núcleos estão espalhados pelas CPUs.

Você pode ter caches na matriz da CPU que são compartilhados entre os núcleos ou que são dedicados a um único ou subgrupo de núcleos. Por exemplo, uma configuração comum é o cache L1 dedicado e o cache L2 compartilhado. Neste caso, a escalabilidade de uma única CPU dual core pode diferir de duas CPUs de núcleo único.

Essa escalabilidade afeta a memória principal, com as máquinas NUMA exibindo um comportamento diferente do que o não-NUMA.

Aponto isso apenas porque o OP está discutindo questões de escalabilidade, cujas respostas são geralmente mais sutis do que "o programa X pode usar núcleos de CPU do Y".

    
por 18.12.2012 / 20:28
1

Neste caso, eles significam múltiplos processadores com menos núcleos ... Algumas das palestras são à prova do futuro. Alguns falam marketing.

    
por 18.12.2012 / 20:00