0

我认为这个问题通常与编程无关,但其他 Web 开发人员可能会对答案感兴趣。

我只是想知道如何估计拥有一个快速网站的最低要求。显然,有一些事实需要考虑,例如预期的访问者数量、导出的每秒点击次数等等......同时运行 Web 服务器(Apache/lighttpd)或邮件服务器(Exim、sendmail、. ..) 可能最终有不同的需求。

也许您知道一个好的网站,或者可以就如何根据这些信息估算所需的服务器配置给出一些解释?

4

2 回答 2

5

这可以说是艺术多于科学。

您必须记住的是,就像编程和 IT 中的许多事情一样,您的网站将与链条中最慢的链接一样慢,这意味着您将遇到一些瓶颈,例如带宽、Web 服务器、磁盘 I/O、内存、您的数据库、防火墙等会限制您网站的速度。

调整和发展您的网站将涉及在您发展和解决这些问题时识别这些问题。有时您可能需要添加更多 RAM,有时您可能需要另一个 CPU,依此类推。在其他时候,添加更多内存可能没有用,因为内存不是您的问题。

同样,某些资源的缺乏可以被掩盖,就像内存不足可以通过密集的磁盘 I/O 来掩盖,因为您的系统不断交换(页面错误),但磁盘 I/O 不是问题。

所以你会怎么做?

首先,您需要确定(或做出合理的猜测)典型用户会做什么以及他们会做多少。理想情况下,您将能够使用 JMeter 等软件对 100 或 1000 或您需要的任意数量的用户进行建模,然后了解您的网站如何扩展、需要多少带宽等等。通过对 100、500、1000、2000 个用户进行建模,您将有望看到您的网站的线性扩展程度。

您可能会发现支持 1000 个用户需要 1 gig 的 RAM,但 2000 需要 4 gig:这是非线性可伸缩性的一个示例,它暴露了您在扩展 Web 站点时会遇到的问题。这就是性能测试要揭示的东西。

老实说,如今硬件非常便宜,除了最大和最受欢迎的网站(1 万美元可以为您购买 1 台甚至 2 台服务器,每台服务器具有 16G 内存和 4-8 个内核)之外,它几乎不是问题。共享和 VPS 托管是另一回事,因为您通常只想为所需的内存、带宽和磁盘空间付费。幸运的是,这些类型的解决方案往往会让您轻松升级(至少到您最终必须使用专用主机的地步)。

您可以在项目开始时通过他们所谓的“信封背面”估算来做出一些肮脏的估算。运行关键查询 100 次并计算出它们需要多少 CPU 时间,点击模拟页面 100 次并计算出它产生多少带宽等等。这些粗略的估计加上对用户将如何使用该网站的猜测将为您提供您需要的大致情况(希望在 2-3 倍之内)。

于 2009-03-22T10:07:27.270 回答
3

您已经提到了用户数量、服务器等。这里还有一些需要考虑。

  1. 如果流量很高,则使用集群服务器
  2. 服务器的物理位置:找到您网站的受众目标,最好在该国家/地区拥有服务器。
  3. 灾难恢复计划。拥有更快的网站是好的,拥有更快的恢复过程也非常好。
  4. 选择最好的技术并实施 AJAX 等新技术,并尽可能减少服务器请求。

如果出现问题会添加更多。

于 2009-03-22T09:59:47.960 回答