在线第一天:如何不杀死您的网站


14

假设您有一个新网站,上面有很多数据(例如大图像),并且您打算将其放到网上。如果您“过多”地进行宣传,则在最初的几天中,该网站将不知所措。

如何减轻这种风险?

我想到了

  • 像SO和SF一样逐步上线:“私有”测试版,公开测试版,公开
  • 允许X 连接数 会话同时进行,因此连接的用户仍然对网站有良好的体验,其他用户则道歉

我不能:

  • 购买更多服务器,因为第一天之后,该网站的访问量就会大大减少:)

6
在我15年的开发和发布网站中。这就是每个人的想法……在我们和繁荣上建立了一个新网站!几乎永远不会发生。通常,您得到的反面少于预期。但是,呵呵,太多的用户是一个很好的问题;)
Chad Grant

1
我遇到了这个问题,并不是一个令人愉悦的地方……
加布里埃尔·所罗门

Answers:


11
  1. 尽可能多地缓存。动态创建的所有页面都应缓存,以便用户获得静态版本。在查询数据库的页面组件中,也应缓存。
  2. 尝试使用Amazon S3之类的外部服务来提供图像和多媒体(或者如果该站点突然受到大量访问量困扰,可以立即使用)。

逐渐上线可以为SOF和SF工作,因为由于Jeff和Joel博客的流行,它们已经有了内置的宣传和需求。如果您没有像他们这样拥有近乎保证的用户群,那么逐步上线可能是致命的。

我将避免限制并发会话,因为很难定义由于不活动而导致的会话结束。如果用户离开15分钟并尝试重新加载他们的页面,仅得到一条错误消息-您就失去了一个用户。


我是指会议,但我的手指是联系。已更正。
mathieu

5

您的数据模型进行了多少计划?您是否设计了一种架构,无需增加昂贵的排序,二进制列或复杂的联接就可以提高查询量?您是否已调整数据库后端(假设您有一个后端)?

您如何服务“大形象”?您可以将其拆分为单独的Web服务器进程,甚至单独的域吗?

您是否对系统进行了负载测试?诸如ApacheBench和Siege之类的工具是无价的。

您的所有配置都在svn中吗?您的部署是否自动化?当您必须将我们的应用程序推出到第二台服务器时,您会为此感到高兴。


我同意负载测试,我们有一个网站,由于时间紧迫,我们跳过了测试,因为我们的网站一直在忙碌。并且必须在站点运行期间进行一些修补,以使服务器负载降至可管理的状态(我们使用4个CPU专用服务器将CPU负载降低到200%)
Gabriel Solomon

1

邀请系统有时可能是控制用户对网站的使用的好方法。在开始时发出一定数量的邀请,以使网站不会变得不知所措。然后给每个用户一些邀请,以传递给其他用户,从而逐渐增加站点上的用户数量。这样一来,您一开始就不会吸引太多人访问该网站,也不会导致流量高峰。

当然,不利的一面是,一开始您可能会拒绝很多没有邀请的用户,而这些用户以后可能不会返回。除非您有一个非常好用的网站,否则人们会非常兴奋,否则这可能是一个错误的举动。实际取决于站点。另外,您实际上必须有一些额外的开发时间才能添加邀请系统。


1

在发布之前,我将确保您具有强大的监视基础结构。您需要有数据来做出决策,这意味着测量服务器上的CPU负载,检查负载是否均匀分布在各个盒子中,并且如果有东西融化了,您就知道是哪一个。

知道问题出在哪里将大大减少响应时间。我已经看到太多站点在没有任何监视的情况下启动,目的是稍后在火灾发生后进行设置。这是完全错误的。


1

您可能需要研究静态内容(例如Amazon S3)的第三方托管。根据您的应用程序,还可以使用Amazon EC2将某些云(我讨厌这个流行词)也包括在内。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.