国庆假期,对于运维工程师来说,最害怕的是什么?首当其冲肯定是服务器突然宕机。
就在国庆长假最后一天的中午, 新浪微博客户端出现无法正常刷新、评论、多页面无法正常显示等问题。此次微博宕机,或因明星鹿晗发微博公布与关晓彤恋情吸引关注流量过大,微博实时榜单显示明星鹿晗与关晓彤话题热度上升较快,可能是由于在今天中午鹿晗公布双方恋情所致。
针对新浪微博当时发出的排查公告,CEO 王高飞是这般点评的:排查个毛啊。其言下之意就是瘫痪的根源就是关晓彤与鹿晗公布了恋爱消息。此前,多位娱乐圈明星通过微博公布恋情等消息,微博也曾出现相同情况。
宕机通俗来说就是服务器不堪负重, 或者其他等原因而死机或者关机的状况。当一个企业的服务器出现宕机,我们首要做的就是让其尽快恢复工作,从而减少因服务器宕机带来的经济和信誉损失。
首先,我们先对引发服务器宕机原因进行一个分类:
一般来说,“运行环境”是排名第一的服务器宕机类别,大约 35% 的时间属于这一类。运行环境可以看作是支持数据库服务器运行的系统和资源集合,包括操作系统、硬件以及网络等。
服务器性能好坏也是引发宕机的一个因素。
具体说明如下:
1、在运行环境的问题中,最普遍的问题时磁盘空间耗尽。
2、在性能问题中,最普通的服务器宕机原因确实是运行很糟糕的 SQL,但也不一定都是这个原因,比如也有很多问题时由于服务器 Bug 或错误的行为导致的。
3、糟糕的 Schema 和索引设计是第二大影响性能的问题。
4、复制问题通常由于主备数据不一致导致。
5、数据丢失问题通常由于 drop table 的错误操作导致,并总是便随着缺少可用备份的问题。
6、由于系统原因,导致的服务器宕机,一般重启下服务器就可以。
了解了服务器宕机的原因,就可以进行逐一排除,找出引发宕机的“症状”,然后“对症下药”就可以有效解决服务器宕机问题。
a、是否是应用程序导致内存溢出或者泄露,out of memory 导致?
b、是否是进程过多或者不断创建,耗尽资源导致?
c、是否是数据库程序死锁,连接数过多导致?
d、是否是应用程序异常导致?
e、是否是流量负载过大导致?
f、 是否是遭受黑客入侵攻击导致?
g、是否是误操作导致
a. 在服务器宕机前,尽可能避免,即便无法避免,作为运维工程师,必须第一时间,排查到问题的根源。
b. 最好准备 2 个网站空间,他们存放的内容相同,而 ip 不同,并且机房的地理位置不同。这样 2 个主机,同时宕机的可能性就大大降低了。第一时间发现宕机问题后,可以迅速的通过修改 dnspod.com 中的域名记录,指向目前正常的网站空间。Dnspod 解析生效的时间是实时的,而一般的 dns 服务器,刷新时间较长,对外声称 24 小时内生效,按照实际经验看来,差不多 30 分钟内生效,否则就要检查域名绑定是否正确了。
如何解决和避免服务器宕机?这是值得所有运维工程师思考的问题。
Google 如何用 AI 造聊天机器人?Pinterest 如何用机器学习获得两亿活跃用户?10 月 QCon 上海站,还有来自 Uber、Paypal、LinkedIn、Airbnb 等顶尖技术专家前来分享前沿实践经验。QCon 报名即将结束,识别下方二维码或点击【阅读原文】与 100+ 国内外技术大咖零距离,如有问题欢迎联系票务经理 Hanna ,电话:15110019061,微信:qcon-0410。