登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>服务器类>>WEB服务>>管理服务器:服务器死机的常见六种原因
管理服务器:服务器死机的常见六种原因
来源:IT专家网 ‖ 作者:未知 ‖ 点击: ‖ 时间:10-11-24 10:32:51 ‖ 【 】‖ 我要投稿

如果没有任何经验,学习如何扩展一个网站是相当困难的。假设现在你有很多像highscalability.com那样网站,你需要一些好的解决方案来扩展它们,但是世上没有“万能药”,没有哪个解决方案可以适应所有网站的需要。你不得不自己动手,通过不断地思考来找到一个能满足你的需求的解决方案。我也是这样做的。

几年以前,我的老板来找我,然后对我说:“我们有一个新项目想交给你来做。主要是一个网站的重构,在一个月内,这个站点已经拥有100万个用户了。你必须重新构建这个网站,来确保我们可以应对将来逐渐增加的用户数量。”我已经是一个有经验的程序员了,但是在这些方面并不擅长,所以我不得不开始学习如何扩展一个网站——整个过程历尽了艰难困苦。(相关文章推荐:重构:“为什么”和“怎么做”)

这个网站的后台软件是一个PHP内容管理系统,基于Smarty和MySQL。第一个任务是找到一个合适的托管公司,这个公司需要具有丰富的经验,可以为我们管理服务器。经过一番调查研究,我们找到了一家这样的公司,然后告诉他们我们的需求,他们给我们推荐的配置如下:

  • 负载均衡器 (+Fallback)
  • 2个Web服务器
  • MySQL服务器(+Fallback)
  • 开发机器

他们说,这就是我们需要的所有东西了——对此,我们深信不疑。我们最后得到的配置是:

  • 负载均衡器 (单核, 1GB 内存, Pound)
  • 2个Web服务器 (双核, 4GB 内存, Apache)
  • MySQL服务器 (四核, 8GB 内存)
  • 开发机器 (单核, 1GB 内存)

这个配置十分的基础,并没有做进一步优化。为了同步文件(PHP和媒体文件),他们建立了一个active-active DRBD。最后,重构开始了——当然,我们很兴奋。一大早,我们把域名切换到了新的IP上,运行我们的监控脚本,然后盯着屏幕看。我们马上在这些机器上看到了流量,一切似乎都工作的很好。页面载入的很快,MySQL负担了大量的查询任务,我们所有人都很高兴。

然后,突然我们的电话开始响个不停:“我们不能访问你们的网站了,这是怎么回事?”我们看了一下我们的监控软件,事实的确如此——服务器都被frozen了,站点处于离线状态!当然,我们做的第一件事情是打电话给我们的托管服务提供商:“我们的所有服务器都死机了。这是怎么回事?”他们答应检查一下机器,一会再打过来。这个电话来了:“你的系统根本就无法插手。你做了什么?它完全被搞砸了。”他们停止了负载均衡器,然后让我观察一下其中一个Web服务器。看到那个index.php文件,我大吃一惊。它包含一些奇怪的C代码片段,错误消息和一些看起来像日志文件的东西。经过进一步的调查,我们发现是DRBD引发了这次事故。

"杀死"你的服务器的方法之一

把Smarty compile和模板缓存放到一个高负载的active-active DRBD集群上,那么你的服务器将会挂掉!当我们的托管服务提供商修复了Web服务器的时候,为了在这些服务器的本地文件系统上存储Smarty缓存文件,我重写了部分CMS代码。我们再次上线了!

现在是午后。这个网站通常在下午的晚些时候到傍晚达到峰值。晚上,几乎没有什么流量。我们一直盯着监控软件,我们所有人都紧张得不得了。这个网站可以被载入,但是后来,系统负载越高,响应就越慢。我增加了Smarty模板缓存的生存期,希望这能产生效果——但是很可惜,这并没有产生效果!不久,服务器开始给出超时提示,空白页面和错误信息。有两台机器不能处理负载。

我们的客户这个时候有一点紧张,但是他说:OK,重构通常会引发一些问题的。只要你能很快地修复它,那就没事了!

我们需要一个计划来减少负载,然后,我们和我们的托管服务提供商讨论了这个问题。他们的一个系统管理员提出了一个好主意:“伙计,你的服务器现在运行在一个非常常见的Apache+mod_php架构上。把你的Web服务器换成Lighttpd怎

|<< << < 1 2 3 > >> >>|
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
  • 上一篇:放弃谷歌Web服务的10大理由
  • 下一篇:无
  • 相关文章列表
    请文明参与讨论,禁止漫骂攻击。  
    网友评论