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 / 83680
Accepted
King Roger
King Roger
Asked: 2014-11-27 01:55:06 +0800 CST2014-11-27 01:55:06 +0800 CST 2014-11-27 01:55:06 +0800 CST

O MongoDB falha com o erro SymInitialize, a menos que haja um arquivo de página muito grande no Windows

  • 772

Gostaria de saber se alguém pode ajudar com um problema de MongoDB/arquivo de página que parecemos ter à medida que nosso banco de dados aumenta de tamanho com o tempo. De vez em quando, o MongoDB falhará em um nó específico em nosso conjunto de réplicas e não será iniciado novamente até que aumentemos significativamente (o dobro é seguro) nosso tamanho de arquivo de página. Atualmente, o arquivo de paginação é de 42 GB. Estamos executando o MongoDB como um conjunto de réplicas de 3 nós e cada nó está sendo executado em uma máquina virtual do Windows Server 2012 R2 no Azure. Cada servidor tem 3,5 GB de memória. MongoDB é a versão 2.6.5.

Eu vi as postagens abaixo, que estão relacionadas, e entendo que o MongoDB usa arquivos mapeados pela memória e, presumivelmente, a memória virtual ajuda nisso quando não temos muita RAM. O que não entendo é:

Por que o MongoDB requer tanta memória na inicialização (arquivo de paginação > 32 GB para um banco de dados de 131 GB) e com um conjunto de trabalho relativamente pequeno (~ 100 MB)? Presumivelmente, ele pode trocar os arquivos conforme necessário, especialmente com um arquivo de página tão grande, então por que o MongoDB está travando?

Aqui estão os posts que encontrei até agora:

o uso de memória mongodb está alto, mesmo que apenas inserções sejam feitas

e este

SERVER-10044, que explica por que o Mongo trava e sugere que as VMs são piores

Agradecemos antecipadamente por qualquer ajuda.

Para fornecer mais contexto, estamos usando o MongoDB para registrar dados, portanto, a maioria das coleções é gravada, mas raramente lida, com exceção de algumas pequenas coleções (total de 100 MB) que estão sujeitas a leituras e gravações constantes. Os dados são armazenados em um único banco de dados Mongo DB, cujas estatísticas são mostradas abaixo (db e nomes de coleção modificados):

    "db" : "MyDatabase",
    "collections" : 854,
    "objects" : 243025868,
    "avgObjSize" : 541.2304596809423,
    "dataSize" : 131533002252,
    "storageSize" : 172592721920,
    "numExtents" : 7268,
    "indexes" : 1934,
    "indexSize" : 27824138048,
    "fileSize" : 210284576768,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
            "major" : 4,
            "minor" : 5
    },
    "extentFreeList" : {
            "num" : 3,
            "totalSize" : 110592
    },
    "ok" : 1

O conjunto de trabalho parece estar em torno da marca de 100 MB, conforme ilustrado abaixo:

   "workingSet" : {
           "note" : "thisIsAnEstimate",
           "pagesInMemory" : 20874,
           "computationTimeMicros" : 26236,
           "overSeconds" : 876
   },

A saída do arquivo de log no secundário que falhou mais recentemente é a seguinte (isso ocorreu durante a inicialização, embora a primeira vez que falhou tenha sido durante a operação normal):


