在 Linux 下“慢日志”通常指数据库慢查询日志(如 MySQL、PostgreSQL),也可能是系统/服务响应慢的日志定位。下面按常见场景说明如何定位。
mysql -u root -p -e "SHOW VARIABLES LIKE 'slow_query_log';"
mysql -u root -p -e "SHOW VARIABLES LIKE 'slow_query_log_file';"
mysql -u root -p -e "SHOW VARIABLES LIKE 'long_query_time';"
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1; -- 超过1秒记日志
或永久配置(my.cnf):
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
tail -f /var/log/mysql/slow.log
mysqldumpslow -s t -t 10 /var/log/mysql/slow.log
-s t:按时间排序-t 10:前 10 条logging_collector = on
log_directory = 'log'
log_min_duration_statement = 1000 # 毫秒
tail -f /var/lib/postgresql/data/log/postgresql-*.log
top
htop
uptime
iostat -x 1
ping ip
traceroute ip
journalctl -u nginx --since "10 min ago"
journalctl -u your-service -p err
log_format main '$request_time $upstream_response_time $request';
access_log /var/log/nginx/access.log main;
分析:
awk '{print $1}' /var/log/nginx/access.log | sort -n | tail
如果你能告诉我具体是哪种服务慢(MySQL?Nginx?自定义程序?),我可以直接给你更精确的命令。