概述
如果你的数据库运行缓慢,或者出于某种原因无法响应查询,技术栈中每个依赖数据库的组件都会遭受性能问题。为了保证数据库的平稳运行,你可以主动监控数据库的连接情况。
连接情况
监控客户端连接情况相当重要,因为一旦可用连接耗尽,新的客户端连接就会遭到拒绝。
MySQL 提供了 Threads_connected 指标以记录连接的线程数——每个连接对应一个线程。通过监控该指标与max_connections的连接限制,你可以确保服务器拥有足够的容量处理新的连接。MySQL 还提供了Threads_running 指标,帮助你分隔在任意时间正在积极处理查询的线程与那些虽然可用但是闲置的连接。
如果服务器真的达到 max_connections 限制,它就会开始拒绝新的连接。在这种情况下,Connection_errors_max_connections 指标就会开始增加,同时,追踪所有失败连接尝试的Aborted_connects 指标也会开始增加。
Connection_errors_internal 是个很值得关注的指标,因为该指标只会在错误源自服务器本身时增加。内部错误可能反映了内存不足状况,或者服务器无法开启新的线程。
相关命令
Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数。
以下是查询最大连接数:
可以在/etc/my.cnf里面设置数据库的最大连接数
- [mysqld]
- max_connections = 1000
max_connections 参数用于控制数据库的最大连接数。
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~