2014-11-25T09:25:17.833+0000 [rsBackgroundSync] replSet syncing to: 10.1.6.71:27017 2014-11-25T09:25:17.833+0000 [rsBackgroundSync] replset setting syncSourceFeedback to 10.1.6.71:27017 1-2014 25T09:25:17.849+0000 [rsSync] replSet ainda sincronizando, ainda não para minValid optime 54744561:c 2014-11-25T09:25:18.286+0000 [rsSync] replSet SECONDARY 2014-11-25T09:26:01.590+0000 [ conn21] serverStatus estava muito lento: { após basic: 0, após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters : 0, após bloqueios: 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog: 10451, após recordStats: 10451, após repl: 10451, no final: 10451 } 2014-11-25T09:26 :01.590+0000 [conn21] comando admin.$cmd comando:serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] liberando mmaps levou 15022ms para 115 arquivos 2014- 11-25T09:26:47.501+0000 [conn5] serverStatus estava muito lento: { após basic: 0, após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info : 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog: 4791, após recordStats: 4791, após repl: 4791, no final : 4791 } 2014-11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] os mmaps de descarga levaram 15022ms para 115 arquivos 2014-11-25T09: 26:47.501+0000 [conn5] serverStatus estava muito lento: { após basic: 0, após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog: 4791, após recordStats: 4791, após repl: 4791, no final: 4791 } 2014 -11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11 -25T09:27:06.350+0000 [repl escritor trabalhador 6]1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] os mmaps de descarga levaram 15022ms para 115 arquivos 2014-11-25T09: 26:47.501+0000 [conn5] serverStatus estava muito lento: { após basic: 0, após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog: 4791, após recordStats: 4791, após repl: 4791, no final: 4791 } 2014 -11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11 -25T09:27:06.350+0000 [repl escritor trabalhador 6]0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] a descarga de mmaps levou 15022ms para 115 arquivos 2014-11-25T09:26:47.501+0000 [conn5] serverStatus era muito slow: { após basic: 0, após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios : 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog: 4791, após recordStats: 4791, após repl: 4791, no final: 4791 } 2014-11-25T09:26:47.501+0000 [ conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer trabalhador 6]0 locks(micros) r:65 reslen:4028 16764ms 2014-11-25T09:26:31.155+0000 [DataFileSync] a descarga de mmaps levou 15022ms para 115 arquivos 2014-11-25T09:26:47.501+0000 [conn5] serverStatus era muito slow: { após basic: 0, após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios : 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog: 4791, após recordStats: 4791, após repl: 4791, no final: 4791 } 2014-11-25T09:26:47.501+0000 [ conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer trabalhador 6]155+0000 [DataFileSync] limpeza de mmaps levou 15022ms para 115 arquivos 2014-11-25T09:26:47.501+0000 [conn5] serverStatus estava muito lento: { depois de básico: 0, depois de asserts: 0, depois de backgroundFlushing: 0, depois de conexões : 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog : 4791, após recordStats: 4791, após repl: 4791, no final: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates :0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]155+0000 [DataFileSync] limpeza de mmaps levou 15022ms para 115 arquivos 2014-11-25T09:26:47.501+0000 [conn5] serverStatus estava muito lento: { depois de básico: 0, depois de asserts: 0, depois de backgroundFlushing: 0, depois de conexões : 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, após opcounters: 0, após opcountersRepl: 0, após oplog : 4791, após recordStats: 4791, após repl: 4791, no final: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates :0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, after opcounters: 0, after opcountersRepl: 0, after oplog: 4791, after recordStats: 4791, after repl: 4791, at end: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] command admin.$cmd command : serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]após asserts: 0, após backgroundFlushing: 0, após conexões: 0, após cursores: 0, após dur: 0, após extra_info: 0, após globalLock: 0, após indexCounters: 0, após bloqueios: 0, após rede: 0, after opcounters: 0, after opcountersRepl: 0, after oplog: 4791, after recordStats: 4791, after repl: 4791, at end: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] command admin.$cmd command : serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]após repl: 4791, no final: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros ) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]após repl: 4791, no final: 4791 } 2014-11-25T09:26:47.501+0000 [conn5] comando admin.$cmd comando: serverStatus { serverStatus: 1, oplog: 1 } keyUpdates:0 numYields:0 locks(micros ) r:88 reslen:4028 7674ms 2014-11-25T09:27:06.350+0000 [repl writer worker 6]VirtualProtect para m:/mongodb/data/MyDatabase.72 chunk 21220 falhou com errno:1455 O arquivo de paginação é muito pequeno para esta operação ser concluída. (tamanho do bloco é 67108864, endereço é 14b90000000) em mongo::makeChunkWritable, terminando 2014-11-25T09:27:06.350+0000 [repl writer worker 6] MyDatabase.RC_PUR_11_456754 Fatal Assertion 16362 2014-11-275:09. 0000 [repl writer worker 6] Falha no rastreamento de pilha, SymInitialize falhou com o erro 3765269347 2014-11-25T09:27:06.615+0000 [repl writer worker 6] MyDatabase.RC_PUR_11_456754 2014-11-25T09:27:06.615+0000 [repl writer trabalhador 6]

*** abortando após falha fassert ()

mongodb virtualisation
  • 1 1 respostas
  • 1016 Views

1 respostas

  • Voted
  1. Best Answer
    alernerdev
    2014-11-30T06:39:40+08:002014-11-30T06:39:40+08:00

    No Windows, na pior das hipóteses, o tamanho do arquivo de paginação pode ter que ser definido como o tamanho dos arquivos de dados + tamanho da memória física. Portanto, se seus arquivos de dados ocupam 50 GB em disco, a orientação aproximada, no seu caso, é definir o tamanho do arquivo de paginação para 53,5 GB. Isso melhorará com o lançamento do MongoDB 2.8, pois o novo mecanismo de armazenamento não depende de serviços de memória virtual fornecidos pelo sistema operacional. Em um assunto relacionado, seu tamanho de memória de 3,5 GB parece muito baixo. Dê uma olhada nas Hard Page Faults por segundo no Resource Monitor - se o número estiver em centenas, você precisa aumentar drasticamente o tamanho da memória

    • 1

relate perguntas

  • Mongo Map-Reduce ou Sharding?

  • Configurando o Mongo com clustering

  • Diferença entre as chamadas find e findone do MongoDB

  • A fragmentação é eficaz para coleções pequenas?

  • Bons recursos para operar/administrar o MongoDB

Sidebar

Stats

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

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

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

    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
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • 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
    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