gpt4 book ai didi

project-management - 您如何进行网站容量规划?

转载 作者:行者123 更新时间:2023-12-03 09:22:58 25 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。

9年前关闭。




Improve this question




刚看完书The Art of Capacity planning (顺便说一句,我喜欢它),作者在其中解释了衡量您的服务、找出您的上限、预测您的需求、确保轻松部署等的重要性。但通过这本书,他解释了他在Flickr,在那里他必须一直面对同样的产品。

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

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

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

您如何猜测服务器的数量、带宽、存储等……您使用哪些引用数字?

问候。

最佳答案

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

  • 每天有多少用户。
  • 您要控制多少数据。
  • 您将向每个用户显示多少数据。
  • 可能需要的平均用户带宽。
  • 用户使用您网站的平均时间。

  • 平均数字可以让您了解您每月需要什么。当然,您还需要考虑峰值数字 - 但是当他们租用网络服务器计算机和站点时,他们按月提供带宽和硬盘上的一些千兆字节,因此峰值在起点不是问题。在那里您必须考虑,如果您运行需要太多内存的 sql 查询,或者您是否与许多其他站点共享计算机。

    措施

    没有网站,没有经验,你就没有实际的措施。
    没有措施,您实际上无法确定,但您可以遵循一些指南
  • 无论你做什么,try to make the grow of your data/features/runs linear and not logarithmic .
  • The speed of your site is not (only) depend from the capacity and the speed of your computer .仅当计算机处于他的极限时才依赖。如果计算机达到他的限制,则添加额外的资源。但是在设计软件时必须注意速度,而好的速度软件也是有成本的。
  • 数据库中每天是否有数百万条数据?您需要更多内存和硬盘
  • 你有视频和很多大文件要发送吗?您需要更多带宽 .
  • 你有使用该网站工作的人吗?您需要更多速度和稳定性
  • 你再做一个电子商务网站吗?您需要更多安全稳定

  • 目标是拥有所有这些,并且您首先关注的优先事项实际上发生了变化。

    计划速度。
    Performance and Capacity: Two diffident animals* .性能基于更多的人力工作,容量基于更多的计算机资源。要想提高速度,首先要知道如何让电脑运行流畅快速,然后才能知道让程序跑得快的一般技巧,尤其是网络上的那些技巧,然后你实际上需要花更多的时间去实际操作程序运行后,以提高其在关键领域的性能。

    计划扩大。

    进行良好的软件设计并注意扩展的可能性,以防您可能需要更多,以便为您的客户提供从很少开始的机会,并仅在他需要时支付更多费用。所以当你设计你的软件时,就像你要在网络池中使用它一样,注意同步,注意公共(public)资源,提供从不同服务器获取数据的能力等。

    有限制地规划

    好吧,假设客户说只有 1000 个用户并且没有兴趣扩展,没有速度,只需要一个具有成本效益的网站来完成他的工作。在这种情况下,您也可以使用此限制对其进行设计。这是什么限制。您无需对同步进行数十次检查,而是使其像单线程、单池程序一样工作。当您有 2 个池或 2 台计算机运行相同的应用程序时,您不会使用任何互斥锁、任何双重检查或任何想法。您只需注意代码点以在需要升级的情况下更改它们。

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

    这种单池设计更易于开发、更易于调试、易于控制、易于更新有缺陷的代码,并且成本较低,但受速度影响(一个用户在一个线程池上等待另一个)并且无法扩展资源,这实际上也与速度有关。

    查找统计信息

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

    在您需要之前不要购买

    从您对硬件的预测开始,但不要从第一天起就租用 2 台计算机。从第一个开始,制定衡量标准,了解数据如何增长,并仅在需要时进行扩展。

    汽车还是一级方程式?

    当程序运行时,如果您遵循它,您会发现许多需要更正的想法。我可以说你只有两个来自我的生活。

    在我们将程序上线后,我们的客户开始添加数据。几个月后,我们注意到数据库增长太多——这是我们从数据输入中没想到的。我们花了将近一周的时间来找出原因并修复它,这是一个设计错误,导致一些统计数据呈对数增长,我们纠正它并继续前进。

    经过两年的运行,我们注意到我们对 SQL 服务器进行了太多不必要的调用。我们追踪它并再次发现一个设计错误,我们纠正它并继续前进。

    其实我们每个月都发现并修复了很多性能上的小点。对我来说,它就像一级方程式。你决定你拥有什么车,一辆需要一直修正才能获得最大 yield 的方程式赛车,还是一辆只需要每年保养一次的简单车?

    客户观点
    Then, the customer says "I need to support 1000 users"好吧,客户不知道编程,并试图从他的角度找到衡量建议的方法。实际上这里还有更多因素,1000 个用户不是一个正确的参数。是每天每分钟还是每月 1000 个用户?是否需要支持实时聊天,或需要查看大量数据,或需要快速工作?因此,也许由您向客户解释正确地将您的程序销售给客户以太,向他解释好程序对于一百万用户的一个用户来说是一样的,实际上它的开始是开发成本而不是用户。

    现在,如果这是一个实际规划站点的问题,那么简单的终点答案是开始做,其余的将被揭示。如果这是因为您为客户寻找答案而提出的问题,那么您必须问自己:为什么一级方程式赛车只能坐一个人而您的汽车可以坐五个人?或者一部电影多少钱?或者我们都知道如何写作,但为什么不是我们所有人都写过并出版过一本书?我的意思是,成本实际上是从你做项目所花费的时间中得到的,而用户自己无法确定。

    猜测、知识还是预测?
    How do you make a guess about the number of servers, bandwidth, storage, etc...我们其实不猜,我们有很多站点,我们每天自动收集很多统计数据,多年的经验,我们从站点的内容中知道,每天可以有多少用户,可以吃多少带宽。我们的服务器上还运行着许多数据库,我们可以看到它们使用了多少数据。对于我们 99% 的网站来说,所有这些都是低数字。所以这是知识和经验,以及真实的实时统计数据。预测是通过监控流量和它们的使用来实现的,我们试图让它们变得更好,以获得更多流量、更多用户,并且我们试图从我们存档的内容中预测他们将来是否需要更多资源。此外,99% 的站点都是运行非常简单的演示文稿的单一池。

    '* 从书中

    关于project-management - 您如何进行网站容量规划?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065681/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com