Debian 日志可以通过以下方式辅助系统调优:
日志级别设置
- 日志级别:日志分为 Trace、Debug、Info、Warn、Error 这 5 个级别,级别越低日志越重要但量越大。为提升性能,应根据需求合理设置日志级别,避免不必要的详细信息输出。例如,在循环中记录临时变量值可用 Debug 级别,上线后改为 Info 或更高级别以关闭 Debug 日志输出。
同步与异步日志
- 同步日志:业务线程直接写日志,量大时可能导致业务线程阻塞。
- 异步日志:业务线程将日志放入队列,由专门线程统一写入,减少阻塞。但需注意配置,如
discardingThreshold
(队列满时丢弃低级别日志)、queueSize
(队列长度,影响内存)和neverBlock
(队列满时的写操作处理方式)
日志爬栈优化
- 日志配置:某些配置会触发爬栈操作,影响性能。应避免在日志 pattern 中加入文件名、类名、方法名、代码行号等配置,或在 Appender 中配置
includeCallerData
为 true。
使用 journalctl 命令
- 查看所有日志:
journalctl
- 查看某个特定服务的日志:
journalctl -u 服务名称
- 查看某个特定时间范围内的日志:
journalctl --since "2021-01-01" --until "2021-01-31"
分析系统日志文件
- 查看系统日志文件:使用
cat
、less
、grep
等命令查看和分析/var/log
目录下的日志文件,如/var/log/syslog
、/var/log/auth.log
、/var/log/kern.log
等。
MySQL 日志分析
- 错误日志:记录 MySQL 服务器启动、运行或停止时的错误信息,用于排查启动失败、运行时错误等问题。
- 查询日志:记录所有客户端发送到服务器的查询,用于分析用户查询行为,优化数据库性能。
- 慢查询日志:记录执行时间超过设定阈值的查询,用于识别和优化执行缓慢的 SQL 查询。
通过合理设置日志级别、选择同步或异步日志方式、优化日志爬栈配置,以及使用 journalctl
命令查看和分析系统日志,可以有效地辅助 Debian 系统的调优。同时,分析 MySQL 的错误日志、查询日志和慢查询日志,对于优化数据库性能也非常重要。