背景
- 什么是omega
简单说就是一个平台, 运维和运营为一体的智能DB管理平台
所有DB相关的事情都能通过此平台 完成->自助完成->智能完成
目前知道这个就够了,其他的以后慢慢介绍
- 为什么要介绍omega系统里面的connection
1. 因为我们这边业务使用PHP是主流,短连接非常多,经常会遇到connection和thread的问题,所以关注比较多
2. 另一方面,我们omega系统提供了一套完整的connection和thread监控,但是里面有一些专业术语
很多人并不知道【包括一些DBA自己】
3. 既然不明白里面的参数,那么肯定也就不知道这样的监控有何意义,又有何实战价值,所以稍微普及一下。
omega:connection视图
- 官方解释
name | desc |
---|---|
Connections | The number of connection attempts (successful or not) to the MySQL server |
abort_clients | The number of connections that were aborted because the client died without closing the connection properly |
abort_connects | The number of failed attempts to connect to the MySQL server |
官方的东东,比较拗口,我知道你看不懂,所以看下面的实战。
- 实战意义
以上三个参数都是累积值,omega里面的单位平均每秒多少多少
[Connections]
重点一:表示一分钟内平均尝试连接到mysql server的次数。
重点二:这里面的连接数包括成功的连接,也包括失败的连接,大部分人这里不是很清楚。
[abort_clients]
1)客户端已经成功创建连接,但是后来断开了。
2)如果这个值逐渐增大,那么说明什么问题呢?
a)wait_timeout 超时,mysql自动kill掉连接
b) 客户端由于某些原因被干掉
总之:就是已经创建好了连接,由于某种原因断开掉了。
[abort_connects]
1) 客户端没有创建连接,在尝试建立连接的时候失败了。
2) 如果这个值逐渐增大,有哪些可能的原因呢?
a) too many connection 已经发生
b) 权限,端口,密码等等错误,导致不能创建连接的情况
c)客户端设置了connect_timeout等造成的连接不上,网络问题。
总之,就是有很多种原因导致没有成功的创建连接
omega:thread视图
- 官方解释
name | desc |
---|---|
threads_connected | The number of currently open connections. |
threads_running | The number of threads that are not sleeping. |
threads_sleep | 我自己yy的,意思是The number of threads that are sleeping. |
- 实战意义
以上三个值是瞬间值
[threads_connected]
show processlist里面看到的数量就是这个值
[threads_running]
非sleep的连接,如果这个值非常高,说明SQL卡住了或者SQL非常慢,高并发的SQL非常多,通常伴随着cpu,io非常高等特点
[threads_sleep]
sleep的连接,就是该thread不干任何事,一旦这样的数值特别大,说明某些业务哪里占了连接不释放,或者其他服务缓慢有问题,导致链接不释放,一般我们的做法就是让MySQL自动关闭这样的连接,保护数据库。
总结
至此,上面的参数和status解释完毕,上面状态的各种组合常常能够反映出各种问题,可以帮助DBA快速定位问题,各位可以尝试下,谁用谁知道。
好了,最后给大家出一个问题思考下:上面第一个截图代表啥意思呢?