文档章节

如何运维能让网站稳定高效--稳定篇

cloudwiseAPM
 cloudwiseAPM
发布于 2015/08/12 14:38
字数 2014
阅读 17
收藏 0


本文由 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

 


© 著作权归作者所有

共有 人打赏支持
cloudwiseAPM
粉丝 27
博文 135
码字总数 278629
作品 0
海淀
私信 提问
WOT百城沙龙成都站—大型网站的架构设计与运维挑战

因楼主不能及时查看央广、十万加新媒体增长大会2017报名信息,还望各位参会者能移步至活动家官网进行在线报名 报名地址:https://www.huodongjia.com/event-320070718.html 快速审核,方便咨...

活动家
2017/03/10
0
0
【北京】招【运维总监】

职位概述: 负责运维团队的管理和组织建设;负责公司基础设施的架构规划和实现;负责公司系统的日常运维;通过规范化、标准化和自动化等手段,不断优化和改进运维体系,保障生产环境高效、稳...

Betty_li
2012/02/01
437
0
高效运维最佳实践七字诀,不再憋屈的运维!

我们那么努力,为什么总感觉过得那么憋屈、苦闷?做的事情那么多,为什么业务部门、直接领导和公司貌似都那么不领情?怎么做才能自己更加开心些? 做运维的那么多,快乐的能有几个? 我们那么努力...

Michaelyn
2015/05/27
0
2
成都站—大型网站的架构设计与运维挑战欢迎参加

活动链接https://www.oschina.net/event/2233096 【活动背景】 随着公司项目的发展壮大、流量暴涨,系统卡顿、不稳定现象愈发严重,系统运维工作变得不堪重负,成为各行各业普遍关注的问题,...

sunjian123
2017/03/11
105
0
运维管理的一些感悟

运维墨菲定律,请每天读一遍以下的内容,可以自省。 1,任何事情都没有表面看起来那么简单 2,所有的事情都会比你预计的时间长 3,会出错的事总会出错 4,如果你担心某种事情会发生,那么它更...

木雨山
2016/05/27
294
1

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
29分钟前
2
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
1
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
8
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部