十二 InnoDB Lock Structures
InnoDB Lock Structures 表显示了InnoDB内部有多少个锁结构。这应该与当前持有的行锁事务的数量大致相关,并且可能有助于诊断增加的锁争用。对于锁的数量没有严格的规定,但是如果很多事务都在等待锁,显然越少越好。
数据来自显示INNODB状态的行,如下图所示:
十三 InnoDB Log
InnoDB Log Activity graph显示了InnoDB日志活动: the log buffer size, bytes written, flushed, and unflushed。如果事务需要写入日志缓冲区,但是缓冲区不够大或者当前正在被刷新,那么数据库就会夯住。
十四 InnoDB Memory Allocation
InnoDB内存分配图显示了InnoDB的总内存分配,以及额外的池中有多少内存分配(相对于缓冲池)。如果大量内存在附加的内存池中,您可能会怀疑内部数据字典缓存有问题;请参阅上面的更多信息。不幸的是,在标准的InnoDB中,很难知道内存的真正位置。
十五 InnoDB Row Lock Time
该图展示了等待innodb 等待行锁的时间,单位是 milliseconds,来自于Innodb_row_lock_time状态变量
Innodb_row_lock_time:获取InnoDB表的行锁所花费的总时间(以毫秒为单位)
十六 InnoDB Row Lock Waits
显示了InnoDB等待授予行锁的次数。这来自Innodb_row_lock_waits 状态变量。
Innodb_row_lock_waits :InnoDB表上必须等待行锁的次数。
-------------
· Innodb_row_lock_current_waits:InnoDB表上的操作当前等待的行锁的数量。
· Innodb_row_lock_time:获取InnoDB表的行锁所花费的总时间(以毫秒为单位)。
· Innodb_row_lock_time_avg:获取InnoDB表的行锁的平均时间(以毫秒为单位)。
· Innodb_row_lock_time_max:获取InnoDB表的行锁的最大时间(以毫秒为单位)。
· Innodb_row_lock_waits:InnoDB表上的操作必须等待行锁的次数。
十七 InnoDB Row Operations
InnoDB行操作图显示了InnoDB执行的行操作:读取、删除、插入和更新。这些应该大致相当于处理程序统计信息,但是它们可以显示处理程序统计信息中没有反映的内部操作。例如,这些可能包括外键操作。
· Innodb_rows_deleted:从InnoDB表中删除的行数。
· Innodb_rows_inserted:插入到InnoDB表中的行数。
· Innodb_rows_read:从InnoDB表中读取的行数。
· Innodb_rows_updated:InnoDB表中更新的行数。
十八 InnoDB Semaphores
InnoDB信号量图显示了关于InnoDB信号量活动的信息: the number of spin rounds, spin waits, and OS waits.
可能会看到这些图在高并发性或争用期间出现峰值。这些图基本上表示了获取行锁或互斥锁所涉及的不同类型的活动,这些活动在某些情况下会导致糟糕的伸缩性
十九 InnoDB Semaphore Wait Time
InnoDB信号量等待时间图显示了线程等待信号量的时间量,以毫秒为单位
二十 InnoDB Semaphore Waits
InnoDB信号量等待图显示了线程等待信号量的次数
二十一 InnoDB Tables In Use
InnoDB表使用图显示了InnoDB有多少表在使用,有多少表被锁定。如果这些图中有峰值,您可能还会看到锁等待峰值和查询之间的其他竞争迹象。
二十二 InnoDB Transactions
InnoDB事务图显示了InnoDB中的事务信息。
•如何更改内部事务计数器(Trx id计数器)。
•The length of the history list 显示最古老的未清除事务的时间。如果这个值变大,您可能会有保持打开状态很长时间的事务。这意味着InnoDB不能清除旧的行版本。它会因此变得臃肿和缓慢。尽可能快地提交事务
二十三 InnoDB Active/Locked Transactions
InnoDB的活动/锁定事务图显示了InnoDB的事务数:
• active transaction是当前处于打开状态的事务。事务可能处于“未启动”状态,这意味着到MySQL的连接实际上没有打开事务。事务在开始和提交之间是活动的。当查询正在运行时,它也是活动的,尽管它可能由于自动提交而立即提交(如果适用的话)。这个图实际上只是显示了数据库上有多少事务活动正在发生。
•ocked transaction处于锁定等待状态。这通常意味着它正在等待一个行锁,但在某些情况下可能是一个表锁或一个自动增量锁。如果您开始看到锁等待,您需要检查显示INNODB状态,并搜索字符串“lock WAIT”来检查等待的是什么。锁等待可能来自多个来源,包括繁忙表上的过多争用、通过不同索引上的扫描访问数据的查询、或不好的查询模式(如SELECT)。为更新。
•current transactions是所有的事务,不管处于什么状态(ACTIVE, LOCK WAIT, not started, etc)。
•read views open的数量显示了有多少事务具有数据库内容的一致快照,这是通过MVCC实现的。
二十四 MyISAM Indexes
MyISAM索引图显示了对MyISAM索引进行了多少逻辑和物理读写的信息。可能最重要的是物理阅读。逻辑读和物理读之间的比例对监视来说不是很有用。相反,您应该查看每秒物理读取的绝对数量,并将其与磁盘的能力进行比较。(RRDTool将所有数据归一化到以秒为单位,因此这个图的绝对值就是您需要的数字。)
二十五 MyISAM Key Cache
The MyISAM Key Cache graph shows the size of the key buffer, how much of it is used, and how much is unflushed. Memory that isn’t used might not really be allocated; the key buffer isn’t allocated to its full size.