On this page



Changed in version 4.0: The command can be run on mongos with profile level:

  • 0 to set the slowms and sampleRate for the system log; i.e. you cannot enable the profiler on a mongos.
  • -1 to read the current settings.

For a mongod instance, the command enables, disables, or configures the Database Profiler. The profiler captures and records data on the performance of write operations, cursors, and database commands on a running mongod instance. If the profiler is disabled, the command sets the slowms and sampleRate for logging slow operations to the diagnostic log.

For mongos instance, the command sets the slowms and sampleRate configuration settings, which configure how operations get written to the diagnostic log.

The profiler is off by default.


Profiling can impact performance and shares settings with the system log. Carefully consider any performance and security implications before configuring and enabling the profiler on a production deployment.

See Profiler Overhead for more information on potential performance degradation.

The profile command has the following syntax:

  profile: <level>,
  slowms: <threshold>,
  sampleRate: <rate>
Field Type Description
profile int

Configures the profiler level. The following profiler levels are available:

Level Description
0 The profiler is off and does not collect any data. This is the default profiler level.
1 The profiler collects data for operations that take longer than the value of slowms.
2 The profiler collects data for all operations.

Since profiling is not available on mongos, the profile command cannot be used to set the profiling level to a value other than 0 on a mongos instance.

slowms int

Optional. Default: 100

The slow operation time threshold, in milliseconds. Operations that run for longer than this threshold are considered slow.

When logLevel is set to 0, MongoDB records slow operations to the diagnostic log at a rate determined by slowOpSampleRate. At higher logLevel settings, all operations appear in the diagnostic log regardless of their latency.


This argument affects the same setting as the configuration option slowOpThresholdMs.

sampleRate double

Optional. Default: 1.0

The fraction of slow operations that should be profiled or logged.
sampleRate accepts values between 0 and 1, inclusive.


This argument affects the same setting as the configuration option slowOpSampleRate.

New in version 3.6.

The db.getProfilingStatus() and db.setProfilingLevel() shell methods provide wrappers around the profile command.


The profile command obtains a write lock on the affected database while enabling or disabling the profiler. This is typically a short operation. The lock blocks other operations until the profile command has completed.

See also

Database Profiling.

←   ping serverStatus  →