1 简介
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形。在需要监控的机器上,可以自定义脚本采集相关参数数据,通过SNMP服务采集发送给CACTI,由RRDTool绘制参数变化趋势图。
2 监控输出趋势图查看说明
如上图所示,趋势图包括5部分:
(1)标题:监控内容
(2)坐标
(3)参数:监控内容的各项参数
(4)数据区域:监控中各项参数的数值
(5)图形
其中数据区域内所显示的数值中单位只是数据大小的标示,如右下角的1.33k仅代表此数值为1.33*1000=1330,此区域的的单位有:
1m=1/1000=0.001
1k=1*1000=10000
1M=1*1000000=1000000
1G=1*1000000000=1000000000
参数区域的单位,是正常的数据单位。如io_read(Kb/s)代表每秒读取了多少Kb的数据。
Io_write(Kb/s)行的最大值1.33k意义是:每秒最多读取了1330Kb的数据。
3 现提供的DB服务器监控内容说明
3.1 监控内容列表
监控内容 | 监控意义 |
CPU,内存 | 了解服务器的CPU和内存使用情况,得知服务器的负载情况 |
磁盘IO | 了解磁盘性能及磁盘使用情况,可预估DB承载量 |
每秒Query数量 | 了解数据库的主要操作类型及数据库操作的变化曲线 |
数据库缓存命中率 | 了解数据库的缓存命中率,分析设置是否合理 |
数据库流量 | 了解数据库数据流量情况 |
数据库查询类型 | 了解每种查询类型的比例,分析索引设置及查询语句是否合理 |
数据库排序类型 | 了解排序类型种类,分析数据库的索引及排序缓冲池设置是否合理 |
线程监控 | 了解数据库连接线程变化曲线,分析数据库的并发访问量及线程缓存的设置合理性 |
打开表的监控 | 了解数据库每个时段被打开表增加趋势,分析表缓存设置的合理性 |
临时表使用监控 | 了解临时表的使用情况,分析临时表相关参数设置的合理性 |
3.2 监控内容详细说明
System: 系统进程占用的CPU百分比
Cpu_wait: CPU等待磁盘IO的数据
Cpu_user: 用户进程占用的CPU百分比
(2)监控数据库的Query语句
通过监控数据库的Query语句种类,看出数据库的主要访问类型。通过曲线的变化趋势得出数据库的访问压力情况。
com_insert:数据库每秒有多少insert 操作
Question:数据库收到的所有查询和命令的总数
Com_select:数据库每秒有多少select操作
Com_update:数据库每秒有多少update操作
Com_delete:数据库每秒有多少delete操作
(3)监控磁盘的IO情况
通过监控磁盘的tps、磁盘的io等待时间以及磁盘的使用率,可以看出数据库的压力情况及数据库服务器的性能状况。也可以联合前端的访问压力情况来预估数据库的承载量。
Io_read:每秒从磁盘上读取多少Kb数据。
Io_write:每秒写入磁盘上多少Kb数据
io_util:磁盘使用率
io_await:平均每次IO操作的等待时间
Io_svctm:平均每个IO操作的服务时间
io_read/s:磁盘每秒处理多少个读数据IO
Io_write/s:磁盘每秒处理多少个写数据IO
Io_total/s:磁盘每秒处理多少个读写IO
(4)监控innoDB缓存命中率
通过监控innoDB缓存命中率可以看出innodb_buffer_pool_size设置是否合理。
(5)监控数据库流量
Received:每秒钟接收多少bytes数据
Sent:每秒钟发送多少bytes数据
(6)监控查询类型
通过监控查询的类型,了解每种查询类型的比例,分析索引设置及查询语句是否合理。
Full_join:没有使用索引的联接的数量。注意此项值,若不为0,需分析。
Fullrangejoin:在引用的表中使用范围搜索的联接的数量
Range:在第一个表中使用范围搜索的联接的数量。
Range_check:在每一行数据后对键值进行检查的不带键值的联接的数量
Scan:对第一个表进行全扫描的联接的数量
(7)监控排序类型
通过监控排序的类型,了解排序类型种类,分析数据库的索引及排序缓冲池设置是否合理。
Merge_passes:排序算法执行合并的数量
Range:在范围内执行的排序的数量
Rows:已经排序的行数
Scan:通过扫描表完成的排序数量
(8)监控数据库线程
通过监控数据库线程情况,可以得出数据库的并发情况及数据库的thread_cache_size设置的是否合理。
Thread_cached:被缓存的线程的个数
Thread_running:处于激活状态的线程的个数
Thread_connected:当前连接的线程的个数
Thread_created:总共被创建的线程的个数
(9)监控临时表的使用情况
通过关注临时表的使用情况,分析内存使用及用到的磁盘临时表情况,主要关注磁盘临时表。
Tmp_disk_table:系统创建磁盘临时表的个数
Tmp_table:内存中临时表的被创建个数