【问题标题】:How unhandled exceptions leads to Azure app service slowness?未处理的异常如何导致 Azure 应用服务缓慢?
【发布时间】:2019-12-26 06:43:26
【问题描述】:

当我在性能和可用性部分查看 Azure 应用服务诊断时,他们指出 4XX 和 5XX 错误可能会影响应用程序的性能和可用性。

请解释异常与网络应用性能之间的关系以及异常如何降低网站性能。

【问题讨论】:

    标签: performance azure exception azure-web-app-service azure-webapps


    【解决方案1】:

    正如 Sajeetharan 正确提到的那样,异常可能会导致大量问题,我喜欢良好的报价。对于表现出的症状 - 页面加载缓慢,有时超时

    此类问题通常是由应用级别问题引起的,例如:

    • 请求需要很长时间。
    • 应用程序使用高内存/CPU
    • 应用程序因异常而崩溃

    只是为了隔离与资源/基础设施相关的问题 - 您可以确保“始终开启”功能已启用,并且您可以扩展应用服务计划。

    一般 - 解决此类性能问题可以分为三个不同的任务,按此非常丰富的文档中提到的顺序(为了清楚起见,在此处突出显示其中的一些)方便):

    1. 观察和监控应用程序行为
    2. 收集数据
    3. 缓解问题

    应用服务在每个步骤中为您提供各种选项:

    1A - 跟踪服务运行状况 - 每次出现服务中断或性能下降时,Azure 都会公布。

    1B - 监控您的应用 - 此选项可让您了解您的应用是否有任何问题。

    1C - *监控 Web 端点状态 - 端点监控从地理分布的位置配置 Web 测试,以测试 Web URL 的响应时间和正常运行时间。

    1D - 使用扩展程序监控应用程序性能 - 您还可以使用站点扩展程序监控应用程序性能。

    2A - 启用 Web 服务器诊断 - 您可以启用日志,例如 - 详细错误日志、失败请求跟踪和 Web 服务器日志

    2B - 启用应用程序诊断 - 从应用服务收集应用程序性能数据

    2C - 您可以启用 Application Insights Profiler 以开始捕获详细的性能跟踪。

    2D - 远程分析在进程的 CPU 使用率很高并且您的进程运行速度低于预期或 HTTP 请求的延迟高于正常值时很有用。

    2E- 利用 Kudu 控制台 - Kudu 是一个诊断控制台,如果您的应用程序首次抛出异常,您可以使用 Kudu 和 SysInternals 工具 Procdump 创建内存转储。这些内存转储是该过程的快照,通常可以帮助您解决应用中更复杂的问题。

    3.纵向扩展/横向扩展和回收 - 根据应用需求,您可以纵向扩展资源并根据需要回收/重新启动。

    对于冗长的回复深表歉意,只是分享了几个缩小问题范围的选项。希望以上信息对您有所帮助!告诉我们进展如何,我们非常乐意帮助您进一步调查/纠正问题。

    【讨论】:

      【解决方案2】:

      这不仅特定于 Azure,而且如果您将应用程序部署在任何地方(在云中或本地)也很常见。异常可能会导致大量问题,尤其是在性能方面。

      有句话

      No matter how high the performance of your program is, as long as you did not handle the "exceptions", it's broke.

      您需要缓存数据、处理异常、处置资源等,以避免出现性能问题和网站崩溃。例如,在 javascript 应用程序中 回调通常会分配内存、累积工作,但会涉及大量额外的样板文件,并且会使线程安全变得很痛苦。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多