QPS:Qeury Per Second 每秒查询次数,顾名思义,数据库一秒钟能响应应用服务器查询的次数,该指标体现数据库吞吐能力,一般生产系统oltp单实例的峰值在2万左右,超过3万需要对实例进行扩容或者业务分拆。
TPS:Transaction Per Second 每秒事务次数,数据库一秒内能处理业务提交事务的次数,操作包含插入,修改,删除操作。一般生产系统oltp业务单实例的峰值在2000左右。可以拆分为Insert Per Second,Update Per Second,Delete Per Second指标。
数据库连接数是指数据库在某个时刻所有线程数,包括活跃线程和非活跃线程数,一般生产系统oltp业务单实例的峰值在2000左右。若是再大话,会耗费数据库资源,管理每个线程是需要数据库物理资源,增加上下文连接时间。
活跃线程数是指线程状态不是Sleep状态,一般不要超过50个,该指标耗费极大的cpu,内存,io资源,是最重要的指标,若是经常超过50个,需要对sql进行优化。若是sql是最优的,需要对业务进行分库分表操作,分拆到不同的实例,进行横向扩展。
非活跃连接数是指线程状态是Sleep状态的线程数。
数据库慢查询语句耗费所有时间,在一个统计周期内(例如,一天时间),所有超过1秒的查询时间的求和,数据库慢查询语句的个数是不同sql个数相加,相同sql语句,只是更改查询的值,属于同一个sql,只是统计一次。
数据库服务器资源负载,是指CPU,内存,IO,网卡等资源的使用率,cpu可以通过top,sar –u和sar –d来查看;内存可以通过free –m和vmstat 查看,一般内存使用率不超过90%;io可以通过iostat –x 和iotop来查看,一般使用率不超过90%。网卡通过netstat –i进行查看。由于数据库是io密集类型应用,需要重点关注各个指标。Java等应用服务可以不关注io指标。除了单独监控上面指标外,还可以对load1,load5,load15进行监控,这三个指标是服务综合资源在1分钟内,5分钟内,15分钟内平均负载,若是负载超过15的话,则进行报警。
grafana的好处是整合了db性能指标和数据库性能指标,可以及时看出关联关系。如下图,qps,tps,活跃连接数,服务器负载,网卡,io,都在一个界面上面。