"杀死"你的服务器的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,重构通常会引发一些问题的。只要你能很快地修复它,那就没事了!
猜你喜欢
- 前言日常使用 VIM 的时候经常有跳转到特定目录下某个文件的需求:使用 vimwiki 记笔记时会默认把所有笔记保存在目录 ~/vimwik
- 我们使用的是/usr/local/apache2.4/conf/extra/httpd-vhosts.conf配置文件下的第二段配置,它的日
- Ubuntu 20.04已经在2020年4月份正式发布,笔者今天正式安装了一个镜像系统,并在该系统中安装vncserver以便于远程图形化管
- 当一台服务器上的文件更新后,其它的服务器也需要更新,而且在更新的时 候应该是只对新增或是修改过的文件进行更新,否则会造成网络带宽和时间的浪费
- 李开复(腾讯科技配图)“创新工场现在是房子不小,人不多,这个星期我们雇用了第七个人。”节前,李开复对
- 首先说说现在的个人电影站,市场上流行的主要是马克斯电影程序和搜一次电影程序,至于两者的区别,大家有兴趣的可以到他们的官网看看就知道了,不过现
- 在日常工作中,常有人问到域名解析了不是即时生效的嘛,怎么还是原来的呢?答案就是在本地DNS有解析缓存,电脑第一次访问后,在一定的时间内就将其
- Apache,一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性(注1)被广泛使用,是最流行的Web服务器
- 本文分步说明如何在Windows Server 2003 产品中为域名系统 (DNS) 配置Internet 访问。DNS是Internet
- 外部在我们着手清理内部之前,先站在外面,从大街上看一下您的站点——或者在谷歌搜索结果里看起来怎么样。只要随手打开离您最近的谷歌搜索框,使用查
- 北京时间9月30日消息,据科技博客iLounge日前报道,消息人士透露苹果计划在2010年1月19日或者之前宣布其平板电脑,该消息人士还透露
- 今天我们来讨论一下有关GoDaddy的Linux主机帐户的绝对路径问题,一定要认真看哦!~/home/content/1/2/3/usern
- 前面说了启用Gzip 压缩减少带宽消耗以加速网站,今天说Windows2003服务器安装及设置教程——IIS优化第二篇:使用eAcceler
- VMware EXSI 为虚拟机centos安装VMware Tools1.首先查看虚拟机是否安装VMware Tools2.打开虚拟机控制
- 伟大的点子使网络发生改变,这已经不是密秘了。社区网站和网络应用迅速的变得越来越炙手可热。年轻的企业家通过联系人和地的简单的点子赚了很多钱。您
- 想要修改Godaddy主机的域名,怎样修改呢?别急,我来告诉你。首先.登陆你的Account Manager.第二.在My Products
- 随着虚拟化技术不断向前发展,许多单位面临着实施虚拟化的诱人理由,如服务器的整合、更快的硬件、使用上的简单、灵活的快照技术等。这都使得虚拟化更
- MIME(Multipurpose Internet Mail Extensions,多目的Internet邮件扩展)是创建用于电子邮件交换
- 域名的概念与机制1. 介绍本文主要介绍域名(DNS)的一些机制及实现方法,下面我们就具体看一下它的情况。1.1. 域名的历史产生域名的的根本
- 1 VMware网卡VMware默认情况下会安装三个网卡,如下图示(点击最上方编辑-->虚拟网络编辑器)。VMnet0:“桥接网络”