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 / 48028
Accepted
Craig Sefton
Craig Sefton
Asked: 2013-08-14 01:23:40 +0800 CST2013-08-14 01:23:40 +0800 CST 2013-08-14 01:23:40 +0800 CST

Como determino quantos dados estão sendo gravados por dia por meio de operações de inserção, atualização e exclusão?

  • 772

A longevidade dos SSDs é amplamente determinada pela quantidade de bytes gravados pelas operações de inserção, atualização e exclusão. Qual é a melhor maneira de determinar com precisão quantos dados estão sendo gravados pelo MariaDB 5.5 diariamente para que eu possa usar isso para estimar a possível longevidade dos SSDs se usados ​​em um ambiente de banco de dados de gravação pesada?

A configuração atual é que todas as tabelas são InnoDB. Posso usar Innodb_data_writtene Uptimepara determinar uma ideia aproximada dos bytes escritos por dia ou existe uma maneira melhor de fazer isso?

mysql innodb
  • 3 3 respostas
  • 5471 Views

3 respostas

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2013-08-15T08:45:27+08:002013-08-15T08:45:27+08:00

    MONITORAMENTO

    Há tantas gravações para acompanhar

    • Dados
      • Innodb_data_writes : o número total de gravações de dados.
      • Innodb_data_write : A quantidade de dados gravados até agora, em bytes
    • SQL
      • Innodb_rows_deleted : O número de linhas excluídas das tabelas InnoDB
      • Innodb_rows_inserted : O número de linhas inseridas nas tabelas InnoDB
      • Innodb_rows_updated : O número de linhas atualizadas nas tabelas InnoDB
    • Buffer de Gravação Duplo
      • Innodb_dblwr_writes : O número de operações de gravação dupla que foram executadas
      • Innodb_dblwr_pages_written : O número de páginas gravadas no buffer de gravação dupla
    • Sistema operacional
      • Innodb_os_log_written : O número de bytes gravados nos arquivos de redo log do InnoDB
      • Innodb_data_fsyncs : O número de operações fsync() até agora. A frequência das chamadas fsync() é influenciada pela definição da opção de configuração innodb_flush_method.
    • Gravações relacionadas ao MyISAM

    As gravações de dados vêm na forma de

    Fontes externas

    • Conexões de banco de dados de seus aplicativos
    • Restaurações de dados
      • Recarregando mysqldumps
      • LOAD DATA INFILE
    • Replicação do MySQL por meio de threads de entrada/saída (se o servidor de banco de dados for um mestre)

    Fontes internas

    • Ler e gravar threads de E/S para gravação em logs de transação
    • Inserir buffer do pool de buffer do InnoDB
    • Buffer de Gravação Duplo
    • Replicação do MySQL
      • IO Thread (se o DB Server for um Slave)
      • Linha SQL
    • Gravação do Buffer de Log
    • Arquivos de tablespace individuais ( .ibd)
    • FSyncs (enviando alterações para o disco)

    Arquitetura InnoDB

    Arquitetura InnoDB

    VIDA ÚTIL DO SSD

    Se você está mais preocupado com a longevidade do SSD, tente mover algumas das partes do InnoDB do SSD para um HDD rápido. Quais partes vão para onde?

    • HDD (RAID 10)
      • Espaço de tabela do sistema InnoDB (ibdata1)
      • Logs de transações do InnoDB (ib_logfile0,ib_logfile1)
      • Registros binários
      • Relay Logs (se o seu servidor for um MySQL Replication Slave)
    • SSD
      • .frmarquivos
      • .ibdarquivos
    • Veja esta boa entrada de blog de um MySQL FaceBook Engineer sobre esta sugestão

    Aqui estão algumas das minhas postagens anteriores sobre como mover mecanismos de registro de divisão entre SSD e HDD

    • Jun 25, 2013: Desempenho de gravação do Postgres no SSD Intel S3700
    • Jun 18, 2013: Qual o tamanho que innodb_doublewrite_file pode crescer?

    DE UMA CHANCE !!!

    • 5
  2. Károly Nagy
    2013-08-14T06:59:29+08:002013-08-14T06:59:29+08:00

    Innodb_data_write "é a quantidade de dados gravados até agora, em bytes." (citação de: http://dev.mysql.com/doc/refman/5.1/en/server-status-variables.html#statvar_Innodb_data_written ) O mecanismo de armazenamento realmente grava mais no disco do que isso.

    Existem dois padrões de gravação principais no Innodb (ao lado dos binlogs, se houver):

    • Arquivos de log do Innodb (mudança de dados reais)
    • Flushing to tablespace (por páginas, mesmo uma alteração de 1 byte fará com que uma página seja marcada como suja)

    Se você deseja ter métricas precisas, precisa levar em consideração ambos.

    Número de sequência de log do status innodb do mecanismo de exibição e sua alteração ao longo do tempo, o que significa bytes gravados em innodb_log_files.

    Innodb_buffer_pool_pages_flushed de mostrar status global; fornece o número de páginas liberadas desde o início. O tamanho da página é 16k por padrão (pode ser alterado por recompilação).

    • 2
  3. Joshua Huber
    2017-04-26T06:02:16+08:002017-04-26T06:02:16+08:00

    Se você mantiver seus arquivos de banco de dados em dispositivos dedicados (como eu), poderá usar as ferramentas do sistema operacional para fazer isso com bastante facilidade. Tente iostat -dm, que imprimirá estatísticas cumulativas de E/S desde a reinicialização do sistema operacional. Aqui está a saída de um dos meus servidores

    $ iostat -dNm
    
    Device:                  tps MB_read/s MB_wrtn/s  MB_read MB_wrtn                                                                        
    mysql_volgrp2-logs     80.13      0.00      1.59      313 2608762                                                                        
    mysql_volgrp1-db      513.05      8.97      6.09 14726683 9988059                                                                        
    mysql_volgrp3-iblogs    1.16      0.00      0.06        2   95082
    

    Para a longevidade do SSD, você só se preocupa com as gravações. Pegue no meu exemplo o volgrp1-db, que registrou 9,9 TB de gravações desde a inicialização do servidor. Também gosto de pegar o MB_wrtn/s, que é uma média desde a inicialização do servidor, e fazer uma conversão de unidade de MB/s para GB/ano.

    Se você é preguiçoso, pode fazer as contas com muita facilidade com uma simples pesquisa no Google. Tente pesquisar " 10000 * 300 GB / 8,97 MB/s " no Google. Isso calculará que uma unidade de 300 GB classificada para 10.000 ciclos de gravação a uma taxa média de gravação de 8,97 MB/s duraria cerca de 10,6 anos.

    • 1

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • 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ê?

  • 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 fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 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

    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
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • 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

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