Recentemente, mudei meu banco de dados do MS Sql Server para o MongoDB (2.0) no Windows Server 2008. Ele contém dois bancos de dados com as seguintes estatísticas. (os dois bancos de dados recebem cerca de 100 leituras / gravações por segundo). Essas gravações são executadas por um aplicativo .Net em execução no mesmo servidor de banco de dados.
> db.stats()
{
"db" : "FirstDB",
"collections" : 112,
"objects" : 94020788,
"avgObjSize" : 62.86065307174409,
"dataSize" : 5910208136,
"storageSize" : 14340792320,
"numExtents" : 1277,
"indexes" : 110,
"indexSize" : 4279800784,
"fileSize" : 27837595648,
"nsSizeMB" : 16,
"ok" : 1
}
> db.stats()
{
"db" : "SecondDB",
"collections" : 10,
"objects" : 2926198,
"avgObjSize" : 158.5025346883567,
"dataSize" : 463809800,
"storageSize" : 720027648,
"numExtents" : 49,
"indexes" : 8,
"indexSize" : 115248896,
"fileSize" : 2080374784,
"nsSizeMB" : 16,
"ok" : 1
}
Descobri que o MongoDB pode armazenar todos os meus dados com a velocidade necessária de leitura / gravação. Agora preciso de assistência de especialistas para reforçar a confiabilidade da configuração do meu servidor único (aplicativo DB +);
Mas, durante um período de 1 mês, experimentei seguir os problemas do MongoDB-On-Windows;
- Desligamento inesperado resultante de coleções corrompidas
- O MongoDB não libera espaço em disco para objetos excluídos (atualmente é de cerca de 28 GB e está crescendo)
- Número aumentado de falhas de página
- Não há controle sobre os dados na RAM (não é possível pré-carregar os dados necessários na RAM e removê-los depois de alguns minutos)
- Erros freqüentes no banco de dados, como: não é possível ler dados da conexão de transporte ...
Qual seria a melhor configuração de resgate para mim em Reliability / Backup / Performance;
- Mova o MongoDB para o Linux (desde que meu aplicativo .Net usando esse banco de dados residirá no Windows Server dentro da mesma LAN)? OU
- Configurar uma réplica de 2 servidores configurada com o Master no Windows e no Slave no Linux? OU
- O que você sugere ...?
Editar-1:
> db.serverStatus()
{
"host" : "OWNEROR-GTPD0H9",
"version" : "2.2.2",
"process" : "mongod",
"pid" : 5972,
"uptime" : 2246315,
"uptimeMillis" : NumberLong("2246314871"),
"uptimeEstimate" : 1418073,
"localTime" : ISODate("2013-02-01T18:20:48.371Z"),
"locks" : {
"." : {
"timeLockedMicros" : {
"R" : NumberLong(1009609910),
"W" : NumberLong("41166641284")
},
"timeAcquiringMicros" : {
"R" : NumberLong("233444382285"),
"W" : NumberLong("26675293061")
}
},
"admin" : {
"timeLockedMicros" : {
"r" : NumberLong("20598738435"),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong("681905051780"),
"w" : NumberLong(0)
}
},
"local" : {
"timeLockedMicros" : {
"r" : NumberLong(7054206),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(323140436),
"w" : NumberLong(0)
}
},
"FirstDB" : {
"timeLockedMicros" : {
"r" : NumberLong("40372661580"),
"w" : NumberLong("54059509747")
},
"timeAcquiringMicros" : {
"r" : NumberLong("769458843030"),
"w" : NumberLong("357708107433")
}
},
"SecondDB" : {
"timeLockedMicros" : {
"r" : NumberLong("25053503869"),
"w" : NumberLong("395081595504")
},
"timeAcquiringMicros" : {
"r" : NumberLong("69429086729"),
"w" : NumberLong("9163194312205")
}
}
},
"globalLock" : {
"totalTime" : NumberLong("2246314871000"),
"lockTime" : NumberLong("41166641284"),
"currentQueue" : {
"total" : 54,
"readers" : 52,
"writers" : 2
},
"activeClients" : {
"total" : 2,
"readers" : 0,
"writers" : 2
}
},
"mem" : {
"bits" : 64,
"resident" : 69,
"virtual" : 34059,
"supported" : true,
"mapped" : 16793,
"mappedWithJournal" : 33586
},
"connections" : {
"current" : 114,
"available" : 19886
},
"extra_info" : {
"note" : "fields vary by platform",
"page_faults" : 631285910,
"usagePageFileMB" : 6848,
"totalPageFileMB" : 49132,
"availPageFileMB" : 34274,
"ramMB" : 24567
},
"indexCounters" : {
"note" : "not supported on this platform"
},
"backgroundFlushing" : {
"flushes" : 37430,
"total_ms" : 86130745,
"average_ms" : 2301.115281859471,
"last_ms" : 3853,
"last_finished" : ISODate("2013-02-01T18:19:49.233Z")
},
"cursors" : {
"totalOpen" : 227,
"clientCursors_size" : 227,
"timedOut" : 125,
"totalNoTimeout" : 226
},
"network" : {
"bytesIn" : 46807928165,
"bytesOut" : 24400717839,
"numRequests" : 462799358
},
"opcounters" : {
"insert" : 92590009,
"query" : 92755757,
"update" : 183285338,
"delete" : 7489,
"getmore" : 1004,
"command" : 94208472
},
"asserts" : {
"regular" : 0,
"warning" : 0,
"msg" : 0,
"user" : 97431,
"rollovers" : 0
},
"writeBacksQueued" : false,
"dur" : {
"commits" : 17,
"journaledMB" : 0.139264,
"writeToDataFilesMB" : 0.033338,
"compression" : 2.2571516556184057,
"commitsInWriteLock" : 0,
"earlyCommits" : 0,
"timeMs" : {
"dt" : 3291,
"prepLogBuffer" : 0,
"writeToJournal" : 8,
"writeToDataFiles" : 1,
"remapPrivateView" : 38
}
},
"recordStats" : {
"accessesNotInMemory" : 3942359,
"pageFaultExceptionsThrown" : 15956,
"FirstDB" : {
"accessesNotInMemory" : 163718,
"pageFaultExceptionsThrown" : 6931
},
"SecondDB" : {
"accessesNotInMemory" : 3778641,
"pageFaultExceptionsThrown" : 9025
},
"admin" : {
"accessesNotInMemory" : 0,
"pageFaultExceptionsThrown" : 0
},
"local" : {
"accessesNotInMemory" : 0,
"pageFaultExceptionsThrown" : 0
}
},
"ok" : 1
}