"杀死"你的服务器的6种方法

来源:IT专家网 时间:2010-08-30 20:06:00 

如果没有任何经验,学习如何扩展一个网站是相当困难的。假设现在你有很多像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,重构通常会引发一些问题的。只要你能很快地修复它,那就没事了!

标签:服务器,重构,mysql,php
0
投稿

猜你喜欢

  • 用RedHat打造安全高效的代理服务器

    2010-03-29 18:45:00
  • 网易邮箱收不到GoDaddy系统发来的邮件

    2010-04-08 12:40:00
  • 技巧:保护DNS服务器十大最有效方法

    2009-02-20 17:22:00
  • XSS攻击防御技术白皮书

    2009-12-24 16:32:00
  • 网站访问流量的主要统计指标

    2009-01-04 10:35:00
  • 关注网站常见后门方法大总结

    2009-10-23 08:46:00
  • Godaddy在子域名及别名域名上设置404页面

    2010-04-16 13:04:00
  • 谷歌更新iGoogle 用户更方便建立个性化主页

    2007-10-25 11:39:00
  • IIS6架设网站常见问题及症状答疑

    2011-01-11 19:22:00
  • 回李彦宏:评价一个搜索引擎的好坏是什么

    2007-10-14 09:38:00
  • 校园网站发展前景多多 学生站长注意四点

    2008-11-19 09:02:00
  • Spider与crawler不同点

    2008-08-26 11:57:00
  • WordPress更换域名完美攻略

    2011-10-29 17:03:25
  • DISCUZ架构:AJAX之ajax.js 函数之一

    2009-02-14 08:29:00
  • 改进的SQL防注入(加强抑错)

    2008-03-02 16:14:00
  • 阿里妈妈买广告防骗心得!

    2007-10-08 11:59:00
  • Godaddy:如何管理100或者更多域名

    2010-05-04 12:31:00
  • 帝国、PHPCMS及织梦对比(六):专题功能对比分析

    2011-08-26 12:53:45
  • 网络传言谷歌将撤走中国境内服务器

    2009-10-24 13:58:00
  • 来看看怎么美化你的Google Adsense广告吧

    2007-08-15 10:46:00
  • asp之家 网站运营 m.aspxhome.com