我认为这个问题与编程一般没有关系,但是对于其他Web开发人员而言,答案可能会很有趣。
我只是想知道如何估算拥有快速网站的最低要求。显然,有一些事实必须考虑,如预期的访问者数量,每秒的派生点击次数等等...还运行服务,如Web服务器(Apache / lighttpd)或邮件服务器(Exim,sendmail ,. ..)最终会有不同的需求。
也许你知道一个好的网站,或者可以就如何根据这些信息估算所需的服务器配置提供一些解释?
答案 0 :(得分:5)
这可以说是艺术而不是科学。
您必须记住的是,与编程和IT中的许多事情一样,您的网站将与链中最慢的链接一样慢,这意味着您将遇到一些瓶颈,例如带宽,Web服务器,磁盘I / O ,内存,数据库,防火墙等会限制您网站的速度。
调整和发展您的网站将涉及在您发展和解决这些问题时识别这些问题。有时您可能需要添加更多RAM,而在另一个点上您可能需要另外的CPU等等。在其他时候,添加更多内存可能没用,因为内存不是你的问题。
同样,可以屏蔽缺少某种资源,因为当系统交换(页面错误)时,密集磁盘I / O会掩盖内存不足,但磁盘I / O不是问题。
那你做什么?
首先,您需要确定(或合理猜测)典型用户将做什么以及他们将做多少。理想情况下,您可以使用JMeter等软件模拟100或1000或许多用户,然后了解您的网站如何扩展,需要多少带宽等等。通过对100,500,1000,2000个用户进行建模,您希望能够看到网站的线性缩放程度。
您可能会发现支持1000个用户需要1 GB的RAM但2000需要4个演出:这是非线性可扩展性的一个示例,它可以解决您将扩展网站的问题。这就是性能测试所揭示的那种东西。
老实说,硬件现在很便宜,除了最大和最受欢迎的网站之外很少有问题(1万美元可以买到1台甚至2台服务器,16G内存和4-8内核)。共享和VPS托管是一个不同的故事,因为您通常只想支付所需的内存,带宽和磁盘空间。幸运的是,这些解决方案往往让你很容易升级(至少到最后你必须专门托管)。
你可以在项目开始时做一些肮脏的估计,做他们称之为“信封背面”的估计。运行关键查询说100次并计算出他们需要的CPU时间,点击模拟页面100次并计算出它产生的带宽等等。这些粗略的估计与用户如何使用网站的猜测相结合,将为您提供所需内容(希望在2-3倍之内)。
答案 1 :(得分:3)
您已经提到了有关用户数量,服务器等的问题。还有一些需要考虑的问题。
如果出现问题,会增加更多。