Primeiro, o criador de perfil está desativado por padrão. Consultas lentas (por padrão, qualquer consulta que tome mais de 100ms, como você mencionou) serão registradas no log do MongoDB, mas isso não é o mesmo que o profiler e não ocupará muitos recursos (basicamente é apenas escrever uma linha de texto para um arquivo fora do DB, sem travamento etc.). Geralmente é seguro deixar isso como está e os benefícios de localizar consultas lentas geralmente superam em muito o lado negativo de ter um arquivo de log maior.
Segundo, quando o criador de perfil é ativado, ele grava todos os dados que coleta na coleção system.profile
. No nível padrão de 0, ele é desabilitado, no nível 1, ele registrará todas as operações "lentas" com base no mesmo limite e, no nível 2, todas as operações serão registradas, independentemente da velocidade.
Como você pode imaginar, tê-lo configurado para 2 é muito intensivo em recursos - você dobraria seu volume de gravação e adicionaria uma gravação para cada leitura. Dependendo da sua carga de trabalho, um nível de 1 também pode ser intensivo. Em geral, eu recomendaria o profiler apenas sob circunstâncias controladas (janela de manutenção, depuração, ambiente de desenvolvimento / QA).
Embora você possa considerar os dois métodos de gravação de operações lentas como completamente sepearate, atualmente, o slowms afetará os dois métodos em termos do que é considerado uma consulta lenta.
Portanto, se você definir o valor mais alto (2 segundos), diminuirá a quantidade de operações gravadas no seu log. A desvantagem disso é que você perderá todas as operações que estão ocupando esse tempo, geralmente consideradas uma eternidade em termos de banco de dados modernos. O valor de 100ms geralmente é um bom começo, e eu até vi pessoas abaixando-o com base em seus requisitos de aplicação em termos de tempos limite, mas é raro aumentar o valor.