什么是可靠性?系统的可靠性表现为在一定期间内,用户可以预测其发生的行为,也就是说,在一定的期间内,系统不会发生计划外的行为。例如,服务器运行时不会出现意外的停机、应用程序的性能符合预期、计划的停机很少发生等等。
在经常发生变化的环境中,维持系统的可靠性非常困难。例如,受业务影响,应用程序经常发生更改、伴随着用户量的增加,使用模式发生改变、操作系统升级、硬件升级所带来的环境发生变化都会导致系统的稳定性降低。
维护系统的可靠性需要做到以下几点:
基线的目的是定义什么是正常的,当遇到问题时可以和基线进行对比。随着时间的发展,用户不断调整的基线可以为容量规划提供有效的帮助。
通常情况下,用户需要测量操作系统的指标包括文件系统、内存和CPU的使用率。在Linux上,可以使用top、iosata、vmsata、syssata、sar进行测量。Windows上,用户可以使用资源管理器和性能监视对这些指标进行测量。
当用户使用MySQL时,需要查看MySQL的状态和配置。可以通过“SHOW PROCESSLIST”和“sys.session”查看运行中的语句,也可以通过“mysqladmin extended-status”查看状态变量值。
此外,基线中包括应用程序概要文件,用以记录应用程序在不同使用场景的应答时间,包括登录、检索、创建、读取、更新及删除等。
应用程序概要文件记录发生指定事件的时间、测量每部分操作发生的时间、应用程序是与多个开发环境集成还是作为插件?以及显示对数据库性能故障排除是否有用(假设调用数据库占用了函数执行的5%的时间,用户则可以对该函数的其他部分进行故障排除来获得性能提升)
当用户将应用程序概要文件做为基线的一部分时,可以看到每个功能或用例的关键部分的持续时间。这使得用户可以查看应用程序的大部分延迟是在调用数据库、建立连接时出现的,还是由于其他一些应用程序操作造成的。
数据库为什么会“坏掉”?
数据库发生故障的原因非常多,通常会包括如下:
此外,还需要考虑服务器硬件、虚拟环境、操作系统、共存的应用程序、网络故障及应用程序故障等因素。
基于上述原因,用户在使用MySQL数据库时,需要避免发生类似事件。这是实现系统稳定性的一个最佳实践。
感谢关注“MySQL解决方案工程师”!
本文分享自 MySQL解决方案工程师 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!