在 Linux 环境下,“慢查询日志”通常不是指 Linux 系统本身的日志,而多见于数据库(如 MySQL、PostgreSQL)或Web 服务(如 Nginx、慢请求)。下面按常见场景说明如何分析慢查询日志。
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW VARIABLES LIKE 'long_query_time';
开启方式(临时):
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 1; -- 超过1秒记录
# Time: 2026-01-21T10:00:00
# User@Host: app[app] @ localhost []
# Query_time: 3.521 Lock_time: 0.001 Rows_sent: 1 Rows_examined: 100000
SELECT * FROM orders WHERE user_id=123;
关键字段:
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
-s t:按时间排序-t 10:前 10 条常用排序:
c:次数t:时间l:锁时间pt-query-digest /var/log/mysql/slow.log
可输出:
log_min_duration_statement = 1000 # 毫秒
logging_collector = on
LOG: duration: 2000.123 ms statement: SELECT * FROM users;
grep duration postgresql.log | sort -n
pgbadger postgresql.log -o report.html
如果你指的是系统变慢,可看:
/var/log/messagesdmesgtop, iostat, vmstat示例:
iostat -x 1
vmstat 1
log_format main '$request_time $upstream_response_time $request';
分析:
awk '{print $1}' access.log | sort -n | tail
如果你能说明是 MySQL / PostgreSQL / Nginx / 系统层面,我可以给你更具体的分析命令和优化建议。