Dan*_*ott 8 mysql innodb mysql-5.6
我有一个 MySQL 5.6 服务器,我们使用 Nagios 对其进行监控。
上周末,它开始抱怨 Innodb_row_lock_current_waits,当前值为 18446744073709551615,是的,超过 10^19!据我了解,这个值是当前行锁的数量。基本上,我不相信,这个数字太大了?
正如 Phil 所指出的,这个数字是 2^64 - 1,所以现在我的问题是:为什么 MySQL 返回这个数字,它一定是某种溢出/错误代码。
MySQL 5.6.14 有一个关于此的开放错误报告
\n\nBug #71520 不断增加 Innodb_row_lock_current_waits 值
\n\n从错误报告中,记下此条目
\n\n\n\n\n[2015年6月25日 6:58] 谢振业 在我的环境中,我得到了一个奇怪的\n值。(-1 作为 uint64)
\n\nRun Code Online (Sandbox Code Playgroud)\n\nmysql> show status where Variable_name = \'Innodb_row_lock_current_waits\';\n\n+-------------------------------+----------------------+\n| Variable_name | Value |\n+-------------------------------+----------------------+\n| Innodb_row_lock_current_waits | 18446744073709551615 |\n+-------------------------------+----------------------+\n1 row in set (0.06 sec)\n
在lock0wait.cc中,srv_stats.n_lock_wait_current_count.inc() srv_stats.n_lock_wait_current_count.dec(); 不是线程安全的。\n srv_stats 是一个全局变量,但它只有一个对 trx 的锁定\n 围绕更改值。
\n
你说得对it must be an overflow/error code of some sort
截至今年 6 月 14 日,MySQL 5.7.11 中可能存在也可能不存在此问题
\n\n\n\n[6 月 14 日 9:55] A\xcc\x81ngel 或 早上好,
\n\n我在 MySQL 5.7.11-log 中看到了这一点:
\n\nRun Code Online (Sandbox Code Playgroud)\nmysql> show status like \'%Innodb_row_lock_current%\';\n\n+-------------------------------+-------+\n| Variable_name | Value |\n+-------------------------------+-------+\n| Innodb_row_lock_current_waits | 45 |\n+-------------------------------+-------+\n1 row in set (0.00 sec)\n\nmysql> select count(*) from information_schema.innodb_lock_waits;\n\n+----------+\n| count(*) |\n+----------+\n| 0 |\n+----------+\n1 row in set (0.00 sec)\n\nmysql> select version();\n+------------+\n| version() |\n+------------+\n| 5.7.11-log |\n+------------+\n1 row in set (0.00 sec)\n
归档时间: |
|
查看次数: |
877 次 |
最近记录: |