Project management 你如何做网站容量规划?

Project management 你如何做网站容量规划?,project-management,capacity-planning,Project Management,Capacity Planning,我刚刚读了这本书(顺便说一句,我很喜欢),作者在书中解释了衡量你的服务、找出你的上限、预测你的需求、确保轻松部署等的重要性。。等但通过这本书,他解释了他在Flickr的经历,在Flickr中,他必须始终面对同一个产品 我们很多人都在公司工作,在那里我们面临着其他公司的中小型项目规模。我们必须了解他们的业务、需求、规划架构、模型等。。等等 然后,客户说“我需要支持1000个用户”。那么,一个用户每秒有多少个请求?他们的疗程有多长?他们传输多少数据?它们执行哪些操作?他们要多久 有时可能知道这些数字

我刚刚读了这本书(顺便说一句,我很喜欢),作者在书中解释了衡量你的服务、找出你的上限、预测你的需求、确保轻松部署等的重要性。。等但通过这本书,他解释了他在Flickr的经历,在Flickr中,他必须始终面对同一个产品

我们很多人都在公司工作,在那里我们面临着其他公司的中小型项目规模。我们必须了解他们的业务、需求、规划架构、模型等。。等等

然后,客户说“我需要支持1000个用户”。那么,一个用户每秒有多少个请求?他们的疗程有多长?他们传输多少数据?它们执行哪些操作?他们要多久

有时可能知道这些数字(监控他们现有的应用程序,或者因为他们已经进行了测量),有时不可能(因为他们没有当前的网站,或者只是有可能知道)

您如何猜测服务器的数量、带宽、存储等。。。你使用哪些参考数字


注意。

这通常非常困难,因为当客户询问此问题的答案时,系统甚至没有设计。这实际上是不可能的

作为一个非常粗略的经验法则,我们在每台服务器上每秒使用100个请求。实际数量将因应用程序和用户使用系统的方式而异,但我们发现这是一个很好的初步估计

文档系统的磁盘使用量只是文档数乘以平均大小。带宽是请求数乘以请求的平均大小


您只需记录所有假设,并说硬件需求基于这些假设。

制定此计划需要了解的一些要点

  • 每天有多少用户
  • 要控制多少数据
  • 您将向每个用户显示多少数据
  • 可能需要的平均用户带宽
  • 用户使用站点的平均时间
  • 平均数字可以让你知道你每月需要什么。当然,你还需要考虑峰值数字——但当他们破坏web服务器计算机和网站时,他们每月都会提供带宽和硬盘上的千兆字节,因此峰值在一开始就不是问题。在这里,如果您运行sql查询需要太多的ram,或者如果您与许多其他站点共享计算机,您必须考虑

    量 没有网站,没有经验,你没有实际的措施。 如果没有度量,您实际上无法确定,但您可以遵循一些指南

    • 无论你做什么,
      都要尝试使数据/功能/运行的增长呈线性增长,而不是对数增长
    • 站点的速度不仅取决于计算机的容量和速度
      。只有当电脑在他的极限时,他才能依靠。如果计算机达到其限制,则添加其他资源。但是,在设计软件时必须注意速度,而且速度好的软件也需要成本
    • 数据库中每天有数百万数据吗?您需要更多的ram和硬盘
    • 你有视频和很多大文件要发送吗?您需要更多带宽
    • 您是否有人使用该网站工作?您需要更高的速度和稳定性
    • 你会再做一个电子商务网站吗?您需要更安全、更稳定的
    我们的目标是让他们都拥有,而你首先关注的事情的优先级实际上会发生变化

    计划速度。
    性能和容量:两只不同的动物*
    。性能取决于更多的人力工作,而容量取决于更多的计算机资源。要提高运行速度,首先需要知道如何使计算机运行平稳、快速,然后了解使程序运行快速的一般技巧,特别是web上的程序,然后在程序运行后,需要花更多时间在实际程序上,以提高其在关键领域的性能

    计划扩大。 做好软件设计,注意扩展的可能性,以防你需要更多,从而给你的客户一个机会,从少做起,只在他需要的时候支付更多。所以,当你设计你的软件时,就像你要在一个web池中使用它一样,注意同步,注意公共资源,提供从不同服务器获取数据的能力等等

    有限度的规划 好吧,假设客户说只有1000个用户,对扩展和速度不感兴趣,只需要一个经济高效的站点来完成他的工作。在这种情况下,您也可以使用此限制进行设计。这是什么限制。您不需要对同步进行数十次检查,而是让它像一个单线程、单池程序一样工作。当您有两个池或两台计算机运行同一个应用程序时,您不会使用任何互斥锁、任何双重检查或任何错误。您只需注意,在需要升级的情况下,需要修改代码点

    您也没有编写任何使用多计算机资源的代码。当你运行它的时候,你要注意只有在一个池下运行才能正常工作

    这种单池设计更容易开发,更容易调试,更容易控制,更容易更新错误代码,而且成本更低,但是速度会降低(一个用户在一个线程池上等待另一个用户),并且无法扩展资源,这实际上也与速度有关

    查找统计数据 如果您不知道您可能有多少用户,您可以使用alexa查看与您类似的网站以及他们每月的平均用户/和平均页面浏览量。然后你可能知道可能的带宽

    在你需要它之前不要买 从你对硬件的预测开始,但不要去租两台电脑