我们经营一家报社风格的网站,并将我们的架构从一个非常规的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个静态文件。 所以我正在考虑如下的东西:
所有将有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信息:
另外,我没有看到任何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议:
上面的架构是健全的,充分考虑。 但是要获得一些个别部分的实际performance的数字。 🙂