我正在尝试弄清楚一些服务器的理想设置。
1)网站
1)邮件服务器
1)数据库服务器
1)文件服务器
在这种给定的场景中,假设有一个网站将为每个用户提供 5GB 的文件存储空间以及电子邮件和专用数据库。
从我对服务器工作原理的有限理解来看,我得出结论,每个功能配备 1 个服务器是最好的选择,这样如果一个服务器离线,其他数据也不会受到影响。
处理这个问题的聪明而有效的方法是什么?
这是我的理解
1) 网站由 1 个主服务器托管,该服务器将处理用户注册并提供小文件。为此,我认为简单的服务器设置就足够了,对吗?
2)对于邮件服务器,为了处理相同数量的注册用户,将主要处理电子邮件和电子邮件附件
3) 数据库的大小不受限制,仅存储每个客户的联系人和个人资料设置,因此每次用户登录时,设置都会从数据库中提取。我计划将设置加载到 $_SESSIONs 中,这样每次页面重新加载等时就不会查询数据库。但每次操作时都会从服务器查询联系人信息。
4)文件服务器将只提供文件,不占用 CPU 或内存
至于软件,我倾向于使用 CentOs 5.5 和 Plesk 10.2 来处理网站服务器,使用 MySQL 5 来处理数据库服务器,也许使用 Atmail 来处理邮件服务器。在软件方面,建议在每台服务器上加载什么?
我在这方面没有经验,但我每天都在积累经验。我需要明智地了解情况,这样我至少知道如果我雇人帮我处理设置时要处理什么。
根据你们的经验,硬件和软件配置的理想设置是什么样的?
另外,假设用户群有 5,000 个客户。因此每个客户都有 5GB 的网络空间、电子邮件和自己的数据库。
答案1
这是一个相当广泛的设计问题,而且相当复杂。每个组件都涉及其自身重要的设计考虑。您提出的层次相当抽象,所以我们能提供的最好答案也相当抽象。
- 每个服务一台服务器在某种程度上会比共同托管服务提供更好的服务。
- 文件服务器的 CPU 使用率确实很低(即使文件服务器是 Windows)。
- 5K 个用户,5GB 的平均空间使用量为 25TB,这是一个相当大的存储量。为此做好计划。
- 当用户数达到 5000 时,某些服务可能需要多台服务器,具体取决于应用程序负载。从一开始就做好规划。
至于您关于软件和操作系统选择的后续问题,这是我们 ServerFault 上许多人在职业生涯中必须做的深入研究。然而,我们每个做过这件事的人都很清楚,要得到正确的答案,需要的数据要比提供的数据多得多。或者甚至不能以像 ServerFault 问题那样的形式提供,因为它从根本上来说很复杂,而且有很多变量需要考虑。
要回答这些问题,您还需要有以下问题和主题的数据或答案:
- 对整个环境中的用户工作流程有强烈的感受。
- 系统在高负载下的运行情况。
- 一旦负载开始饱和基础设施的某些部分,它会如何影响用户体验?
- 哪些类型的事件会导致高负载?
- 早上登录?
- 晚上下班回家登录?
- 特殊事件驱动负荷?
- 系统扩展性如何。
- 将服务器添加到工作流程的各个部分有多容易?
- 添加网络服务器有多容易?
- 添加数据库服务器有多容易?
- 将服务器添加到工作流程的各个部分有多容易?
还有一大堆其他的东西。这些都是你通过密切参与开发过程和早期采用者测试而学到的东西。这是一个迭代过程,而不是那种你可以把提案写在白板上就能得到一个运行良好的基础设施的过程。