logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

dbslower - Trace MySQL/PostgreSQL server queries slower than a threshold.

Author

       Sasha Goldshtein, Brendan Gregg

Description

       This traces queries served by a MySQL or PostgreSQL server, and prints those that exceed a latency (query
       time) threshold. By default a threshold of 1 ms is used.

       This  uses  User  Statically-Defined  Tracing  (USDT) probes, a feature added to MySQL and PostgreSQL for
       DTrace support, but which may not be enabled on a given installation. See  requirements.   Alternatively,
       MySQL queries can be traced without the USDT support using the -x option.

       Since this uses BPF, only the root user can use this tool.

Examples

       Trace MySQL server queries slower than 1 ms:
              # dbslowermysql

       Trace slower than 10 ms for PostgreSQL in process 408:
              # dbslowerpostgres-p408-m10

Fields

       TIME(s)
              Time of query start, in seconds.

       PID    Process ID of the traced server.

       MS     Milliseconds for the query, from start to end.

       QUERY  Query string, truncated to 256 characters.

Name

       dbslower - Trace MySQL/PostgreSQL server queries slower than a threshold.

Options

       -h Print usage message.

       -p PID Trace this PID. If no PID is specified, the tool will attempt to automatically detect the MySQL or
              PostgreSQL processes running on the system.

       -x PATH
              Path  to  MySQL binary. This option allow to MySQL queries even when USDT probes aren't enabled on
              the MySQL server.

       -m THRESHOLD
              Minimum query latency (duration) to trace, in milliseconds. Default is 1 ms.

       {mysql,postgres}
              The database engine to trace.

Os

       Linux

Overhead

       This adds low-overhead instrumentation to queries, and only emits output data from kernel  to  user-level
       if  they  query  exceeds  the threshold. If the server query rate is less than 1,000/sec, the overhead is
       expected to be negligible. If the query rate is higher, test to gauge overhead.

Requirements

       CONFIG_BPF, bcc, and MySQL server with USDT probe support (when configuring the build: -DENABLE_DTRACE=1)
       or PostgreSQL server with USDT probe support (when configuring the build: --enable-dtrace).

See Also

biosnoop(8), mysqld_qslower(8), dbstat(8)

USER COMMANDS                                      2017-02-15                                        dbslower(8)

Source

       This is from bcc.

              https://github.com/iovisor/bcc

       Also look in the bcc distribution for a companion _examples.txt file containing  example  usage,  output,
       and commentary for this tool.

Stability

       Unstable - in development.

Synopsis

dbslower[-v][-pPID[PID...]][-xPATH][-mTHRESHOLD]{mysql,postgres}

See Also