MySQL InnoDB监控

默北 MySQLMySQL InnoDB监控已关闭评论16,7713字数 1925阅读6分25秒阅读模式

innodb引擎在生产环境下大量使用。监控数据库状态是一项日常维护常规工作。通过监控,我们可以知晓数据库状态趋势,预防问题,未雨绸缪,有备无患。nagios&cacti mysql监控
1. 查看表状态

mysql> show table status like "unitid"\G
           Name: unitid			表名
         Engine: InnoDB			表引擎
        Version: 10				表格式文件版本
     Row_format: Compact		表压缩格式Compact、Redundant、Dynamic、Compressed
           Rows: 2				表行数,近似于select count(*) from table
 Avg_row_length: 8192			平均行数	
    Data_length: 16384			数据文件长度
Max_data_length: 0				能够存储在数据文件的数据的最大长度
   Index_length: 0				索引文件长度
      Data_free: 0				可用的字节
 Auto_increment: NULL
    Create_time: 2013-08-28 11:25:19
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)

2. 查询INFORMATION_SCHEMA相关表
mysql服务器运行状态信息存储在INFORMATION_SCHEMA库中。与innodb相关的信息有:
1. INNODB_CMP 包含数据格式化压缩操作信息
2. INNODB_CMP_RESET 该表包含的信息与INNODB_CMP相同,不过,具有基于计数器功能的指标表,每次读操作都会截断数据。
3. INNODB_TRX 该表包含有关当前正在执行事务的详细信息。是对innodb事务进行监测的最有用的查询分析表。
4. INNODB_LOCK_WAITS 包含事务当前正在等待的锁信息,用来查看不同事务间锁定关系。文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

3. 全局变量文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

SHOW GLOBAL VARIABLES LIKE 'innodb%';

4. 全局状态文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

SHOW GLOBAL STATUS LIKE 'innodb%';

5. innodb统计分析
5.1 Innodb_buffer_pool_pages比率
Innodb_buffer_pool_pages_free/Innodb_buffer_pool_pages_total
5.2 innodb数据大小文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

SELECT SUM(DATA_LENGTH) AS Value FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='innodb';

5.3 innodb索引大小文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

SELECT SUM(INDEX_LENGTH) AS Value FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='innodb';

5.4 innodb_buffer_pool_size最小大小
innodb_index_size + innodb_data_size
5.5 mysql内存使用情况
每线程buffer大小 = (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) * max_connections
每线程最大buffer大小 = (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) * Max_used_connections
全局buffer大小 = innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + key_buffer_size + query_cache_size
最大内存分配 = global_buffers + per_thread_max_buffers
允许分配的总内存 = global_buffers + per_thread_buffers
mysql使用的系统RAM百分比 = (total_memory_allocation_allowed* 100) / os_mem_total文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

6. 统计innodb和myisam表的数据和索引大小以及百分比
innodb

如需转载请注明出处:https://www.ttlsa.com/html/2964.html文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/ 文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-innodb-monitoring/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 12/09/2013 14:58:29
  • 转载请务必保留本文链接:https://www.ttlsa.com/mysql/mysql-innodb-monitoring/