AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1035630
Accepted
Rino Bino
Rino Bino
Asked: 2020-09-29 09:59:39 +0800 CST2020-09-29 09:59:39 +0800 CST 2020-09-29 09:59:39 +0800 CST

Criar índice Postgres no RDS é muito mais lento do que um host Linux mais fraco

  • 772

Fundo:

  • Postgres 10.9
  • O banco de dados é executado como um contêiner docker nos hosts dev. (t3.large, gp2 500 GB de armazenamento)
  • O banco de dados é executado no RDS para preparação e produção. (m5.2xlarge, gp2 1TB de armazenamento)

Tudo funciona muito bem, está assim há muito tempo, e meus tempos de alteração de banco de dados parecem sempre ser mais rápidos em prod/staging versus dev (como esperado).

Problema/Pergunta:

Eu tenho uma criação de índice específica que está demorando 20x mais no RDS (que é mais poderoso) do que no host de desenvolvimento local. Em todos os outros casos que vi nos últimos dois anos, o host RDS é mais rápido porque tem mais poder de computação e velocidades de E/S mais altas.

  • Dados e esquema são idênticos entre as instâncias. Usando pg_dump + pg_restore para carregar os bancos de dados dev com dados atualizados todas as noites.
  • A tabela é relativamente grande (30 milhões de linhas) em comparação com outras tabelas no meu banco de dados (principalmente menos de 1 mil)

É uma operação de índice simples:

CREATE INDEX idx_email_records_created ON email_records(created_at);

Na caixa de desenvolvimento linux local:

db=> CREATE INDEX idx_email_records_created ON email_records(created_at);
CREATE INDEX
Time: 68523.557 ms (01:08.524)

No host RDS:

db=> CREATE INDEX idx_email_records_created ON email_records(created_at);
CREATE INDEX
Time: 1490902.929 ms (24:50.903)

Eu verifiquei todas as coisas normais: carga da CPU (muito livre em todos os casos), Memória (muito livre em todos os casos). Bloqueio/uso de mesa, etc.

Os hosts dev são restaurados com um novo clone do prod db todas as noites, portanto, não há discrepância no número de linhas.

Eu verifiquei max_parallel e experimentei coisas como, ALTER TABLE email_records SET (parallel_workers = ##);mas nada parece fazer diferença.

Qualquer ajuda é apreciada

postgresql indexing amazon-rds
  • 1 1 respostas
  • 643 Views

1 respostas

  • Voted
  1. Best Answer
    Rino Bino
    2020-09-30T15:38:36+08:002020-09-30T15:38:36+08:00

    Aqui está um resumo da causa raiz:

    Os tempos foram coletados após uma restauração de instantâneo do RDS. Aparentemente, é normal que a instância fique lenta após uma nova restauração. Eu nunca tinha encontrado esse problema antes, mas nunca precisei trabalhar com um conjunto tão grande de dados logo após uma restauração antes.

    Veja mais aqui: https://stackoverflow.com/questions/47545414/aws-rds-instance-created-from-snapshot-very-slow

    No meu caso, acabei de selecionar toda a tabela para a tabela incorreta para classificar de "pré-puxar" os dados da restauração inicial. Então eu executei o índice de criação e ele terminou muito rápido .

    Portanto, em resumo, a restauração de instantâneo do RDS terá uma queda de desempenho após uma nova restauração.

    Mais informações: https://cintia.me/blog/post/lazy-rds/

    Novos volumes criados a partir de snapshots existentes do EBS são carregados lentamente em segundo plano. Isso significa que, depois que um volume é criado a partir de um snapshot, não há necessidade de esperar que todos os dados sejam transferidos do Amazon S3 para o volume do EBS antes que a instância anexada possa começar a acessar o volume e todos os seus dados.

    • 4

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve