构建高峻上的MySQL监控平台(3)

#虽然我们也可以修改时间

MariaDB [(none)]> SET GLOBAL long_query_time = 5; Query OK, 0 rows affected (0.00 sec)

然后我们罢了通过sql语言查询MySQL实例中Slow_queries的数量:

MariaDB [(none)]> SHOW GLOBAL STATUS LIKE "Slow_queries"; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Slow_queries | 0 | +---------------+-------+ 1 row in set (0.00 sec)

MySQLD Exporter返回的样本数据中,通过mysql_global_status_slow_queries指标展示当前的Slow_queries的值:

# HELP mysql_global_status_slow_queries Generic metric from SHOW GLOBAL STATUS. # TYPE mysql_global_status_slow_queries untyped mysql_global_status_slow_queries 0

同样的,更具按照Prometheus 慢查询语句我们也可以查询倒他某段时间内的增长率:

rate(mysql_global_status_slow_queries[5m])

毗连数监控

监控客户端毗连环境相当重要,因为一旦可用毗连耗尽,新的客户端毗连就会遭到拒绝。MySQL 默认的毗连数限制为 151。

MariaDB [(none)]> SHOW VARIABLES LIKE 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 151 | +-----------------+-------+

虽然我们可以修改设置文件的形式来增加这个数值。与之对应的就是当前毗连数量,当我们当前毗连出来高出系统配置的最大值之后常会呈现我们看到的Too many connections(毗连数过多),下面我查找一下当前毗连数:

MariaDB [(none)]> SHOW GLOBAL STATUS LIKE "Threads_connected"; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 41 | +-------------------+-------

虽然mysql 还提供Threads_running 这个指标,辅佐你脱离在任意时间正在努力处理惩罚查询的线程与那些固然可用可是闲置的毗连。

MariaDB [(none)]> SHOW GLOBAL STATUS LIKE "Threads_running"; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | Threads_running | 10 | +-----------------+-------+

假如处事器真的到达 max_connections 限制,它就会开始拒绝新的毗连。在这种环境下,Connection_errors_max_connections 指标就会开始增加,同时,追踪所有失败毗连实验的Aborted_connects 指标也会开始增加。

MySQLD Exporter返回的样本数据中:

# HELP mysql_global_variables_max_connections Generic gauge metric from SHOW GLOBAL VARIABLES. # TYPE mysql_global_variables_max_connections gauge mysql_global_variables_max_connections 151

#暗示最大毗连数

# HELP mysql_global_status_threads_connected Generic metric from SHOW GLOBAL STATUS. # TYPE mysql_global_status_threads_connected untyped mysql_global_status_threads_connected 41

#暗示当前的毗连数

# HELP mysql_global_status_threads_running Generic metric from SHOW GLOBAL STATUS. # TYPE mysql_global_status_threads_running untyped mysql_global_status_threads_running 1

#暗示当前活泼的毗连数

# HELP mysql_global_status_aborted_connects Generic metric from SHOW GLOBAL STATUS. # TYPE mysql_global_status_aborted_connects untyped mysql_global_status_aborted_connects 31

#累计所有的毗连数

# HELP mysql_global_status_connection_errors_total Total number of MySQL connection errors. # TYPE mysql_global_status_connection_errors_total counter mysql_global_status_connection_errors_total{error="internal"} 0 #处事器内部引起的错误、如内存硬盘等 mysql_global_status_connection_errors_total{error="max_connections"} 0 #超出毗连处引起的错误

虽然按照prom表达式,我们可以查询当前剩余可用的毗连数:

mysql_global_variables_max_connections - mysql_global_status_threads_connected

查询mysq拒绝毗连数

mysql_global_status_aborted_connects

缓冲池环境:

MySQL 默认的存储引擎 InnoDB 利用了一片称为缓冲池的内存区域,用于缓存数据表与索引的数据。缓冲池指标属于资源指标,而非事情指标,前者更多地用于观测(而非检测)机能问题。假如数据库机能开始下滑,而磁盘 I/O 在不绝攀升,扩大缓冲池往往能带来机能回升。
默认配置下,缓冲池的巨细凡是相对较小,为 128MiB。不外,MySQL 发起可将其扩大至专用数据库处事器物理内存的 80% 巨细。我们可以查察一下:

MariaDB [(none)]> show global variables like 'innodb_buffer_pool_size'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | innodb_buffer_pool_size | 134217728 | +-------------------------+-----------+

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdjdp.html