Docs Menu
Docs Home
/ /

perfil (comando de base de datos)

profile

Modificado en la versión 5.0.

Para una En la instanciamongod, el comando habilita, deshabilita o configura el generador de perfiles de base de datos. Este generador captura y registra datos sobre el rendimiento de las operaciones de escritura, los cursores y los comandos de base de datos en una instanciamongoden ejecución. Si el generador de perfiles está deshabilitado, el comando configura cómo se registran las operaciones lentas en el registro de diagnóstico.

mongodEn, si el nivel del generador de perfiles de base de datos 2es, se habilita el registro completo en el generador de perfiles y diagnostic log en.

En el nivel del generador de perfiles de base de 1 datos, las siguientes configuraciones modifican tanto el generador de perfiles como diagnostic log el:

Si el nivel del 0 perfilador de base de datos es, este se deshabilita. En el nivel,0 las siguientes configuraciones solo modifican el registro de diagnóstico:

En mongos una instancia, el comando solo configura cómo se escriben las operaciones en el registro de diagnóstico. No se puede habilitar el generador de perfiles de base de datos en una instancia mongos porque mongos no tiene colecciones en las que el generador de perfiles pueda escribir.

A partir de MongoDB,5.0 los cambios realizados en el generador de perfiles de base level deslowms sampleRatedatos,, o filter mediante el profile El comando o el método contenedor se db.setProfilingLevel() registran log file en.

En, puedes mongos establecer profile el nivel en:

  • 0 para establecer slowms, sampleRate y filter para el registro de diagnóstico;

  • -1 para leer la configuración actual.

El generador de perfiles está desactivado de forma predeterminada.

Advertencia

El perfilado puede degradar el rendimiento y exponer datos de la consulta no cifrados en el registro del sistema. Considera detenidamente cualquier implicación de rendimiento y seguridad antes de configurar y activar el perfilador en una implementación de producción.

Consulte Sobrecarga del perfilador para obtener más información sobre la posible degradación del rendimiento.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

db.runCommand(
{
profile: <level>,
slowms: <threshold>,
sampleRate: <rate>,
filter: <filter expression>
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

profile

Int

Configura el nivel del perfilador. Los siguientes niveles de perfilador están disponibles:

0
El perfilador está desactivado y no recopila ningún dato. Este es el nivel por defecto del perfilador.
1

El perfilador recopila datos para operaciones que exceden el umbral slowms o coinciden con un filtro especificado.

Cuando se establece un filtro:

  • Las opciones slowms y sampleRate no se utilizan para el perfilado.

  • El perfilador solo captura las operaciones que coinciden con el filtro.

2

El perfilador recopila datos de todas las operaciones.

Cuando se establece en el nivel 2, el perfilador ignora los valores proporcionados por el usuario para slowms y filter.

Dado que la creación de perfiles no está disponible mongos en,profile no se puede utilizar el comando para establecer el nivel de creación de perfiles en un valor distinto de 0 en una mongos instancia.

slowms

Int

Opcional. Por defecto: 100

El umbral de tiempo de operación lento, en milisegundos. Las operaciones que se ejecutan por más tiempo que este umbral se consideran lentas.

Las operaciones lentas se registran en función de workingMillis, que es la cantidad de tiempo que MongoDB dedica a trabajar en esa operación. Esto significa que factores como la espera de bloqueos y el control de flujo no afectan si una operación supera el umbral de operación lenta.

Cuando logLevel se establece en 0, MongoDB registra las operaciones lentas en el registro de diagnóstico a una tasa determinada por slowOpSampleRate.

Con configuraciones más altas de logLevel, todas las operaciones aparecen en el registro de diagnóstico independientemente de su latencia, con la siguiente excepción: el registro de mensajes de entrada de oplog lentos por parte de los secundarios. Los secundarios solo registran las entradas de oplog lentas; aumentar el logLevel no registra todas las entradas de oplog.

Este argumento afecta la misma configuración que la opción de operationProfiling.slowOpThresholdMs configuración.

sampleRate

doble

Opcional. Por defecto: 1.0

La fracción de operaciones lentas que se deben perfilar o registrar. sampleRate acepta valores entre 0 y,1 inclusive.

Este argumento afecta la misma configuración que la opción de configuración operationProfiling.slowOpSampleRate y no afecta los mensajes de registro de entrada de oplog lento en los secundarios.

filter

Objeto

Opcional. Una consulta que determina qué operaciones se perfilan o registran.

La consulta de filtro toma la siguiente forma:

{ <field1>: <expression1>, ... }

La consulta puede ser cualquier operación legal de find() donde la consulta <field> coincida con un campo en la salida del perfilador.

Este argumento afecta a la misma configuración que la opción.operationProfiling.filter Cuando filter se establece, las slowms sampleRate opciones y no se utilizan para la generación de perfiles ni para las líneas de registro de consultas lentas.

Los db.getProfilingStatus() db.setProfilingLevel() métodos de shell y profile proporcionan envoltorios alrededor del comando.

El comando establece un bloqueo de escritura en la base de datos afectada al habilitar o deshabilitar profile profile el generador de perfiles. Esta operación suele ser breve. El bloqueo bloquea otras operaciones hasta que se complete el comando.

Cuando se conecta a un clúster fragmentado a través mongos de, puede ejecutar el profile comando contra cualquier base de datos.

Tip

Para habilitar la creación de perfiles y filtrar los datos registrados:

db.runCommand(
{
profile: 1,
filter:
{
$or:
[
{ millis: { $gte: 100 } },
{ user: "testuser@admin" }
]
}
}
)

El filtro sólo selecciona las operaciones que son:

  • al menos 100 milisegundos de duración, o

  • enviado por testuser.

Para borrar un filtro de perfil, ejecute profile con la opción filter: "unset".

db.runCommand(
{
profile: 1,
filter: "unset"
}
)

La operación devuelve un documento con los valores anteriores de la configuración.

Para ver el nivel de perfil actual,db.getProfilingStatus() consulte.

Volver

ping

En esta página