Contents
  1. 1. 背景
  2. 2. omega:connection视图
  3. 3. omega:thread视图
  4. 4. 总结

背景

  • 什么是omega
1
2
3
4
5
简单说就是一个平台, 运维和运营为一体的智能DB管理平台
所有DB相关的事情都能通过此平台 完成->自助完成->智能完成
目前知道这个就够了,其他的以后慢慢介绍
  • 为什么要介绍omega系统里面的connection
1
2
3
4
5
6
1. 因为我们这边业务使用PHP是主流,短连接非常多,经常会遇到connection和thread的问题,所以关注比较多
2. 另一方面,我们omega系统提供了一套完整的connection和thread监控,但是里面有一些专业术语
很多人并不知道【包括一些DBA自己】
3. 既然不明白里面的参数,那么肯定也就不知道这样的监控有何意义,又有何实战价值,所以稍微普及一下。

omega:connection视图

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)如果这个值逐渐增大,那么说明什么问题呢?

1
2
3
4
a)wait_timeout 超时,mysql自动kill掉连接
b) 客户端由于某些原因被干掉
总之:就是已经创建好了连接,由于某种原因断开掉了。

[abort_connects]

1) 客户端没有创建连接,在尝试建立连接的时候失败了。

2) 如果这个值逐渐增大,有哪些可能的原因呢?

1
2
3
4
5
a) too many connection 已经发生
b) 权限,端口,密码等等错误,导致不能创建连接的情况
c)客户端设置了connect_timeout等造成的连接不上,网络问题。
总之,就是有很多种原因导致没有成功的创建连接

omega:thread视图

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快速定位问题,各位可以尝试下,谁用谁知道。

好了,最后给大家出一个问题思考下:上面第一个截图代表啥意思呢?

Contents
  1. 1. 背景
  2. 2. omega:connection视图
  3. 3. omega:thread视图
  4. 4. 总结

幸福,不在于得到的多

而在于计较的少