简体   繁体   English

Web应用程序稳定性的良好标准指标是什么?

[英]What is a good standard metric for stability in a web application?

We currently facing some stability issues with our develop web application product. 当前,我们开发的Web应用程序产品面临一些稳定性问题。 This product was built in part by our partner contractor, and we want to have a good standard metric for stability. 该产品部分由我们的合作承包商制造,我们希望有一个很好的稳定性标准。 The issues we have been facing is constant crashing. 我们一直面临的问题是持续崩溃。 The web application is unable to identify when there are more request than it can handle, it builds up memory (like a memory leak) and later it dies without any type of possible recovery. 该Web应用程序无法确定何时有更多请求无法处理,它会建立内存(例如内存泄漏),然后在没有任何可能恢复的情况下死掉。

We would like to write a very simple measurement for our partner contractor to meet. 我们想写一个非常简单的衡量标准,供我们的合作伙伴承包商见面。 We thought about a few ideas: 我们考虑了一些想法:

  • A system that is able to identify high loads of request and serve server unavailable try again pages, until it recovers from the high load. 一个能够识别高请求负载并服务于服务器不可用的重试页面的系统,直到从高负载中恢复为止。
  • A set number of users concurrent or pageviews that will allow us to have a clear metric of when to use scalability options like Load Balancer and Caching. 一定数量的用户并发访问量或综合浏览量,这使我们可以清楚地确定何时使用诸如Load Balancer和Caching之类的可扩展性选项。

At this moment we have to use caching and load balancing to be able to recycle the web applications every x hours (depending on the load) so they don't die constantly. 目前,我们必须使用缓存和负载平衡功能,以便每隔X个小时(取决于负载)回收Web应用程序,以使它们不会持续死机。

Thanks for your help. 谢谢你的帮助。

"High load" is really hard to define. 确实很难定义“高负载”。

It's much, much easier for you to determine what the minimally acceptable service levels are. 您可以轻松得多地确定最低可接受的服务级别。

  1. Minimum number of concurrent requests. 最小并发请求数。

  2. Maximum time to serve a request. 服务请求的最长时间。

  3. Minimum number of requests per hour. 每小时最少请求数。

Simple service levels like that are easy to measure, easy to simulate and easy to write into a contract. 像这样的简单服务水平易于测量,易于模拟并且易于写入合同中。 Any lawyer or accountant can review the results of a load test and say they did or did not meet the minimums. 任何律师或会计师都可以查看负载测试的结果,并说达到或不达到最低要求。 No deep technical knowledge needed at all. 完全不需要深入的技术知识。

Note that when you do this, "minimums become maximums". 请注意,执行此操作时,“最小值变为最大值”。 If you say they must serve a minimum of 10,000 requests per hour, your testing will often reveal that's the maximum, also. 如果您说他们每小时至少必须处理10,000个请求,那么您的测试通常也会发现这也是最大的。

So define your minimums and maximums from your business model. 因此,请根据您的业务模型定义最小值和最大值。 How many do you need to keep people happy and productive? 您需要多少才能使人们感到高兴和富有成效? Asking for more is silly. 要求更多是愚蠢的。 Asking for fewer means unhappy or unproductive users. 减少需求意味着用户不满意或生产效率低下。

Typically, I've seen these performance type requirements built into the specification... "the system should support x amount of concurrent users" or "x number of requests per hour". 通常,我已经在规范中看到了这些性能类型要求……“系统应支持x并发用户数量”或“ x每小时请求数量”。

These things can be easily tested and verified using something like LoadRunner or you can roll your own similar load tester using something like HttpUnit. 可以使用LoadRunner之类的东西轻松地测试和验证这些东西,也可以使用HttpUnit之类的东西来滚动自己的类似负载测试器。

What you'd need are following parameters: 您需要以下参数:

  1. Load Test: 负载测试:

    i) Estimate your application usage behaviour.. (ie) no. i)估计您的应用程序使用行为。 of concurrent users expected, typical user activity 预期并发用户数,典型用户活动

    ii) Load the application gradually and look at parameters like cpu usage, response times, throughput, etc. ii)逐步加载应用程序,并查看诸如CPU使用率,响应时间,吞吐量等参数。

  2. Sustainability: 可持续发展

    Load the application (at optimum load) for a considerable amount of time (12-24 hrs) and look at the same parameters cpu usage, error levels, etc. 在相当长的时间内(12-24小时)加载应用程序(以最佳负载),并查看相同的参数,CPU使用率,错误级别等。

You can also try scalability, where you would add hardware incrementally and monitor the behaviour of the application. 您还可以尝试可伸缩性,在该可伸缩性中,您将逐步添加硬件并监视应用程序的行为。

This should give you a decent understanding of the behaviour of your system. 这应该使您对系统的行为有一个体面的了解。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Java内存消耗是否是良好的Web应用程序运行状况检查指标? - Is Java Memory Consumption a good Web Application Healthcheck Metric? 决定2个字符串是否“足够相似”的好指标是什么? - what is a good metric for deciding if 2 Strings are “similar enough” 什么是支持REST的基于Java Web的应用程序的良好技术堆栈? - What is a good technology stack for a java web based application with REST support? 执行 web 应用程序的初始配置有哪些好的模式? - What are some good patterns for performing initial configuration of a web application? Facebook代理Web应用程序-它是好的架构/设计吗? - Facebook proxy web application - Is it good architecture/design? 单点登录 (SSO) 标准 Web 管理应用程序 - Single Sign On (SSO) Standard Web Admin Application 在Web应用程序中使用反射是一个好主意吗? - Is it a good idea to use reflections in a Web application? 什么Web FrameWork对Java开发人员有用? - What Web FrameWork will be good for java developers? 什么是Web调用的良好压缩API - What is a good compression API for Web calls 什么是良好而安全的Web支付架构 - What is a good and secure web payment architecture
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM