如何衡量mysql库的健康度

如何衡量mysql库的健康度,第1张

系统mysql的进程数

查看 mysql buffer pool hit

ps -ef | grep "mysql" | grep -v "grep" | wc –l

2.Slave_running

mysql >show status like 'Slave_running'

如果系统有一个从复***务器,这个值指明了从服务器的健康度

3.Threads_connected

mysql >show status like 'Threads_connected'

当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。

4.Threads_running

mysql >show status like 'Threads_running'

如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当Threads_running值超过预设值时并且该值在5秒内没有回落时, 要同时监视其他的一些值。

5.Aborted_clients

mysql >show status like 'Aborted_clients'

客户端被异常中断的数值,即连接到mysql服务器的客户端没有正常地断开或关闭。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为异常中断连接可能表明了一些应用程序有问题。

6.Questions

mysql>show status like 'Questions'

每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值。

7.Handler_*

mysql>show status like 'Handler_%'

如果你想监视底层(low-level)数据库负载,这些值是值得去跟踪的。

如果Handler_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler_rollback表明事务被回滚的查询数量。你可能想调查一下原因。

8.Opened_tables

mysql>show status like 'Opened_tables'

表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2。

9.Select_full_join

mysql>show status like 'Select_full_join'

没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。

10.Select_scan

mysql>show status like 'Select_scan'

执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应该是常量(即Select_scan/总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。

11.Slow_queries

mysql>show status like 'Slow_queries'

超过该值(--long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。

12.Threads_created

mysql>show status like 'Threads_created'

该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。

13.客户端连接进程数

shell>mysqladmin processlist

mysql>show processlist

你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意。如果有一些长时间的查询,管理员可以被通知。你可能也想了解多少个查询是在"Locked"的状态—---该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。

14.innodb状态

mysql>show engine innodb status\G

该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。

(1)Pending normal aio reads: 该值是innodb io请求查询的大小(size)。如果该值大到超过了10—20,你可能有一些瓶颈。

(2)reads/s, avg bytes/read, writes/s, fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。

(3)Buffer pool hit rate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率

(4)inserts/s, updates/s, deletes/s, reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。

支持4层和7层检查,4层检查简单来说就是连接一下tcp端口看能否连接。7层检查目前支持HTTP和HTTPS,用户需要提供一个URL,健康检查会定期去访问这个URL,如果返回的HTTP CODE是200的话认为健康,否则认为出错。

对服务器来说,硬盘因为其机械结构,是最容易出现故障的设备。但恰恰是这最容易出现故障的设备中,存储着对企业来说最至关重要的IT资源——数据。一旦硬盘出现故障,会给企业带来重大的损失。据统计,为了解决硬盘故障带来的损失,目前全球每年的数据恢复市场价值大约在千亿美元——而这仅仅是是企业损失的一小部分。近年来,为了解决这一问题衍生出了大量的技术如:Raid、双机热备等。但这些技术都是在基于增加磁盘的数量的方式来尝试解决问题,降低了数据丢失的概率,但同时大大增加了运维成本,提高了管理的难度。

为此,蚁巡运维平台尝试引入一种新的方式,通过远程实时监控服务器硬盘的健康状态,达到在不增加硬件成本和管理成本的基础上保障数据安全的做法。通过蚁巡运维平台,可以自动发现安装了SMART标准技术的硬盘并远程监控其磁盘的健康指标。

S.M.A.R.T的全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。支持S.M.A.R.T技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、马达、电路的运行情况、历史记录及预设的安全值进行分析、比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。几乎所有主流的硬盘,包括固态硬盘都支持这一技术。但该技术只适用于单机环境,且必须手工获取数据,使用该技术防止硬盘故障的管理成本很高。而在蚁巡中,可以批量的、远程的、实时的监控使用了该技术的硬盘,大大降低了管理成本。

同时,通过蚁巡还可以获得硬盘的使用时间、使用次数等基本指标数据。可以有效的评估硬盘的使用情况,从而进一步评估设备的使用率、寿命等信息。

据统计,通过这项技术,可以提前发现超过60%的硬盘故障,给企业带来的价值无可估量。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/705872.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-05
下一篇2023-08-05

发表评论

登录后才能评论

评论列表(0条)

    保存