假设我们有 3 台物理服务器,并且我们只关心性能,而不关心可靠性。是赋予每台服务器特定功能更好,还是使它们全部重复并在它们之间分配流量更好?
换句话说,将 1 台服务器用作 DB 服务器,将 1 台服务器用作 Web 服务器,将 1 台服务器用作报告服务器/数据仓库,或者最好将所有三种服务放在每台服务器上并将它们用作 Web 场?
答案1
这实际上取决于应用程序的性质和流量的性质——对于一般问题,没有一个正确的一般答案。
成功解决此问题的一些方法:
- 使用自动化工具制定良好的测试计划。对于 Web 应用,Browsermob 是一个不错的选择。您可以使用 selenium RC 和一点体力做同样的事情。
- 在系统中建立良好的测量和仪表。永远不要认为某事更快,要知道某事更快。
- 有明确的目标很重要。如果你只有十几个客户,那么处理 4200 万客户就毫无意义了。
最后,请记住,负载会彻底改变一切——在获得流量之前,处理大量流量的某些做法实际上会对性能产生负面影响。ASP.NET 本身就是一个很好的例子——在开发模式下,您可能花了很多时间等待工作进程启动。但在生产中,预编译会带来丰厚的回报。
答案2
表现在哪些方面?大量并发的网站用户还是后端数据仓库和报告?
Web 性能:两个负载均衡的 Web 服务器连接到一个数据库服务器。希望数据仓库工作和报告可以在非高峰时段完成。
报告/数据挖掘: 一个网站、一个数据库、一个数据仓库服务器。