问题标签 [performance-monitor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2616 浏览

performance - URL 重写会阻止 IIS 的静态文件缓存吗?

如果我激活 IIS Rewrite 模块 File Cache Hits 计数器不会增加。

我正在通过性能监视器跟踪命中(perfmon.exe / Web Service Cache/File Cache Hits)

如果我根据 IIS 缓存算法停用重写“文件缓存命中”通常会增加。

在这两种情况下,请求的文件都是静态 html 文件。

URL 重写会阻止 IIS 的静态文件缓存吗?

0 投票
1 回答
1437 浏览

.net - .net 应用程序中的内存泄漏 + 奇怪的 GC 行为

我不完全确定该去哪里寻求帮助,所以我想我会尝试使用 stackoverflow,因为它通常可以回答我大约 90% 的编程相关问题。

简而言之,我有一个正在泄漏内存的开源 .NET 应用程序。从某种意义上说,这可能不是真正的内存泄漏,当应用程序关闭时,我怀疑内存已被回收,但在它运行时,它会不断分配更多内存而不释放它。最终,aSystem.OutOfMemoryException被抛出。

为了调试问题,我按照本文中推荐的步骤进行了调试,并生成了下图,其中红色是 .NET/CLR 内存“#Bytes in all Heaps”,绿色是带有 Windows 性能监视器工具的进程“Private Bytes” (请注意,绿线已被统一缩小,看起来更接近红线,因为只有线条的形状对我来说很重要):性能监视器输出

我将图像作为托管内存泄漏的证据,然后使用 Windows 的调试诊断工具尝试定位泄漏源(如文章中所述)。然而,我从调试诊断工具得到的报告非常奇特。

基本上,每次尝试在应用程序运行时每 5 秒收集一次“完全 UserDump”,但由于当时垃圾收集器始终处于垃圾收集周期的中间,导致调试诊断输出错误并阻止它收集任何有用的 .NET 内存相关信息的工具。

现在我被卡住了,我知道我有一个托管的内存泄漏,但我不知道如何缩小它的范围。我也很困惑垃圾收集器如何总是处于收集周期的中间,这让我想知道垃圾收集线程是否被某种方式阻塞,阻止它释放内存和/或退出垃圾收集周期。

在性能监视器图的某些部分中,分配的 .NET 内存会下降一点,因此垃圾收集器不会永远卡住,但它肯定是大部分时间都卡住了,否则调试诊断应该能够做到一个用户转储。

几个问题:

  1. .NET 应用程序中的垃圾收集器是否有可能在尝试释放一些内存时卡住,可能来自一些编码不良的析构函数/终结器或其他东西?

  2. 我可以使用什么策略来继续缩小问题的根源?

0 投票
1 回答
87 浏览

ruby - 在传递包含变量的块时从方法内访问变量

据我了解,每次它通过 run_times 运行时,它都会弹出一个 run_times 值并将其添加到 fake_time。使用我的测量方法,我应该收集这些并得到平均值。但我似乎无法从方法中获取值。

它需要通过以下rspec:

这是我的代码:

先感谢您!我已经坚持了一段时间,似乎无法得到任何工作。

0 投票
1 回答
717 浏览

vmware - 未来的 SDK 版本是否支持 VimService?

我们计划开发一个应用程序来监控来自各种 ESX 服务器的性能计数器。可用的两个选项是 vimService 和 esxtop。Esxtop 可能会导致被监视的 ESX 服务器上的额外 CPU 消耗(如此处所述)。但我们也怀疑使用 vimservice,因为我们不确定 vimservice 是否会在 SDK 的未来版本中可用。由于后续版本可能不存在 vSphere 客户端。我们试图搜索是否会从未来的 SDK 版本中删除 vimservice,但没有任何用处。请使用 vimservice SDK 更新未来的计划。

另外要监控 ESX 性能计数器,除了 esxtop 和 vimservice 之外,还有没有更好的方法。请说清楚。

提前谢谢你。

0 投票
1 回答
14909 浏览

email - 使用 PowerShell 脚本从性能监视器发送电子邮件警报

我在性能监视器 (Windows Server 2008 R2) 中创建了一个警报,只要 \Processor(_Total)\% Processor Time 高于 10 就应该触发该警报(一个小值只是为了保证始终满足发送警报的条件)。您可以在图像中看到警报任务属性。

在此处输入图像描述

此外,我还在任务计划程序中创建了一个新任务,无论用户是否登录,它都会运行,它会以最高权限运行。此任务的触发器具有以下属性:

  • 开始任务:在一个事件上
  • 设置:基本
  • 日志:系统
  • 来源:处理器

动作(这是我不知道是否正确的部分)具有以下设置:

  • 行动:启动程序
  • 程序/脚本:用于发送电子邮件的 PowerShell 脚本的路径。

PowerShell 代码如下($name、$date、$counter、$threshold、$value 应该来自性能监视器数据收集器集警报任务属性,如上图所示):

任务启动后,我在历史记录中会显示以下内容:任务已启动、操作已启动和已创建询问流程。电子邮件永远不会发送。

我尝试使用操作发送电子邮件:发送电子邮件,它工作正常。有谁知道可能出了什么问题?

0 投票
0 回答
805 浏览

performance - JMeter 显示比 Windows 性能监视器更多的内存使用情况

嗨,我一直在使用 JMeter PerfMon 来获取 CPU 和内存统计信息。然而,在之前的测试中,我决定向管理员寻求帮助并使用 Windows 性能监视器。我抓取了一个内存性能示例,似乎 PerfMon 插件的使用率往往比 Windows 监视器增加:

Windows 监视器在图表(和 scv)中显示稳定的 50% 平均值:

视窗监视器

但是 Jmeter 的 PerfMon 插件显示了 70% 的平均值:

性能监视器

问题是我不知道要报告哪些结果。我什至仔细检查了我的目标是正确的服务器、时间范围和测量以避免错误,但我不知道为什么每个工具显示的结果都有点不同。其他服务器和指标的模式相同:Jmeter 中的平均值更高。

我宁愿使用 JMeter,因为它更容易在所有服务器中设置并收集结果,但我不知道这些是否比 Windows 性能监视器中的更可靠。在网络上的其他示例中,我看到 Jmeter 报告超过 100%,因此 JMeter 可能已经对结果反应过度了。任何人都知道 JMeter PerfMon 是否足够准确来报告它而不是 Windows 性能监视器?如果我们在 JMeter 报告中设置了一个基准线,而在 Windows 监视器中则不会,这可能会影响我们。也许有人比较了不同工具的结果。

0 投票
1 回答
628 浏览

c# - 使用性能监视器的 Microsoft Excel 互操作内存泄漏测试

我在 Windows 服务应用程序中使用 Microsoft Excel 互操作来生成 Excel 报告。由于我使用的是互操作程序集,因此需要确保没有内存泄漏。

我试图通过处理(关闭、退出、分配 null)所有 excel 互操作组件(如工作表、工作簿、excel 应用程序)来通过代码处理内存泄漏。但我想确认处理内存泄漏情况的修复程序是否正常工作。

为此,我正在使用性能监视器工具并将指向 Windows 服务计数器的 .Net CLR 互操作添加到性能监视器。但是,我不确定如何确认或验证定义的指标,例如存根数、CCW 数。可以确认使用 Microsoft Excel 互操作库的 Windows 服务应用程序中没有内存泄漏的指标值应该是多少。

请建议使用性能监视器确认或计算没有内存泄漏的方法。

0 投票
0 回答
372 浏览

performance - 代码覆盖率未显示源 dll 中的覆盖率,仅显示测试 dll 中的覆盖率

代码覆盖率仅显示测试 dll 的覆盖率。我想要我正在测试的服务中源 dll 的覆盖率。

遵循以下步骤: 1. 检测二进制文件:“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\x64\vsinstr.exe”%%f /COVERAGE

所有的二进制文件都被检测了。

  1. 盯着 Perf Monitor "c:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\x64\vsperfmon" /coverage /output:"C:/inetpub/wwwroot/Service/bin/Test.coverage" /跨会话/用户:“每个人”

  2. 运行测试 "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\inetpub\wwwroot\Service\bin\ApiTest.dll" /UseVsixExtensions:True /Settings:"XMLFile1.runsettings" /TestCaseFilter:"Name=MyTestCase" /logger:trx /Platform:x64 /inIsolation /enablecodecoverage

测试成功

  1. 停止监视器 cd c:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\x64 vsperfcmd.exe /shutdown
0 投票
1 回答
494 浏览

performance - .NET CLR 内存未显示进程 ID

我正在尝试在 perfmon 而不是 w3wp#1、w3wp#2....等中查看进程 ID

我遵循了来自http://weblogs.asp.net/owscott/registry-change-for-perfmon-and-pid-data的有据可查的注册表更改

但是,即使重新启动服务器后,我仍然看不到 .NET CLR 内存的进程 ID。我可以在其他柜台看到它。

非常感谢您的帮助。非常感谢

gmat

0 投票
1 回答
737 浏览

asp.net - WebAPI 生命周期/请求队列

我有一个调用 WebAPI 的 AngularJS 应用程序。如果我记录我发起请求的时间(在我的角度控制器中)并记录 OnActionExecuting 运行的时间(在我的 WebAPI 控制器中的操作过滤器中),我有时会注意到大约 2 秒的间隙。我假设在此过滤器之前没有其他任何运行,这是由于请求被阻止/排队。我假设这是因为如果我删除所有其他数据调用,我看不到这个差距。

WebAPI 一次可以处理的并行请求数是多少?我尝试查看 ASP.NET 性能监视器,但找不到可以查看此数据的位置。有人可以对此有所了解吗?