对于报纸网站来说,这是一个合理的架构吗?

tim*_*mmy 5 networking high-availability

我们运营着一个报纸风格的网站,并将我们的架构从一个无定形增长的架构整合为一个更具可扩展性、弹性的解决方案。

我在想以下几点:

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
Run Code Online (Sandbox Code Playgroud)

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

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

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

全部都有 7.2krpm 的磁盘。数据库中的数据量并不大,所以基本上都可以缓存在buffer中。此外,我们只有大约 15% 的内存缓存未命中率,因此数据库负载并不大。

未来的阶段将是循环 DNS,将所有内容都镜像到不同的数据中心。

此拓扑中是否缺少任何内容?有没有人对任何组件做过类似的事情?这些机器是否看起来规格不足/规格过高?

谢谢

编辑

更多信息:

每秒 7 个同时页面浏览量由 apache 提供服务 - 许多 cms 内容无论如何都被缓存在磁盘上并在可能的情况下使用 memcached。每秒需要提供 840 个静态文件 - 但这可能有点太高了,因为在很远的未来到期日期中,只有一小部分页面视图会在客户端上使用冷缓存。

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

然后将通过http://static *.ourdomain...访问此内容... Nginx 会将请求代理到此内容并将其缓存在本地,因此虽然第一次检索可能有点慢,但后续检索将来自 nginx 缓存。

Jor*_*ris 1

这对于一个简单的问题来说有点太笼统了。您将需要提供有关您建议的解决方案和负载的更多信息:

  • 该堆栈中的哪些软件(nginx、mogilefs、localfs、apache)将提供哪些负载(页面/缓存页面/资产)?负载均衡器将做什么,它是什么类型?
  • 您将使用什么 CMS?它如何与莫吉利互动?您的 mogilef 将在哪种存储上运行?
  • 虽然您可以在 2Gb 节点上运行 mogile,在 4Gb 节点上运行 apache,但我不会吝惜 RAM。更多的内存会让很多事情变得更顺利。
  • 你没有提到CPU,这在CMS图片中更重要

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

7 个同时用户听起来并不算多,您认为每秒的综合浏览量是多少?

编辑以反映新信息:

有很多细节需要充实,但这似乎是合理的。很大程度上取决于您如何配置 nginx 缓存和 CMS。还要记住网络,我建议至少千兆位。

我有点担心莫吉莱夫的表现。如果您仍处于设计阶段,我建议您根据您的要求考虑替代方案(可能是直接文件系统复制)或未来的迁移方案。

此外,您的负载平衡器目前是设计中非常高级的元素。在您非常确定性能和功能方面的要求之前,我会将所有选项保留在那里。