![衡量最终用户应用程序的性能?](https://linux22.com/image/502560/%E8%A1%A1%E9%87%8F%E6%9C%80%E7%BB%88%E7%94%A8%E6%88%B7%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%80%A7%E8%83%BD%EF%BC%9F.png)
我最近发现一个问题,我们的代理配置存在问题,导致用户浏览网站时性能变慢。由于我们访问开发和测试环境的方式不同,我们的大多数 IT 人员的配置略有不同,因此在修复之前,我们收到了一堆含糊不清的“互联网速度很慢!”投诉。几个月前,我们遇到了一个问题,一个应用程序中的错误导致许多 PC 的性能下降……但我们很难检测到它。
这个问题让我很烦恼,因为这是我们完全可以主动解决的问题。问题是我们没有仪器来知道通常需要 5 秒或 5 分钟才能完成用户每天执行的任务。
是否有人知道一个免费/便宜的工具可以让我们编写如下脚本:
- 加载 Internet Explorer,应用程序启动时间
- 访问 google.com,计算页面加载时间
- 转到 example.com,计算页面加载时间
- 关闭浏览器
我希望能够让脚本每 15 分钟执行一次这样的操作,以制定基准并找出“慢”对用户意味着什么。互联网只是一个例子,我认为这对内部和其他应用程序也很有用。
答案1
在我看来,应用程序本身应该支持使用任何标准监控套件监控这些类型的指标,包括设置默认警告阈值^^但是,我猜大多数应用程序都不会这样做,但有几个值得注意的例外,例如带有 System Center Operations Manager 的 Exchange 等等...
...在这种情况下,我会将其视为用户和可用性研究问题。定期对用户工作流程进行现场测试将是一个有用的开始,即使它不是自动化的。
通过适当的性能监控可以发现影响客户端性能的应用程序,但它需要包括所有可能使 PC 运行缓慢的指标,如 CPU 和内存负载、磁盘和网络 I/O 负载和模式等 - 就像服务器监控一样。
我理解开发和测试环境访问,但我强烈主张至少让第一线支持人员和其他用户使用相同的标准图像、网络等等——如果这对部门中的每个人来说都是不可能实现的。
使用远程管理服务器/多用户工作站进行日常管理工作是一种简单的方法,无需依赖以特定方式或使用特定工具设置的本地电脑。
答案2
我真的很喜欢在用户注意到任何事情之前监控速度缓慢的想法。
为了方便起见,我会尝试将其与您正在使用的任何监控软件(Nagios 等)结合起来。
Cucumber 框架看起来很有趣 -http://cukes.info/并且有一个适用于它的 Nagios 插件。(谷歌“Cucumber-Nagios”)
您还可以使用 Powershell 或其他脚本语言编写 Internet Explorer 脚本。不过,我总觉得这比较麻烦。
答案3
如果你需要了解网站的性能,并希望稍后诊断问题,那么你需要网络监控软件。你可以通过以下方式了解有关网络监控的更多信息:
对于免费来说,wireshark 不错。对于商业用途,Capsa 比较合适。
答案4
您看过 HP SitScope 吗?它不仅可以提取您的系统信息(包括代理服务器中潜在的 SNMP 信息),还可以运行 Web 应用程序性能监控脚本。此应用程序采样技术是与 HP LoadRunner 和 HP Business Availability Center 共享的技术组件,本质上是一个无 GUI 的浏览器,用于完成脚本任务。警报和报告功能内置于 SiteScope 中。
您还可以在脚本基础上执行的操作是查看在请求开始和结束时使用带有一些计时器的 CURL。PCODE 可能看起来像这样
- 获取开始时间(精确到毫秒)
- 使用 CURL 发出页面下载请求
- 获取结束时间(精确到毫秒)
- 从结束时间中减去开始时间得到请求时间
- 向收集服务器推送请求时间
- 如果请求时间超出 SLA 值,则向组发送通知电子邮件
您可以轻松地使用 chron 任务每十五分钟左右运行一次上述操作。使用您最喜欢的脚本语言执行该操作。