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 / dba / Perguntas / 17092
Accepted
Zenklys
Zenklys
Asked: 2012-04-27 05:26:59 +0800 CST2012-04-27 05:26:59 +0800 CST 2012-04-27 05:26:59 +0800 CST

O desempenho da CPU é relevante para um servidor de banco de dados?

  • 772

Esta é uma questão puramente teórica. Digamos que eu tenha um aplicativo implantado em vários servidores.

  1. Um balanceador de carga,
  2. Servidores de aplicativos múltiplos/escaláveis
  3. Um servidor de banco de dados (único) (no momento)

Nas duas primeiras partes, eu sei o que procurar. Mas e o servidor de banco de dados? Que tipo de hardware devo procurar?

  • A frequência da CPU é relevante para um servidor de banco de dados?
  • As CPUs de vários núcleos são relevantes?
  • A RAM é mais importante que a CPU?

PS: Supondo que o banco de dados escolhido seja MySQL ou PostgreSQL.

mysql postgresql
  • 3 3 respostas
  • 28334 Views

3 respostas

  • Voted
  1. Best Answer
    kgrittn
    2012-04-27T09:41:16+08:002012-04-27T09:41:16+08:00

    Para o PostgreSQL, o poder da CPU pode ser muito relevante, especialmente se uma porcentagem bastante alta do conjunto de trabalho ativo de seus dados couber na RAM. A maioria dos bancos de dados com os quais trabalhei teve o poder da CPU como o principal gargalo na maioria das vezes. (Acabei de verificar o vmstat em um servidor que hospeda sites com milhões de acessos por dia hospedando mais de 5 TB de espaço de banco de dados e nunca vi mais de 2% de tempo de espera de disco, mas vi um pico de 12% de tempo de CPU do usuário.)

    Como o PostgreSQL é baseado em processos, qualquer processo único pode ser executado tão rápido quanto um núcleo, mas em uma mistura como a que temos no servidor mencionado acima, com um alto volume de pequenas solicitações, a CPU total em todos os núcleos é mais importante. Para a mesma potência total de CPU, o PostgreSQL geralmente se sairá melhor com menos núcleos mais rápidos do que muitos núcleos mais lentos.

    Até o ponto em que uma alta porcentagem de seu conjunto de dados ativo é armazenada em cache, adicionar RAM normalmente mostrará mais retorno do que adicionar núcleos. Depois de obter cache suficiente, o benefício da RAM adicional diminui e é melhor aumentar a potência da CPU.

    Para mais detalhes sobre este tópico no que se refere ao PostgreSQL, não acho que exista uma fonte melhor do que o PostgreSQL 9.0 High Performance de Greg Smith . (Divulgação completa, eu fui um revisor técnico do livro, mas não obtive nenhum benefício financeiro com base nas vendas.)

    • 30
  2. RolandoMySQLDBA
    2012-04-27T06:11:47+08:002012-04-27T06:11:47+08:00

    Estritamente da perspectiva do MySQL, essa é uma pergunta muito carregada

    Frequência de CPU relevante para um servidor de banco de dados?

    Embora a CPU e a placa-mãe mais rápidas sejam ótimas, outros gargalos podem atrapalhar. Esses gargalos incluem:

    • E/S de disco
    • Máximos de conexão
    • Latência da rede
    • Desempenho da consulta por conexão

    Cada pequena vantagem ajuda, mas devo dizer Não porque a velocidade da CPU, por si só, não melhora os gargalos mencionados. Afinal, de que adianta um carro de corrida de Fórmula 1 com um paraquedas aberto ou com um gorila de 800 libras ao volante?

    As CPUs de vários núcleos são relevantes?

    Isso depende inteiramente de qual versão do MySQL você está executando. Plugin MySQL 5.1 InnoDB, MySQL 5.5 e XtraDB do Percona Server têm configurações que VOCÊ DEVE CONFIGURAR CORRETAMENTE para que o InnoDB acesse todos os núcleos. O verdadeiro incentivo para fazer isso decorre do fato de que algumas versões mais antigas do MySQL LEFT UNCONFIGURED são mais rápidas do que as versões mais recentes, como discuti em meus posts anteriores:

    • Como executo corretamente um Bake-off do MySQL?
    • Por que o mysql 5.5 é mais lento que o 5.1 (linux, usando mysqlslap)
    • A consulta é executada por muito tempo em algumas versões mais recentes do MySQL
    • Vários núcleos e desempenho do MySQL

    Portanto, se você não estiver disposto a configurar o InnoDB para acessar todas as CPUs, ter vários núcleos não compra absolutamente nada .

    A RAM é mais importante que a CPU?

    Ah, sim mesmo. A configuração de memória para MySQL envolve a configuração

    • buffers para InnoDB e MyISAM
    • opções por conexão para tabelas de classificação, junção, leitura e temporária
    • limites máximos de conexão
    • operação de inserção em massa
    • cache de consulta

    Solicitar muito pouco ou muito de qualquer combinação dessas coisas e o MySQL voltará para mordê-lo. Uma CPU mais rápida com o MySQL configurado incorretamente para RAM apenas faz o MySQL mordê-lo mais rápido.

    • 23
  3. gbn
    2012-04-27T05:34:56+08:002012-04-27T05:34:56+08:00
    • Não
    • Não
    • Sim

    Em termos simples, você precisa de desempenho de RAM e E/S (latência + velocidade de leitura + velocidade de gravação) para bancos de dados.

    A escolha de 4 ou 6 núcleos ou 2,5 GHz vs 3 GHz não é realmente relevante (presumo que você não precise escolher entre um P3-450 com 32 GB de RAM ou o Xeon mais recente com 1 GB de RAM).

    Se você estiver limitado à CPU, terá outros problemas (design ruim, índices ruins, troca, servidor não dedicado, etc.)

    • 6

relate perguntas

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

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