数据库监控
对什么监控
【1.数据库服务器可用性监控】:
如何确认数据库可以通过网络连接:远程服务器发送连接请求
【1.mysqladmin -uroot -p -h ping】
【2.telnet ip db_port】:telnet 192.168.164.135 3306
如何确认数据库可读写:
检查read_only 参数是否为 false
建立监控表,对数据进行更新
执行简单查询:select @@version
如何确认数据库连接数:
出现阻塞,或缓存失效
【1.show variables like 'max_connections'】:数据库最大连接数
MySQL [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 326 |
+-----------------+-------+
1 row in set (0.10 sec)
【2.show global status like 'Threads_connected'】:当前数据库连接数量
MySQL [(none)]> show global status like 'Threads_connected';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 1 |
+-------------------+-------+
1 row in set (0.02 sec)
【2.对数据库性能监控】
qps,tps,并发线程数(mysql同时处理sql请求的数量)
如何计算qps,tps
【qps】:每秒钟数据库的查询数量
查询数量差值除以时间间隔得到平均qps
qps = (queries2-queries1)/(uptime_since_flush_status2-uptime_since_flush_status1)
使用命令:show global status
+-----------------------------------------------+--------------------------------------------------+
| Qcache_total_blocks | 4 |
| Queries | 200112 |
| Questions | 200110 |
| Uptime | 72844 |
| Uptime_since_flush_status | 72844 |
+-----------------------------------------------+--------------------------------------------------+
【tps】:每秒钟数据库事务处理数量
使用命令:show global status
+-----------------------------------------------+--------------------------------------------------+
| Com_dealloc_sql | 0 |
| Com_delete | 10000 |
| Com_delete_multi | 0 |
| Com_help | 0 |
| Com_insert | 10040 |
| Com_insert_select | 0 |
| Com_install_plugin | 0 |
| Com_uninstall_plugin | 0 |
| Com_unlock_tables | 0 |
| Com_update | 20000 |
| Com_update_multi | 0 |
| Uptime | 72844 |
| Uptime_since_flush_status | 72844 |
+-----------------------------------------------+--------------------------------------------------+
Tps = ((Com_delete2+Com_insert2+Com_update2)-(Com_delete1+Com_insert1+Com_update1))/(uptime_since_flush_status2-uptime_since_flush_status1)
【数据库并发数】:并发数量增加性能下降
show global status like 'Threads_running';
监控innodb表的阻塞
【3.对主从复制进行监控】
主从复制链路的监控
主从复制延迟
定期确认主从数据一致性
主数据库上运行:
pt-table-checksum u=root,p=112358 --databases mysql --replicate test.checksums
如何监控主从复制链路状态:
【4.对服务器资源监控】
磁盘空间:磁盘空间大,不意味着mysql数据库服务能使用的空间就足够大,数据库分区的磁盘空间要大
cpu使用情况
内存
分区
网络I/0
对innodb的阻塞和死锁进行监控
wget http://mysql-cacti-templates.googlecode.com/files/mysql-cacti-templates-1.1.2.tar.gz
tar -xzvf mysql-cacti-templates-1.1.2.tar.gz
cd mysql-cacti-templates-1.1.2
cp ss_get_mysql_stats.php /xok.la/cacti/scripts
对什么监控
【1.数据库服务器可用性监控】:
如何确认数据库可以通过网络连接:远程服务器发送连接请求
【1.mysqladmin -uroot -p -h ping】
【2.telnet ip db_port】:telnet 192.168.164.135 3306
如何确认数据库可读写:
检查read_only 参数是否为 false
建立监控表,对数据进行更新
执行简单查询:select @@version
如何确认数据库连接数:
出现阻塞,或缓存失效
【1.show variables like 'max_connections'】:数据库最大连接数
MySQL [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 326 |
+-----------------+-------+
1 row in set (0.10 sec)
【2.show global status like 'Threads_connected'】:当前数据库连接数量
MySQL [(none)]> show global status like 'Threads_connected';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 1 |
+-------------------+-------+
1 row in set (0.02 sec)
【2.对数据库性能监控】
qps,tps,并发线程数(mysql同时处理sql请求的数量)
如何计算qps,tps
【qps】:每秒钟数据库的查询数量
查询数量差值除以时间间隔得到平均qps
qps = (queries2-queries1)/(uptime_since_flush_status2-uptime_since_flush_status1)
使用命令:show global status
+-----------------------------------------------+--------------------------------------------------+
| Qcache_total_blocks | 4 |
| Queries | 200112 |
| Questions | 200110 |
| Uptime | 72844 |
| Uptime_since_flush_status | 72844 |
+-----------------------------------------------+--------------------------------------------------+
【tps】:每秒钟数据库事务处理数量
使用命令:show global status
+-----------------------------------------------+--------------------------------------------------+
| Com_dealloc_sql | 0 |
| Com_delete | 10000 |
| Com_delete_multi | 0 |
| Com_help | 0 |
| Com_insert | 10040 |
| Com_insert_select | 0 |
| Com_install_plugin | 0 |
| Com_uninstall_plugin | 0 |
| Com_unlock_tables | 0 |
| Com_update | 20000 |
| Com_update_multi | 0 |
| Uptime | 72844 |
| Uptime_since_flush_status | 72844 |
+-----------------------------------------------+--------------------------------------------------+
Tps = ((Com_delete2+Com_insert2+Com_update2)-(Com_delete1+Com_insert1+Com_update1))/(uptime_since_flush_status2-uptime_since_flush_status1)
【数据库并发数】:并发数量增加性能下降
show global status like 'Threads_running';
监控innodb表的阻塞
【3.对主从复制进行监控】
主从复制链路的监控
主从复制延迟
定期确认主从数据一致性
主数据库上运行:
pt-table-checksum u=root,p=112358 --databases mysql --replicate test.checksums
如何监控主从复制链路状态:
【4.对服务器资源监控】
磁盘空间:磁盘空间大,不意味着mysql数据库服务能使用的空间就足够大,数据库分区的磁盘空间要大
cpu使用情况
内存
分区
网络I/0
对innodb的阻塞和死锁进行监控
wget http://mysql-cacti-templates.googlecode.com/files/mysql-cacti-templates-1.1.2.tar.gz
tar -xzvf mysql-cacti-templates-1.1.2.tar.gz
cd mysql-cacti-templates-1.1.2
cp ss_get_mysql_stats.php /xok.la/cacti/scripts