【问题标题】:How to Measure a Web-Apps need for scalability如何衡量 Web 应用程序对可扩展性的需求
【发布时间】:2011-11-19 20:01:08
【问题描述】:

我正在构建一个网络应用程序,它将向不断增长的用户群提供内容。我想知道从哪里开始使用可扩展性,以及如何衡量我的应用程序的性能,以便我知道何时需要它。

例如,我知道随着网站流量的增长,缩小脚本和使用缓存存储静态内容等措施将有助于管理加载时间,但我不确定何时是实施这些功能的合适时机。

此外,在我的服务器开始崩溃和阻塞之前,我如何衡量网站的性能、了解何时开始添加更多服务器以及构建应用程序的稳健性等?

提前谢谢...

【问题讨论】:

    标签: php web-applications scalability


    【解决方案1】:

    我在编码方面比服务器管理员更多......只是一个想法......我会有一个与 index.php 没有区别的 index1.php,除了它在开始时会有一个 microtime() 和另一个在最后一行(或您怀疑的某些代码周围)计算执行时间。在最后一行(微时间)之后,我将有一个函数将此执行时间与日期一起存储在数据库中。

    我每天会运行 index1.php 页面表单 2 或 3 次,并会存储当天的 maxtime。在一周结束时,您可以生成图表或直接查看值如何随时间变化,以便您决定要做什么。

    mysql 优化(通常有很多东西需要优化,数据类型、索引、sql 查询等)、良好的设计、繁重的循环、异步加载(XmlHttp- 可以帮助很多)都是需要考虑的事情。

    【讨论】:

      【解决方案2】:

      缩小脚本和缓存内容是您应该立即做的事情。它会影响页面加载速度,从而影响用户体验无论您的网站加载程度如何。研究表明,速度更快的网站具有更高的转化率——谷歌一下。据称页面速度也有助于搜索引擎排名。

      您可以使用Google Page Speed 和雅虎的YSlow 等工具来衡量页面加载性能。这两种工具还提出了改进方法,因此请让它们成为您的指南。

      【讨论】:

        【解决方案3】:
        1. 首先定义您希望为用户提供的服务级别。例如,从用户的角度来看,任何页面的加载时间都不应超过 1 秒。该网站应该有 99.9% 的正常运行时间等。

        2. 根据服务级别,定义可接受的性能(在页面加载时间等方面)。

        3. 对现有性能进行基准测试。即根据当前使用水平的不同标准衡量您当前的表现。

        4. 确定要优化的页面。如果大部分站点都需要优化,您需要查看整体解决方案(例如:缩小 js/css、缓存等)。如果特定页面需要优化,请查看单个查询等。

        5. 定期测量性能以查看您的服务水平是否仍然达到或需要进一步扩展。

        这些是您可以采取的一般步骤。至于具体步骤,请考虑:

        1. 对所有内容(数据库、多个网络服务器等)进行分区/拆分。

        2. 异步设计(即你的任何进程可以占用大量资源,你应该转换为异步进程。假设你允许用户上传文档。然后应用程序获取文档并进行一些处理文档。不是在单个 php 页面上进行所有处理,而是将请求添加到队列中,然后立即让用户知道他的请求已排队。让一个单独的后台进程通过查看队列来进行处理。一旦完成,你可以让用户知道他的请求是进程。

        有关更多指南,您可能需要查看一本名为“可扩展性的艺术”的书http://amzn.to/oSQGHb

        【讨论】:

        • 这正是我要找的,感谢大体流程和书籍推荐。我去看看!
        猜你喜欢
        • 2012-04-13
        • 2020-11-19
        • 1970-01-01
        • 2019-07-11
        • 2014-09-13
        • 2011-07-09
        • 2012-07-30
        • 2010-09-30
        • 2014-10-25
        相关资源
        最近更新 更多