本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱[email protected] 处理。

MySQL数据库运维的五大指标

如何评价一个公司数据库运维水平的高低?用什么来进行横向与纵向对比?自动化平台建设的目标是什么?必须有相应的指标体系来指导,此指标体系必须满足以下条件: • 可以用数字来测算和衡量 • 最终指标,而不是中间指标 比如有时DBA会关注数据库的吞吐量,但吞吐量越高不能代表数据库提供的服务质量越好,开发人员关心这个指标的原因也是因为担心过高的吞吐量会影响响应时间或者造成系统不可用,所以这只是一个中间指标。 • 可以全面衡量一个网站的数据库运维水平,而不会顾此失彼 • 有人文关注

1.1. 数据安全 数据安全是第一位的,DBA的首要职责必须保证不丢数据,丢掉数据就丢掉了饭碗! 这有3方面的含义: 1)在人为误操作的时候(update,insert,delete,drop,alter),能够恢复数据到正确的状态2)在机房,硬件故障或者操作系统,数据库软件故障的时候,能够恢复数据到正确的状态 3)不丢事务,保证已经入库的数据能够被正确的查询到 另外,还要注意到需要保证主从数据库的一致性,否则读写分离的情况下其实在用户看来仍然丢失了数据。 对于1,主要靠备份来保证,因为复制可以容灾,却不可以容错(当然延迟备份在一定程度可以)。 对于2,可能用备份来恢复,也可能直接进行主库或者从库的切换来恢复服务 对于3,电商,支付库的要求会非常高,采用最高安全级别的数据库软硬件设置以及冗余设备,目标是不丢任何1个事务,因为即使1个事务也可能造成大量金钱的损失,同时造成企业信誉的下降。 “911”事件曾造成1200家公司受灾,其中一半以上的企业因为IT数据损毁、丢失,导致业务无法恢复,以致于宣布倒闭。金融界巨头Morgan Stanley 全球营业部第二天就恢复正常工作,正是因为先前建立的远程容灾系统保护了重要的数据。 可测量指标: RPO(Recovery Point Object):恢复点指标,是指灾难发生后,容灾系统能把数据恢复到灾难发生前的哪一个时间点的数据,它衡量企业在灾难发生后会丢失多少生产数据 RTO(Recovery Time Object):系统恢复的时间 RPO说明了备份的可靠性和完整性,RTO说明了恢复的可靠性与速度。 由于MySQL开源版本并不提供热备的工具以及备份管理的工具(MSSQL,Oracle是提供的,当然它们是商业软件),所以要求DBA开发出自己的备份还原管理平台(脚本)。这也是DBA的首件工作。

1.3. 响应时间 响应时间是指一条查询或者更新语句从发出请求到接收完数据的时间。 因为最大响应时间的不确定性和不可重复性,所以一般使用X%的查询响应时间作为指标。如果值为95%为10ms,意味着95%的查询会在10ms内返回。对于OLTP查询来说,在50ms内返回是比较理想的结果。超过200ms的查询可以视为慢查询。 此指标较难收集,采用tcprstat虽然可以,但是tcprstat本身有一定的负载,另外也只收集最高到99%的响应时间,如果想知道比如99.999%的平均、最大响应时间就需要修改源码了。 目前有2个思路收集此数据: 采用tcpdump+pt-query-digest,将tcpdump抽样数据发送到中心机上利用pt-query-digest进行分析,然后入库后显示。此方法也需要修改pt源码,因为原版的pt支持的粒度太粗了,如下图,100ms直接跳到了1s:

此方法的优点是可以显示不同语句的情况,缺点是如果抽样时间长,中心机分析不完,而抽样时间短又可能信息没有代表性。 另外一个更轻量级的方法是将慢查询日志阀值打到50ms甚至更低,然后统计慢查询时间的分布,可以按时间和服务器维度进行分析(使用pt工具也可以得到不同语句的响应时间分布)如下表所示: 4901 130421 dt num avg —————————– 0 1839 605 1 920 596 2 1215 450 3 973 481 4 488 603 5 449 487 6 516 597 7 874 634 8 1129 532 9 1160 457 10 1115 502 11 987 529 12 1531 559 13 1185 537 14 2238 1235 15 1418 534 16 1589 535 17 951 548 18 1790 531 19 1520 503 20 1845 496 21 1855 542 22 1583 564 23 1840 562 None 31010 587

ip num ratio —————————– 10.73.xx.xx 4418 14 10.75.xx.xx 121 0 10.75.xx.xx 7905 25 10.75.xx.xx 5706 18 10.75.xx.xx 6812 22 10.75.xx.xx 6048 20 None 31010 100 根据此结果可以发现慢查询在服务器之间分布并不均衡,这也是分析问题的很好的切入点。

可测量指标: X%的查询/写入响应时间(ms)。

1.4. 成本 在解决了稳定和速度后,就是成本的问题了。有人认为如果不计较成本,任何功能都是可以实现的,并且不需要高深的技术。我不完全认同这个观点。但架构师的使命的确不仅仅是“完成”功能,如果说完成功能可以有50种方法, 因为经济学上认为找到最优方案可能成本比回报还要高,那么至少要找出相对较优的几种方法并进行最终的选择。 成本的构成主要是硬件成本+软件成本+人力成本,因为互联网企业软件以自主开发和开源为主,所以其中主要是硬件和人力成本,硬件成本也包含了机房的机架,带宽,电力成本。 对大型互联网公司来说,服务器规模都在上万台以上,Google的服务器规模更达到了百万级。而互联网公司的人才规模也是相当惊人,TAB公司的人员都在万人以上。 因此如何能够提高硬件的使用效率,降低人工运维成本,提高人均产出,也就成为关系到互联网公司生死存亡的事情了。 可测量指标: 投入成本=硬件成本(含机架,带宽,电力)+软件成本(MySQL可忽略) +人力成本

1.5. 运维人员幸福度 运维自动化是方向不假,但目前阶段来说,有很多工作还需要人来完成,越是复杂的工作越需要人工干预。对于一些创业公司,自动化平台更是要从头打造,此时间段内的很多操作需要手工完成。 克拉克的《与拉玛相会》描绘了一个完全靠机器人运维,在太空中飞行了上万年的巨大人工飞行器。但现在科技毕竟离此阶段还差得远。人也不是机器人,是有个性,独一无二的智慧生物。

为了体现运维的人文关怀,必须加入人员幸福度指标。 幸福度可以从3方面考量: 1)人均承担数据库读写量(如果数据库读写量大,这个值低,那么必然运维人员多,人均产值/薪酬低) 2)运维人员长期从事机械化的,重复性工作的时间比例 3)运维人员在工作时间以外进行切换上线,故障处理的时间比例 如果这3项指标差, 那就意味着团队的幸福感差,必然离职率高。所以离职率也是衡量指标之一。

如果有一个系统能够将上面的5个指标都量化记录下来,并采用各种方法持继改进指标,相信最终会建立一个比较好的运维平台。

标签: 数据