Open luamaral93 opened 1 year ago
benchRun({
ops: [
{
op: "insert",
ns: "mydb.mycollection",
doc: {
field1: "value1",
field2: "value2",
// ... outros campos que você deseja inserir
}
}
],
seconds: 10, // por quanto tempo o teste será executado
parallel: 10, // número de threads simultâneos
writeConcern: { j: false } // desativa a confirmação de escrita no journal para melhorar o desempenho
})
var generateDoc = function(num) {
return {
field1: "value1_" + num,
field2: "value2_" + num,
// ... outros campos que você deseja inserir
};
};
benchRun({
ops: [
{
op: "noop",
ns: "mydb.mycollection",
code: function() {
var bulk = db.mycollection.initializeUnorderedBulkOp();
for (var i = 0; i < 50; i++) {
bulk.insert(generateDoc(i));
}
bulk.execute();
}
}
],
seconds: 10, // por quanto tempo o teste será executado
parallel: 10 // número de threads simultâneos
})
Primeiro, crie uma função para gerar os documentos:
db.system.js.save({
_id: "generateDocs",
value: function(num) {
var docs = [];
for (var i = 0; i < num; i++) {
docs.push({
field1: "value1_" + i,
field2: "value2_" + i
});
}
return docs;
}
});
Em seguida, execute o benchmark usando a operação eval
do benchRun
para inserir os documentos:
benchRun({
ops: [
{
op: "eval",
ns: "mydb.mycollection",
code: function() {
var docs = generateDocs(50);
db.mycollection.insertMany(docs);
}
}
],
seconds: 10, // por quanto tempo o teste será executado
parallel: 10 // número de threads simultâneos
})
Usar a ferramenta de benchmarking integrada do MongoDB (
benchRun
) é uma opção poderosa para simular cargas de trabalho específicas, incluindo operaçõesinsertMany
. Aqui está um guia passo a passo sobre como usá-la:Acessar o Shell do MongoDB: Inicie o shell do MongoDB. Se você estiver usando o MongoDB localmente, pode simplesmente executar:
Se estiver se conectando a um cluster remoto, pode ser necessário fornecer as credenciais e o endereço do host.
Defina sua Carga de Trabalho: Crie uma especificação de carga de trabalho (ou um "documento de operações") para
benchRun
. Por exemplo:No exemplo acima, estamos inserindo documentos em
yourDB.yourCollection
. O campox
em cada documento é preenchido com um valor aleatório entre 0 e 1.000.000. Estamos fazendo uma operação de inserção em lote com 1000 documentos por lote.Defina Parâmetros de Execução: Você também pode definir parâmetros como o número total de operações, número de threads, etc. Por exemplo:
Execute
benchRun
: Agora você pode executar sua carga de trabalho com a funçãobenchRun
:Avalie os Resultados: A função
benchRun
retornará um objeto com estatísticas sobre a execução da carga de trabalho, como o número total de operações realizadas, o número de operações por segundo, latências médias, etc.Lembre-se de ajustar os parâmetros de acordo com suas necessidades específicas e o tamanho do ambiente em que está testando. Além disso, recomenda-se testar em um ambiente separado ou não produtivo para evitar afetar a produção com cargas de trabalho intensivas.