问题标签 [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.
performance - URL 重写会阻止 IIS 的静态文件缓存吗?
如果我激活 IIS Rewrite 模块 File Cache Hits 计数器不会增加。
我正在通过性能监视器跟踪命中(perfmon.exe / Web Service Cache/File Cache Hits)
如果我根据 IIS 缓存算法停用重写“文件缓存命中”通常会增加。
在这两种情况下,请求的文件都是静态 html 文件。
URL 重写会阻止 IIS 的静态文件缓存吗?
.net - .net 应用程序中的内存泄漏 + 奇怪的 GC 行为
我不完全确定该去哪里寻求帮助,所以我想我会尝试使用 stackoverflow,因为它通常可以回答我大约 90% 的编程相关问题。
简而言之,我有一个正在泄漏内存的开源 .NET 应用程序。从某种意义上说,这可能不是真正的内存泄漏,当应用程序关闭时,我怀疑内存已被回收,但在它运行时,它会不断分配更多内存而不释放它。最终,aSystem.OutOfMemoryException
被抛出。
为了调试问题,我按照本文中推荐的步骤进行了调试,并生成了下图,其中红色是 .NET/CLR 内存“#Bytes in all Heaps”,绿色是带有 Windows 性能监视器工具的进程“Private Bytes” (请注意,绿线已被统一缩小,看起来更接近红线,因为只有线条的形状对我来说很重要):性能监视器输出。
我将图像作为托管内存泄漏的证据,然后使用 Windows 的调试诊断工具尝试定位泄漏源(如文章中所述)。然而,我从调试诊断工具得到的报告非常奇特。
基本上,每次尝试在应用程序运行时每 5 秒收集一次“完全 UserDump”,但由于当时垃圾收集器始终处于垃圾收集周期的中间,导致调试诊断输出错误并阻止它收集任何有用的 .NET 内存相关信息的工具。
现在我被卡住了,我知道我有一个托管的内存泄漏,但我不知道如何缩小它的范围。我也很困惑垃圾收集器如何总是处于收集周期的中间,这让我想知道垃圾收集线程是否被某种方式阻塞,阻止它释放内存和/或退出垃圾收集周期。
在性能监视器图的某些部分中,分配的 .NET 内存会下降一点,因此垃圾收集器不会永远卡住,但它肯定是大部分时间都卡住了,否则调试诊断应该能够做到一个用户转储。
几个问题:
.NET 应用程序中的垃圾收集器是否有可能在尝试释放一些内存时卡住,可能来自一些编码不良的析构函数/终结器或其他东西?
我可以使用什么策略来继续缩小问题的根源?
ruby - 在传递包含变量的块时从方法内访问变量
据我了解,每次它通过 run_times 运行时,它都会弹出一个 run_times 值并将其添加到 fake_time。使用我的测量方法,我应该收集这些并得到平均值。但我似乎无法从方法中获取值。
它需要通过以下rspec:
这是我的代码:
先感谢您!我已经坚持了一段时间,似乎无法得到任何工作。
vmware - 未来的 SDK 版本是否支持 VimService?
我们计划开发一个应用程序来监控来自各种 ESX 服务器的性能计数器。可用的两个选项是 vimService 和 esxtop。Esxtop 可能会导致被监视的 ESX 服务器上的额外 CPU 消耗(如此处所述)。但我们也怀疑使用 vimservice,因为我们不确定 vimservice 是否会在 SDK 的未来版本中可用。由于后续版本可能不存在 vSphere 客户端。我们试图搜索是否会从未来的 SDK 版本中删除 vimservice,但没有任何用处。请使用 vimservice SDK 更新未来的计划。
另外要监控 ESX 性能计数器,除了 esxtop 和 vimservice 之外,还有没有更好的方法。请说清楚。
提前谢谢你。
email - 使用 PowerShell 脚本从性能监视器发送电子邮件警报
我在性能监视器 (Windows Server 2008 R2) 中创建了一个警报,只要 \Processor(_Total)\% Processor Time 高于 10 就应该触发该警报(一个小值只是为了保证始终满足发送警报的条件)。您可以在图像中看到警报任务属性。
此外,我还在任务计划程序中创建了一个新任务,无论用户是否登录,它都会运行,它会以最高权限运行。此任务的触发器具有以下属性:
- 开始任务:在一个事件上
- 设置:基本
- 日志:系统
- 来源:处理器
动作(这是我不知道是否正确的部分)具有以下设置:
- 行动:启动程序
- 程序/脚本:用于发送电子邮件的 PowerShell 脚本的路径。
PowerShell 代码如下($name、$date、$counter、$threshold、$value 应该来自性能监视器数据收集器集警报任务属性,如上图所示):
任务启动后,我在历史记录中会显示以下内容:任务已启动、操作已启动和已创建询问流程。电子邮件永远不会发送。
我尝试使用操作发送电子邮件:发送电子邮件,它工作正常。有谁知道可能出了什么问题?
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 监视器中则不会,这可能会影响我们。也许有人比较了不同工具的结果。
c# - 使用性能监视器的 Microsoft Excel 互操作内存泄漏测试
我在 Windows 服务应用程序中使用 Microsoft Excel 互操作来生成 Excel 报告。由于我使用的是互操作程序集,因此需要确保没有内存泄漏。
我试图通过处理(关闭、退出、分配 null)所有 excel 互操作组件(如工作表、工作簿、excel 应用程序)来通过代码处理内存泄漏。但我想确认处理内存泄漏情况的修复程序是否正常工作。
为此,我正在使用性能监视器工具并将指向 Windows 服务计数器的 .Net CLR 互操作添加到性能监视器。但是,我不确定如何确认或验证定义的指标,例如存根数、CCW 数。可以确认使用 Microsoft Excel 互操作库的 Windows 服务应用程序中没有内存泄漏的指标值应该是多少。
请建议使用性能监视器确认或计算没有内存泄漏的方法。
performance - 代码覆盖率未显示源 dll 中的覆盖率,仅显示测试 dll 中的覆盖率
代码覆盖率仅显示测试 dll 的覆盖率。我想要我正在测试的服务中源 dll 的覆盖率。
遵循以下步骤: 1. 检测二进制文件:“C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\x64\vsinstr.exe”%%f /COVERAGE
所有的二进制文件都被检测了。
盯着 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" /跨会话/用户:“每个人”
运行测试 "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
测试成功
- 停止监视器 cd c:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\x64 vsperfcmd.exe /shutdown
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
asp.net - WebAPI 生命周期/请求队列
我有一个调用 WebAPI 的 AngularJS 应用程序。如果我记录我发起请求的时间(在我的角度控制器中)并记录 OnActionExecuting 运行的时间(在我的 WebAPI 控制器中的操作过滤器中),我有时会注意到大约 2 秒的间隙。我假设在此过滤器之前没有其他任何运行,这是由于请求被阻止/排队。我假设这是因为如果我删除所有其他数据调用,我看不到这个差距。
WebAPI 一次可以处理的并行请求数是多少?我尝试查看 ASP.NET 性能监视器,但找不到可以查看此数据的位置。有人可以对此有所了解吗?