1

我们正在构建一个高性能的 Web 应用程序。

不幸的是,有时性能会意外下降,我们希望能够对此进行监控,以便在问题发生时主动解决问题,而不是等待用户报告问题。

到目前为止,我们正在为服务器内存使用、CPU 使用等指标设置系统监视器,并收集数据库的统计信息。

虽然这些显示了系统的整体健康状况,但当某个特定用户的会话速度很慢时,它们对我们没有帮助。我们在 C# 应用程序中实现了跟踪,这在识别数据是罪魁祸首的问题时特别有用,但出于性能原因,跟踪将默认关闭,仅在尝试修复问题时启用。

所以我的问题是我们应该考虑是否有其他最佳实践(例如 WMI)?我们是否应该考虑在我们的 Web 应用程序中构建其他任何东西,这将使我们受益,而本身不会成为性能负担?

4

3 回答 3

1

这在很大程度上取决于您的应用程序,但我总是建议将您的应用程序指标添加到您的监控中。例如最近上传图片的数量,并发用户的数量 - 我想你明白了。结合内存或 CPU 等服务器指标查看应用程序特定指标有时会提供有价值的见解。

于 2012-09-03T16:56:13.527 回答
0

除了负载、磁盘空间等参数的系统健康监控(使用 Nagios),我们

  • 有一个内置的 REST 服务,从 Nagios 调用,它提供关于
    • 每秒事务数(这在我们的例子中是有意义的)
    • 活动会话数
    • 每分钟日志中的错误数
    • ……
    • 简而言之,任何特定于应用程序的东西
  • 监控(虚拟)往返交易所需的时间:就像用户或系统正在执行业务功能一样

所有这些数据都被发送回 Nagios,然后我们配置警报级别和通知。

我们发现监控日志中错误条目的数量可以为许多系统提供一些关于重大崩溃/问题的极好的短期警告。

于 2012-09-03T17:01:42.513 回答
0

我们的许多客户使用处理健康监控的系统和应用程序监视器,以及运行连续合成事务的合成最终用户监视器,从最终用户的角度向您展示 Web 应用程序的性能。它适用于防火墙内外的应用程序。用户经常告诉我们,SEUM 会从特定位置或一天中的特定时间揭示可用性问题。您可以在以下位置下载免费试用版

SolarWinds.com。

于 2012-09-04T16:18:19.983 回答