这是一个合理的报纸网站架构吗?

我们经营一家报社风格的网站,并将我们的架构从一个非常规的networking整合到一个更具扩展性的弹性解决scheme中。

我在想以下几点:

internet | h/w firewall | h/w load balancer | | | control server (nagios, mail server & misc) | pair of nginx load-balancing reverse caching proxies | | pair of apache app servers pair of mogilefs storage nodes and mogilefs trackers | pair of mysql dbs (master/slave) and mogilefs db 

所有的机器将运行64位的centos。

我们需要能够在应用程序服务器上同时为7个用户提供服务,并且每秒提供840个静态文件。 所以我正在考虑如下的东西:

  • mogilefs存储节点 – 2GB内存,Intel Atom(1.6GHz)
  • 应用程序服务器 – 8GB内存,AMD Athlon II X2(2.8GHz)
  • 反向代理和控制服务器 – 4GB内存,AMD Athlon II X2(2.8GHz)
  • dbs – 8GB内存,AMD羿龙II X6(2.8GHz)

所有将有7.2krpm的磁盘。 数据库中没有大量的数据,所以基本上都可以caching在缓冲区中。 另外,我们只有大约15%的memcached缺失率,所以db没有很大的负载。

未来的阶段将是循环的DNS,其中一切镜像到不同的数据中心。

这个拓扑有什么缺失吗? 有没有人做过任何类似的组件? 这些机器看起来好像是在低于/高于预期的?

谢谢

编辑

更多信息:

每秒7个同步的页面浏览量由apache服务 – 大量的cms内容无论如何都被caching在磁盘上,并尽可能使用memcached。 840静态文件需要每秒服务 – 但这可能有点太高,因为在远期到期date只有一小部分的页面浏览将与客户端上的冷藏caching。

唯一的pipe理员会将静态内容上传到mogilefs存储节点。 他们可能每天上传〜100个文件。 我是mogilefs的新手 – 他们只使用商品盘(7.2krpm)

然后通过http:// static * .ourdomain来访问这个内容… Nginx会将请求代理到这个内容并在本地进行caching,所以当第一次检索的时候可能会有点慢,后续的检索将会来自nginxcaching。

这在一个简单的问题上有点过于笼统。 您需要在提出的解决scheme和负载上提供更多的input信息:

  • 什么样的加载(页面/caching页面/资产)将由这个堆栈中的软件(nginx,mogilefs,localfs,apache)提供服务? 负载均衡器将做什么,它是什么types?
  • 你将使用哪个CMS? 它如何与mogile交互? 你的mogilefs会运行什么样的存储?
  • 虽然你可以在2Gb节点上运行mogile,在4Gb上运行apache,但我不会吝啬RAM。 更多的记忆会使很多事情变得更顺畅。
  • 您不提CPU,这在CMS图片中更为重要

另外,我没有看到任何memcached在那里; 取决于可能有​​用的设置。

7个并发用户听起来不是很多,每秒多less浏览量是在你看来?

编辑以反映新的信息:

有很多细节要充实,但这似乎是合理的。 很多将取决于你如何configurationnginxcaching和CMS。 记住networking,我会build议至less千兆。

我对mogilefs的performance有点担心。 如果你仍然处于devise阶段,我会build议寻找替代品(可能是直接的文件系统复制)或将来的迁移场景,这取决于你的要求。

此外,您的负载均衡器目前是devise中的一个非常高级的元素。 直到你对性能和function的要求非常肯定,我会把所有的选项留在桌子上。

(dynamic)网页服务器需要7页请求,(小文件)静态内容需要约850页/秒,为此,您需要一个具有〜10个服务器的多层体系结构?

就在我头顶,听起来太慢了。 要么你是overbuilding,或者你的网站有一些缓慢的代码,或者别的什么?

我会build议彻底地对你的应用程序进行基准testing,并从中估算出你所需要的硬件。

一些想法:

  • 有2个负载balacing层是额外的复杂性,是否需要? 如果只有一个硬件负载平衡器和一个caching服务器(Squid或Varnish)。

  • 切勿将Atom CPU用于真正的服务器,它们的能力不足。

  • 我不明白你为什么要使用像Athlon这样的双核CPU。 现代四核服务器CPU的实际使用速度至less快2倍。 使用现代function更强大的硬件将允许您合并图层并简化您的架构。

  • MogileFS可能是伟大的; 除了它的起源之外,我对它的了解不多,而且它已经使用了很多年,取得了巨大的成功。 但是为什么要设置一个你不熟悉的技术来扩展到2台服务器呢? 如果您只需要2台带有英特尔凌动处理器的服务器的性能水平,那么就不要使用这种configuration,而是用一个快速磁盘子系统(4个或8个磁盘RAID 10或SSD)来获得一台现代化的四核服务器。

build议:

  • 基准你自己的应用程序,并获得最佳的指标,你可以实际的caching命中率。
  • 也许找几个这样的顾问,然后和他一起讨论最终devise?

上面的架构是健全的,充分考虑。 但是要获得一些个别部分的实际performance的数字。 🙂