
:
性能优化金字塔法则
标准错误输出中(error log),innodb_status_output 和 innodb_status_output_locks 系
统变量分别用于启用标准 InnoDB Monitor 和 InnoDB Lock Monitor。例如:
# 启用/禁用 标准 InnoDB Monitor,通过将 innodb_status_output 系统变量设置为 ON 来启用,设置为 OFF
来禁用
SET GLOBAL innodb_status_output = ON/OFF;
# 启用/禁用 InnoDB Lock Monitor(InnoDB Lock Monitor 使用 InnoDB Standard Monitor 输出打印,
必须启用 InnoDB 标准 Monitor 和 InnoDB Lock Monitor 才能定期打印 InnoDB Lock Monitor 数据)
SET GLOBAL innodb_status_output = ON/OFF;
SET GLOBAL innodb_status_output_locks = ON/OFF;
# 注,如果要在使用 SHOW ENGINE INNODB STATUS 时输出 InnoDB Lock Monitor 数据,只需启用
innodb_status_output_locks=ON 即可(无需启用 innodb_status_output = ON)
可以将标准 InnoDB Monitor 输出定向到状态文件
在启动 Server 时指定--innodb-status-file 选项,可以将标准 InnoDB Monitor 输出
并将其定向到状态文件中。使用此选项时,InnoDB 会在数据目录中创建一个名
为 innodb_status.pid(pid 为 MySQL Server 的进程号)的文件,并每隔 15 秒将
输出写入其中。当 Server 正常关闭时,InnoDB 会删除状态文件。但如果发生异
常关闭,则可能未成功删除该文件,需要手动删除。
PS:--innodb-status-file 选项是用于临时使用的,启用监控状态会影响性能,另
外,使用完之后需要及时关闭,否则 innodb_status.pid 文件会随着时间的推移变
得非常大
使用如下语句登录到数据库中执行查询
root@localhost : (none):26: > show engine innodb status\G;
*************************** 1. row ***************************
Type: InnoDB
Name:
Status:
=====================================
2018-05-25 23:28:20 0x7f1e1c242700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 49 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 7716 srv_active, 0 srv_shutdown, 36436 srv_idle
srv_master_thread log flush and writes: 0
----------
SEMAPHORES
----------
......
PS:
除了使用系统配置参数来启用定期输出之外,也可以使用计划任务结合 SHOW
ENGINE INNODB STATUS 语句来定期获取 InnoDB Monitor 输出
评论