Web 应用程序负载测试的最佳实践和文献 [关闭]
Posted
技术标签:
【中文标题】Web 应用程序负载测试的最佳实践和文献 [关闭]【英文标题】:Best practices and literature for web application load testing [closed] 【发布时间】:2011-01-04 19:37:27 【问题描述】:作为一名网络开发人员,我(在我的职业生涯中曾多次)被问及我们所构建网站的性能。 有时您会遇到一些半模糊的问题,例如“即使在产品发布周,网站还会继续表现良好吗?”、“网站能否处理 百万 用户?”,甚至“网站做得怎么样?"
当然,这些问题是非常合理的,而且我一直都在尽力回答这些问题,结合使用
历史数据(谷歌分析/IIS 日志) 网络负载测试工具 服务器性能计数器 经验 直觉 常识 来自我们的系统管理员的一点帮助 我个人对相关软件架构的理解我通常能够对这些问题提出合理的答案。 但是,Web 应用程序的性能可能会受到许多因素的影响(数据库依赖项、缓存策略、并发问题等、用户行为)。
我是一名程序员而不是静态学家,我对这个问题的处理方法一直深感不科学。所以我做了更多的研究......当我真的在寻找一种方法来理解这些事情时,我所有的谷歌结果似乎都集中在工具、功能和指标(以及更多指标)上。 >。
问题: 有哪些好的资源(书籍?)可供开发人员阅读有关 Web 负载测试主题的最佳实践,这将帮助我回答这些类型的问题?
【问题讨论】:
【参考方案1】:首先,您的问题证明您确实了解问题所在。有时创建工具、脚本等来生成负载可能很棘手,但真正的挑战在于评估结果和监控什么。
您的问题的一个非常简单的答案可能是在与当前或预期使用情况类似的生产环境中生成负载。如果它运行正常,没有任何崩溃或性能缓慢,通常就足够了。之后,增加负载以查看您的限制在哪里。
当您达到极限时,我的经验是,这纯粹是一个项目预算问题。我们是否会投入更多的时间/金钱/资源等来评估原因。
我是一名测试专家,我确实建议将负载测试作为开发过程的重要组成部分,但不幸的是,这并不总是符合管理层的决定。
所以你的问题的答案是几乎每个人都需要参与这个过程: 开发人员监控他们的代码;系统管理员需要监控 CPU、内存使用等;数据库管理员;网络人;等等。他们可能都需要自己的知识来源才能记录和分析所有这些信息。
一些书籍提示:
应用程序性能测试的艺术:对程序员和质量保证的帮助 http://www.amazon.com/exec/obidos/ASIN/0596520662/
容量规划的艺术:扩展 Web 资源 http://www.amazon.com/exec/obidos/ASIN/0596518579/
Web 应用程序性能测试指南 http://www.amazon.com/exec/obidos/ASIN/0735625700/
【讨论】:
太棒了!我将从学习应用程序性能测试的艺术开始。我同意它涉及所有学科,其中很多都取决于经验。这本书听起来像是一个好的开始。谢谢。【参考方案2】:你见过吗:
J.D. Meier、Carlos Farre、Prashant Bansode、Scott Barber 和 Dennis Rea 编写的 Web 应用程序性能测试指南
它甚至可以在网络上免费获得。 http://msdn.microsoft.com/en-us/library/bb924375.aspx
【讨论】:
谢谢,看起来不错的资源!【参考方案3】:您可以模拟典型的用户行为并使用其中一种云服务来模拟网站上的大量用户,以查看您的网站处理大量用户的情况。听说亚马逊的服务不错
【讨论】:
谢谢,基于云的服务绝对有用。然而,它们只是工具,就像任何工具一样,它与使用它的人一样有用。 - 我正在专门寻找指南和最佳实践。亚马逊看起来很有趣,我来看看。【参考方案4】:我可以推荐两本 2010 年出版的书:
第一个是Matt Perdeck 的"ASP.NET SITE PERFORMANCE SECRETS",于2010 年秋末发布。它更多地是从性能优化的角度编写的,但也有关于负载测试的详细资料。这是一本免费的 pdf 电子书。
第二本书是".NET Performance Testing and Optimization - The Complete Guide",作者是 Paul Glavich,Chris Farrell”。它是关于性能/负载测试的非常完整的源代码
【讨论】:
以上是关于Web 应用程序负载测试的最佳实践和文献 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
构建 RESTful API 和 Web 应用程序时的最佳实践 [关闭]