zabbix监控Mysql中的QPS/TPS
今天我们来了解一下如何通过zabbix监控来监控我们msyql数据库中的TPS和QPS,提到这两个概念,我们先来了解究竟什么是QPS,TPS呢?它们是如何计算得到的呢?我们来看一下
QPS(Questions Per second:):每秒查询处理量,表示每秒能处理多少次请求,这里是指是Mysql每秒处理查询数,同时适用于InnoDB和MysqlSAM引擎
如何计算得到呢并计算QPS呢?
很简单,通过"msyqladmin status" 就是先获取到Questions和uptime对应的数值,随后通过Questions/Uptime即可获取
question=mysqladmin status |awk '{print $6}
uptime= mysqladmin status |awk '{print $2}'
QPS=question/uptime


TPS(Transactions Per Second)
每秒处理事务数,简单的来说就是数据库传输事务处理个数,这是指单台数据库服务器在单位时间内处理的事务的个数。 ,支持事务的存储引擎如InnoDB等特性指标
基于com_commit和com_rollback相加并除以uptim计算出TPS
rollback=mysqladmin extended-status | awk '/\<Com_rollback\>/{print $4}'
commit=mysqladmin extended-status | awk '/\<Com_commit\>/{print $4}'
tps=(com_rollback+com_commit)/uptime
ok~知道如何计算QPS和TPS之后,就好办了,我们将其写成脚本,在这里直接用shell即可
# mkdir /usr/local/zabbix/script -p
vim /usr/local/zabbix/script/monitor.sh
#!/bin/bash
#Script time:--
#Contact information Email:m18810455501@.com
Uptime=`mysqladmin status | awk '{print $2}'`
QPS() {
Questions=`mysqladmin status | awk '{print $6}'`
awk 'BEGIN{printf "%.2f\n",'$Questions'/'$Uptime'}'
}
#TPS
TPS() {
rollback=`mysqladmin extended-status | awk '/\<Com_rollback\>/{print $4}'`
commit=`mysqladmin extended-status | awk '/\<Com_commit\>/{print $4}'`
awk 'BEGIN{printf "%.2f\n",'$(($rollback+$commit))'/'$Uptime'}'
}
$
# chmod 755 -R /usr/local/zabbix/script/monitor.sh
# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/performance.conf
UserParameter=mysql.status[*],/usr/local/zabbix/script/monitor.sh "$1"
# egrep -v "#|^$" /usr/local/zabbix/etc/zabbix_agentd.conf #zabbix-agent配置如下
LogFile=/tmp/zabbix_agentd.log
Server=192.168.2.129
ServerActive=192.168.2.129
Hostname=192.168.2.144
Timeout=8
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/performance.conf
Server端测试:可以获取key值

【添加监控项】







上述便是QPS和TPS监控值状态,因为是自己测试,没有太多事务查询和事务处理量,所以,监控值很小
思路总结:
1)首先我们的zabbix是没有监控mysql这些性能指标的,因此我们要自定义,我们要通过mysql status获取到Quetions和uptime的的数值计算出QPS,随后我们在获取commit和rollback的的数值相加在除以uptime的的时间值,这样既能获取QPS和TPS的每秒事务查询数和处理数
2)写入脚本定义在key值(在UserParameter中定义)
3)模板创建
zabbix监控Mysql中的QPS/TPS的更多相关文章
- 使用zabbix监控mysql的三种方式
使用zabbix监控mysql的三种方式 1.只是安装agent 2.启用模板监控 3.启用自定义脚本的模板监控 zabbix中默认有mysql的监控模板.默认已经在zabbix2.2及以上的版本中. ...
- mysql状态查看 QPS/TPS/缓存命中率查看【转】
运行中的mysql状态查看 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题
之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbi ...
- 分布式数据存储 - Zabbix监控MySQL性能
Zabbix如何监控mysql性能,我们可以使用mysql自带的模板,可以监控如下内容:OPS(增删改查).mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 编写check_m ...
- zabbix监控mysql性能
使用zabbix监控mysql的三种方式 1.只是安装agent 2.启用模板监控 3.启用自定义脚本的模板监控 zabbix中默认有mysql的监控模板.默认已经在zabbix2.2及以上的版本中. ...
- zabbix监控mysql最简单的方法
该实验基于我的上一篇文章监控第一台主机的基础上 首先,因为水平有限,我选择直接关闭了防火墙和SELinux. 环境: 两台centos7,服务器端IP是192.168.200.128(以下简称主机), ...
- Zabbix 监控 Mysql 状态
简介: 如何使用 Zabbix 来监控 Mysql 状态 ? Zabbix 有自带监控 Mysql 的模板,但是却不能直接使用.. 需要我们根据模板提供的 Key 自己写脚本获取数据 1.查看都有哪些 ...
- Zabbix 监控MySQL、Apache、Nginx应用监控
zabbix对第三方应用软件的监控,主要有两个工作难点,一个是编写自定义监控脚本,另一个是在编写模板并导入zabbix web中,编写脚本这个要根据 监控需求定制即可,而编写模板文件有些难度,不过网上 ...
- CentOS 6.3下Zabbix监控MySQL数据库参数
系统环境:CentOS 6.3 x64 http://www.linuxidc.com/Linux/2012-12/76583.htm mysql: mysql-5.6.10 http://w ...
随机推荐
- 007_zkCli.sh
一. [zk: localhost:2181(CONNECTED) 1] rmr /zkTestPaths_92018-06-25 11:18:30,189 [myid:] - WARN [main- ...
- simulate events
windows system maintains a msg queue, and any process that supports msg will create an thread that h ...
- git pull/fectch
git remote: show all remote repositories git push -u <X1> <>: set x1 as the default repo ...
- Centos7升级gcc版本方法之一使用scl软件集
Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...
- [MySQL]InnoDB引擎的行锁和表锁
1.行锁和表锁 在mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描, 行锁则 ...
- 前端html
前端html html 是一种描述网页的语言,是超文本标记语言 :hyper Text Markup Lauguage 是一种标记语言[标记语言是一套标记标签 markup tag]使用标记标签来 ...
- D3.js force力导向图用指定的字段确定link的source和target,默认是索引
json.links.forEach(function (e) { var sourceNode = json.nodes.filter(function (n) { return n.name == ...
- java多线程机制中的Thread和Runnable()区别
1.java语言使用Thread类及其子类对象来表示线程,新建的一个线程声明周期中经历 新建.(声明一个线程,此时他已经有了相应的内存空间和其他资源),运行(线程创建之久就据用了运行的条件,一旦轮到使 ...
- Nginx详解二十一:Nginx深度学习篇之配置苹果要求的openssl后台HTTPS服务
配置苹果要求的证书: 1.服务器所有的连接使用TLS1.2以上的版本(openssl 1.0.2) 2.HTTPS证书必须使用SHA256以上哈希算法签名 3.HTTPS证书必须使用RSA2048位或 ...
- excel生成数据
Sub function1()Dim i As LongFor i = 1 To 1000000Cells(i, 1) = "A" & iCells(i, 2) = &qu ...