如何为负载增长准备站点



只有懒惰的人没有从远处获得他的专业知识,也没有预测“在线”生活-像自我隔离制度一样被迫。但是,事实上,交通已经开始增长,并且考虑到“假期”,提供货物交付,在线教育服务,尤其是在线娱乐的资源可能无法在4月底之前适应新现实中的游客流量。

基于我们在Web项目和远程服务器管理方面的12年经验,我们准备了一种“培训手册”:值得检查的内容以及如果您想确保自己的站点能够应付任何负载则需要注意的事项。好吧,几乎任何人。

因此,在接下来的几天和几周中,这里有10点对您的Web项目的活跃生命至关重要:

1)监视您的基础结构

首先,您应该知道您的站点正在发生什么。如果您知道如何处理Prometheus / Grafana,请使用它们。但是,如果没有与他们进行交互的经验,那么这不是问题:您可以使用诸如datadog之类的任何服务-您可以尽快安装它。还复杂吗?-请注意Pingdom或Site24x7:它们不是全面的监视服务,但至少适合确保您的站点可访问并知道何时接近崩溃。

请记住:您只能控制自己可以测量的东西。毕竟,如果您不知道系统内部正在发生什么,尤其是发生在什么地方,那么如果那里发生故障,您将无法修复它。

当流量增加时,可能会出现很多问题的选项很多:

  • .
  • .
  • \.
  • \\.

2)准备扩展,

一旦发现您已达到资源限制的80%,就需要立即开始扩展。因为如果您等待100%,该站点将崩溃。并且您将需要一些时间来还原项目。更不用说这很紧张了……

您必须迅速采取行动,因为否则您将迷失访客,并可能在“厨师,一切都失去了,燃烧”模式下犯下更多错误。因此,当您达到资源限制的80%标记时,将比例缩小到40%。
如有必要,请重复(c)

3)不要忘记监视硬盘性能和通道带宽

很难理解由于磁盘负载高或带宽限制而导致系统“哑”时会发生什么。

4)监视数据库的性能,

尤其是在使用云数据库时。 RDS,Cloud SQL,MongoDB Atlas和其他服务使用云技术进行管理,但是它们有其​​自身的局限性,必须对其进行监控以及时扩展。

5)当您的数据库在CPU上造成很大的负载时-检查索引的使用,确实有帮助

索引的引入极大地减少了处理器上的负载。假设您的数据库CPU已使用90%。您可能希望将比例缩放一半以处理双重负载。但是,如果大多数查询未建立索引,那么引入索引可以将CPU负载减少10倍。分析索引的使用是值得的!

6)密切关注云提供商的账户

有时间麻烦时,很容易忘记它。因此,请在您的计费系统上设置提醒,以接收有关可能的费用超支的通知。通道宽度特别昂贵。如果无法将内容传输到CDN或廉价地提供大量流量的托管公司(如100tb.com或leaseweb),请准备好承担巨额费用。

7)避免应用程序中的状态

尽管有可能在云中扩展处理器或RAM的资源,但仍然存在无法克服的限制。从这个角度来看,如果您想水平扩展,添加同一应用程序的新实例,则应该为事件的开发做好准备。而且,当您具有同一应用程序的多个实例时,用户请求将在多个服务器之间分配,结果,您将无法在本地磁盘上存储数据。

8)如果站点位于专用主机上,请考虑迁移到云

对于这种情况,您无法轻松扩展:添加服务器将花费一定的时间-要获得可用的新服务器将需要几个小时到几天。另外,您通常按月支付,而不是按小时支付。通常,如果您的站点“撒谎”,您显然不想等待数小时甚至数天。在云中进行扩展要容易得多。

9)“拧紧”基础

结构默认情况下,禁用了一些基本功能,应该对其进行优化-在OS,网络,应用程序管理器和应用程序本身的级别。这样可以大大减少资源消耗。 Google您的技术堆栈设置,并遵循基本准则。

10)准备启动缓存的版本

尽管您付出了所有努力,但随着流量增加了一百倍,您将“躺下”。扩展需要时间。因此,准备使用静态缓存的版本。为此,Cloudfront / Cloudflare缓存,您的CDN缓存,nginx缓存或其他任何缓存都是有用的。只要确保有机会就可以了。

All Articles