"杀死"你的服务器的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
投稿

猜你喜欢

  • IIS信息服务器排错指导

    2010-05-04 18:33:00
  • 百度试水“网页游戏” 与盛大51玩谨慎合作

    2008-04-22 13:04:00
  • 个人网站怎样转成商业网站

    2008-07-29 19:32:00
  • 提高内页权重 把内页当成首页来进行优化

    2008-12-01 17:29:00
  • 如何设置Godaddy主机的企业邮局

    2010-04-21 12:56:00
  • 浅谈DNS服务器管理与配置技巧

    2009-11-17 13:37:00
  • phpwind推淘链接APP 转化淘宝商品链接收益

    2010-06-30 21:23:00
  • 提高收入Google AdSense优化心得

    2007-08-07 11:17:00
  • 雨夜偶书 博客为什么比网站更牛

    2008-06-18 13:31:00
  • 我做盈利网站全过程

    2010-03-07 14:24:00
  • vmware 实现linux目录映射window本地目录图文详解

    2021-01-17 14:35:22
  • WIN2003组策略详解

    2008-12-29 13:22:00
  • 远程docker服务器携带证书连接的实现方法

    2023-06-27 18:43:49
  • Win7推出在即 Gartner建议企业考虑五大问题

    2009-10-16 15:54:00
  • vmware增加新硬盘无需重启即可生效的命令脚本

    2021-09-30 05:57:39
  • 网民对博客广告的信任度高于社区广告

    2009-02-20 14:50:00
  • 四个也许网上从来没有人提到过的SEO问题

    2009-01-07 16:51:00
  • VMware虚拟机实用经验总结大全

    2023-07-11 20:44:29
  • 《商业大亨》狂欢趣味万圣节 迎月晋级赛8强

    2009-10-30 11:05:00
  • Facebook创始人成全球最年轻亿万富翁

    2008-01-16 18:53:00
  • asp之家 网站运营 m.aspxhome.com