本文由 Alan 投稿
做为一名运维工程师,工做中最大的但愿就是本身运维的网站可以稳定高效运行,但理想很丰满现实很骨感,实际状况是总会有各类各样情况致使网络、服务器或者应用环境发生故障。面对这种状况,我以为仍是要能从故障中总结出经验规律,让发生的概率不断的下降。要完成稳定和高效二者中的任何一个都是一个极具挑战的事情,这里我以维护本身的blog为例来阐述一下我对稳定这个词的诠释和理解。
个人Blog架设在wordpress环境上的,记录了工做中的一些经验总结和随笔文章,虽然是我的网站,但麻雀虽小,五脏俱全,有必定的表明性。
一. 稳定之硬件稳定
硬件是基础设施,必须打好硬件稳定的基础。传统的硬件选型通常都是购买HP,DELL的机架式服务器,根据本身的需求选择CPU,内存,硬盘等,这种方式有一个弊端就是不能很方便的对硬件进行后期扩容,买了后通常状况下就定型了,并且还要托管,购买带宽,后期的硬件维护也是须要本身来作。面对这些问题,我以为选择当下比较煊赫一时的云服务器是个不错的选择。它解决了:
1) 硬件型号再也不重要,天然也就不会成为网站发展的瓶颈,CPU,内存,硬盘等硬件的大小都是弹性的,根据本身使用的状况随时能够增大和减少
2) 云服务器提供商提供托管场地和网络带宽设施
3) 由于云服务器提供商通常都有大量的服务器,因此会专门有一个机房工程师天天作硬件,网络的巡检工做,及时发现问题并将基础问题处理在萌芽阶段
4) 对磁盘IO要求比较高的,能够选择购买本地磁盘和SSD磁盘来解决问题
总的来讲,选择云服务器比较省心,并且国内的云服务器也逐渐的成熟起来,我我的使用云服务器这种方式7个月了,截止目前,硬件,网络都没有出现过问题,仍是比较稳定的。固然大型云服务器提供商是比较好的选择,阿里云、腾讯云、Ucloud都不错。具体选择哪家,能够根据本身的实际状况来酌情选择。
二. 稳定之软件稳定
软件是具体提供服务的应用组件,要作好这个稳定我以为比硬件难一些了,方方面面都要考虑清楚,这里从下往上来逐个分析吧:
1)Wordpress是一个PHP环境的程序,那么Linux做为系统环境就是一个很好的选择,其实稳定的另外一个特征就是当出现了故障时可以很快的排除故障,在成百上千的Linux发布系统中不少人最终选择Redhat,CentOS确定是有其缘由的,CentOS是基于企业级linux系统发布Redhat编译而来,兼容性好并且无偿使用,网络中有大量的技术文章能够借阅参考,64位也会逐渐的取代32位系统,我最后选择的是CentOS6 64位系统环境。这里不是说让你们所有选择此发行版,而是一个建议,在实际选择过程当中最好根据本身的业务类型,选择一个能用上3到5年的系统,不折腾。
2)nginx、mysql、php的搭档组合有逐步取代AMP组合的趋势,V1.0以上的nginx,V5.1以上的mysql,V5.4以上的PHP,这个版本选择是目前比较实用的组合,可以支撑一段时间不须要在更新了。
3)组件选择好后,比较关键的就是配置好这些组件了,配置这个过程没有一个统一的标准,须要不一样参数也就不一样,但无论环境怎样,仍是有几个比较通用的法则:
A. 一个PHP和nginx进程大约占用内存20M,最大容许的进程数是要根据本身的实际内存大小来动态调整,不然可能致使内存耗尽而系统崩溃
B.调整参数的原则就是让本身的硬件资源可以充分利用,最大使用率根据28原则
C.配置的过程是一个按部就班的过程,不少时候也是在处理问题时逐步总结出来最优配置
三. 稳定之实时监控
网站对外发布后,剩下的任务就是要保证网站不出故障,持久稳定运行了。要作到这一点,就要对网站和硬件的运行状况有一个全面的了解才能够。掌握的数据越多,就对本身的网站运行状况越有利。
可用性监控:
网站当下是否可以正常访问,这是一个最基本的要求。但咱们不可能实时去盯着,这里须要有个实时监控的服务去不断的探测,提供这样服务的工具备不少,例如nagios,zabbix等开源产品就是专门作这个事情的,周期性的探测网站的可用性,不过这种产品有一个很大的局限性,就是nagios和zabbix是部署在和本身网站一样的网络环境中,经常会出现nagios探测是好的,但外部访问却不行的情况。
这里我选择了一个第三方公司的产品——云智慧的监控宝,来作个人blog的可用性监控,其实现原理是使用它在全世界托管的监测服务器来周期性的访问个人blog,这种监控比较接近于实际用户访问,比较有说服力,若是发现了问题,会有一个告警信息发送到手机、邮件上。
图1
图2
四. 稳定之压力测试
压力测试的目的是为了可以对本身网站的最大负载能力有一个预估值,原则是测试一个有复杂业务逻辑的动态页面为好,经过压力测试得出本身网站的最大并发值和承载能力。得出这个值以后,剩下的在配置参数的时候就有依据了。压力测试的方法有不少种,比较常见的有ab,loadrunnner等工具。
五.稳定之硬件资源使用监控和并发数监控
压力测试的目的就是为了可以在这一环节有的放矢,网站上线后经过可用性监控得知网站是否能正常访问。在经过硬件资源使用状况和web服务的并发数监控,在监控中将告警阀值设置为压力测试过程当中的80%为准。经过这样的实时监控,就对本身的服务器的运行状况有一个立体式的掌控,让其可以运行在正常的区间中。
总结:
保证服务的稳定是一个持续的过程,经过时间的积累对本身维护的业务运行状况愈来愈熟悉,对架构的掌握也愈来愈透彻,将网站架构中的薄弱环节加固,再经过后期的实时监控,对网站的总体运行状况有一个清晰的认识,由此来让本身运维的网站稳定运行。以上五点算是抛砖引玉吧,若是你有好的方法,随时沟通交流:wxd5981@163.com
监控宝官网:
www.jiankongbao.com