如何测量一个活的ASP.NET MVC网络应用程序的内存使用量?
所以马上就不确定这个问题是否更适合另一个stackexchange网站. 我在Windows Server 2008和IIS 7.5 上运行ASP.NET MVC 3 Web应用程序 网站最初运行良好,但我可以看到内存使用逐渐增长.大约12个小时后,它几乎不在记忆中,站点窒息. 我正在使用很多缓存,所以我认为这与某些可能的内存泄漏相结合是问题的原因. 所以我的问题 - 在运行ASP.NET MVC上的Web服务器上监视内存使用的最佳方法(例如工具)是什么? 过去,我使用了良好的旧'perfmon,然后将IIS计数器放在测量这些方面. 这仍然是最好的方法,如果是这样,有人可以为我的场景推荐一个好的perfmon计数器模板吗? 解决方案 perfmon的计数器仍然是一项好技术(并且是免费的!). 查看: .网络调试演示实验7:内存泄漏 .净记忆泄漏案例研究:使记忆Baloon的事件处理程序 跟踪托管内存泄漏(如何找到GC泄漏)
0 2023-12-02
编程技术问答社区
通过WMI或T-SQL获取总CPU #
我不想要所有过程的列表,只有您在Windows TaskManager中看到的总百分比. 我将通过ColdFusion使用此信息,但是我遇到了各种问题,只是试图找到当前CPU的总数. 我不在乎它是来自WMI还是T-SQL,我只想要一个我将用于填充量规图的总数,该图表将通过Ajax显示我当前的CPU使用百分比... 谢谢... 解决方案 您可以使用 a> WMI类以获取此信息.在查询中,您将使用Win32_PerfFormattedData_PerfOS_Processor.Name='_Total'.请参阅文章 Artical acrest acrest as as smack vbscirpt代码. 其他解决方案 如果是我,我将在相关机器上设置一个perfmon计数器,以测量总CPU.可以将其配置为每两秒钟写入CSV文件. 然后,您可以每分钟将文件写入数据库,然后让CF读取该数据,以便您可以随时间看到图形.或者,如果您需要最新的值,则只需让CF读
12 2023-10-27
编程技术问答社区
"RPC服务器不可用"
这让我发疯. 我有2台测试机,一台XP和一台远景. 我在两个上都运行了相同的命令. 这些命令包括创建一个logman计数器(例如带有命令提示符的perfmon),启动这些计数器,然后停止它们,然后删除它们. 问题是: 在XP上,它们正常工作,我获得了所有统计数据,并且它始终可用. 在Vista上,它们第一次工作,但随后我总是会收回错误," RPC服务器不可用." 当我尝试启动计数器时,而不是创建它时,就会发生这种情况. 当我尝试检查RPC服务器时,它正在运行. ,为了使其更加令人困惑,计数器在本地计算机上运行. (因此,对于XP,它们在XP上运行,对于Vista,它们在远景上运行.) 因此,一个更奇怪的问题是,为什么首先使用RPC? 有人遇到过这个错误吗? 我真的被困. 我做了很多研究,这似乎很普遍.大多数解决方案(根据原始海报不起作用)始终检查服务是否正在运行. P.S. 当我手动添加计数器时,这也会自我复制,因此即使是通过perfmon. 看
66 2023-08-12
编程技术问答社区
PerformanceCounterCategory.GetCategories()抛出异常 ArgumentException-无效值''为参数'categoryName'。
当我尝试运行此代码时: var categories = System.Diagnostics.PerformanceCounterCategory.GetCategories(); 我得到了一个参数exception异常. 我已经在没有运气的情况下尝试了以下内容: 如何手动重建绩效计数器库 http://support.microsoft.com/kb/300956 lodctr/r 登录为本地管理员. 禁用的用户访问控制(UAC) 使我的用户成员成为Performance Monitor用户组. 无论我在Windows 7 Enterprise SP1 64位计算机上运行Visual Studio 2008、2010还是2012年,我都会得到相同的结果. 我将感谢任何帮助. 谢谢. 解决方案 也有相同的问题. 这是在具有Nvidia Quadro 2000卡的机器上. 卸载" NVIDIA WMI"产品解决了问题..
2 2023-08-06
编程技术问答社区
windows是否有性能计数器来测量拨号连接的统计数据?
Windows是否具有性能计数器来衡量拨号连接的统计信息?打开perfmon,我可以看到它具有一个称为"网络接口"的性能计数器,可用于在所选网络接口(主要是LAN卡)上收集统计数据,但我看不到此处列表中的拨号连接.我该如何收集我需要使用的PerfMon查询字符串的拨号连接(实际上是高速宽带连接)之类的诸如发送/接收的字节,速度等? 是什么? 解决方案 确定终于找到了一个解决方案... Windows Diarup API被称为 ras 出于某种原因. Windows Vista有几个用于RAS服务的性能计数器.您可以通过阅读这些计数器来获取所需的信息.请参阅" ras总计 ras href =" http://technet.microsoft.com/en-us/library/cc738481(ws.10).aspx" rel =" nofollow noreferrer"> ras port ". 其他解决方案 您应该看一下IP辅助API功能: http:/
18 2023-05-24
编程技术问答社区
在Windows XP性能监控程序(perfmon)中缺少处理器/内存计数器
perfmon是一个Windows实用程序,可以通过测量系统计数器来帮助开发人员在其应用中找到瓶颈. 我正在阅读 物理disk \ bytes/sec_total 网络接口\ bytes total/sec \ nic名称 ,但我没有找到以下计数器: 处理器\%处理器time_total process \ working set_total 内存\可用的mbytes 我在哪里找到它们?请注意,我的窗口是pt-br(而不是en-us).我在哪里可以找到诸如perfmon之类的Windows工具的语言特定文档? 解决方案 我怀疑这与您特定的本地化版本Windows无关. Google for" 缺少perfmon柜台" ,在所有版本的Windows上都遇到了类似的问题. 修复程序是按照还有许多其他良好资源用于恢复缺少计数器的某些类型: 恢复缺失的.NET或ASP.NET计数器.也很好地遵循KB 300956. MS KB 227662 显
12 2023-05-24
编程技术问答社区
perfmon的性能计数器与xperf所使用的ETW事件在 "引擎盖 "下是基于同样的东西吗?
我最近已经熟悉了perfmon和xperf. PerfMon使用性能计数器,Xperf使用ETW(Windows的事件跟踪). PerfMon具有提供数据的对象,而Xperf使用"提供者"的组.作为进入该领域的新手,我询问是否有人可以告诉我,Perfmon使用的性能计数器是否真的基于引擎盖下与XPERF使用的ETW事件相同的东西,如果是的,您是否可以清楚连接.如果它们不是基于同一件事,您能解释一下它们与众不同吗? 解决方案 perf counters a href =" http://msdn.microsoft.com/en-us/library/aa363668(VS.85).aspx" rel =" noreferrer"> etw 是两种不同的东西,它们没有潜在的基础设施. 计数器用于提供 信息有关 操作系统或应用程序, 服务或驱动程序正在执行.这 计数器数据可以帮助确定系统 瓶颈和微调系统以及 应用程序性能.操作 系统,网络和设备提供 应用程序可以 消费为用户提供
10 2023-05-24
编程技术问答社区
将Perfmon分析解释为特定应用的观察/数据的最佳方式是什么?
我们中的许多人都使用了PerfMon工具来进行性能分析.尤其是在.NET计数器中,但是Perfmon中发生了很多变量,以至于很难解释Perfmon会导致有关我应用的宝贵反馈.我想使用perfmon(不是欢迎任何输入. 解决方案 i使用日志(PAL)工具的性能分析:这不是"官方" Microsoft工具,但我相信作者为Microsoft工作.该项目似乎相当活跃. 除了提供的罐头阈值文件(非常好)外,您还可以编写自己的阈值来分析应用程序所需的内容.使用图表的HTML报告的产生也非常好. 更新:PAL 2.3.2不再取决于MS LogParser或MS Office Web组件;它使用PowerShell v2.0或更大,MS .NET Framework 3.5 SP1,MS图表控制.NET 3.5.
8 2023-05-24
编程技术问答社区
检查内存泄漏的Perfmon计数器
我想检查我服务中的内存泄漏问题.我已经尝试了遵循一组perfmon计数器. .net clr内存\#bytes在所有堆中 .NET CLR内存\ Gen 2 Heap Size .NET CLR内存\#GC Handles .net clr内存\固定对象的 .NET CLR MOMEME \#总数Bytes .NET CLR内存\#总保留字节 .NET CLR内存\大对象堆大小 我已从这里 P> 还引用以下内容: 内存/可用BYTE 内存/承诺字节 process/private bytes Process/Page File Bytes 流程/句柄计数 我已从在这里 在 有人可以建议我一组计数器来检查内存泄漏吗?或上面的集合涵盖内存泄漏? 解决方案 要使用性能监视器检测内存泄漏,请监视以下计数器: 内存/可用字节计数器可让您查看可用内存的字节总数.这个值通常会波动,但如果 您有一个带有内存泄漏的应用程序,它将减少 时间.
就在OutOfMemoryException之前的WorkingSet Spike
我正在调查一个事件,其中为"传统" .NET服务器应用程序进行了OutofMemoryException的生产.我的目的是解释通过绩效监视器收集的数据的特定部分,并寻求有关如何继续前进的建议.让我从事实列表开始: 该过程已经在20天内运行 直到崩溃为止. 它崩溃了,因为类型 system.outofmemoryexception 被抛出. 过去发生了类似的事件.同样,应用程序需要长时间才能崩溃. 通过以下计数器通过性能监视器监视该过程:#bytes在所有堆,%处理器时间,私有字节,工作集. 我们不能在生产环境中捕获任何内存转储,我们无法复制它. 在第一个屏幕截图中,您可以在7天内看到计数器的整体行为.事情几乎是稳定的.第二个屏幕截图显示了最后一分钟的行为,周围发生了崩溃. 3:13:49 pm . 我的问题是: 1.任何想法突然增加工作集意味着什么?它总体稳定在650 MB,并且在10秒内攀升至1,3GB. 2.我应该专注于在崩溃前找到触发OOM 的东西,还是可
8 2023-05-15
编程技术问答社区
C# Windows Form应用程序中奇怪的内存使用模式
我试图了解用C#编写的应用程序中发生的事情.以下是从性能监视器拍摄的几张图像.蓝线在所有堆中都是#bytes.绿线是大对象堆尺寸.我启动该应用程序并将其登录.该应用程序仍然空闲.第一个图像显示LOH出于某种原因增加,然后掉落.图案非常清楚.这种行为是什么原因? 更多.我使用ORACLE数据库从ODP.NET开始(请参见下图)进行一些重型处理.之后,该应用程序再次闲置. Loh不会掉落.相反,由于某种原因,它不断增加.请注意,应用程序是空闲的.它只是在我的桌面上打开.我什至没有与之互动. 内存不断增加(每个图像代表1:15:00). 超过2个小时后,它会减少,之后它开始再次增加/减少(请参见下图),如第一个图像所示.所有时间应用程序都是空闲的.到底是怎么回事?是内存泄漏吗?我不这么认为.我们介绍了该应用程序,找不到任何东西. LOH也没有任何活动增加.与Oracle数据库没有开放的连接. odp.net可以是罪魁祸首吗? 解决方案 问题肯定是odp.net.如果我
6 2023-05-13
编程技术问答社区
试图在Windows PC上禁用处理器空闲状态(C状态)。
我需要防止处理器进入闲置状态(非C0 C状态).诚然,我对处理器C和P状态不太了解,所以请忍受我. 我们使用来自第三方供应商的相机,偶尔会提供损坏的框架.供应商已经确定,当CPU进入闲置状态时,它会干扰框架在火线上的传输. 为了确认这一点,我在Windows 7 PC上使用了以下代码,实际上,禁用空闲状态已解决了问题. //WIN7 const DWORD DISABLED = 1; const DWORD ENABLED = 0; GUID *scheme; PowerGetActiveScheme(NULL, &scheme); PowerWriteACValueIndex(NULL, scheme, &GUID_PROCESSOR_SETTINGS_SUBGROUP, &GUID_PROCESSOR_IDLE_DISABLE, DISABLED); PowerSetActiveScheme(NULL, scheme); 如果我运行了我的应用程序并打开Windows
24 2023-04-11
编程技术问答社区
如何通过JMeter查看DB连接?
m newbie to jmeter,我们可以通过Jmeter跟踪活动DB连接吗? Jmeter中是否有任何参数或事物可以更轻松地完成工作. 现在,我只是通过终端监视数据库连接. Jmeter 是否有可能 解决方案 鉴于您的数据库是mySQL: 下载 添加线程组到测试计划.将其配置如下: 线程数:1 升级:1 循环计数:tick Forever 添加 jdbc连接配置元件.将其配置如下: 变量名称:任何有意义的东西,即test 数据库URL:jdbc:mysql://your_mysql_host:3306/information_schema JDBC驱动程序类:com.mysql.jdbc.Driver 也提供您的凭据 添加 jdbc request request request request request request request sampler .将其配置为下一步: 变量名称:test或您在JDBC连接配置元
28 2023-03-27
编程技术问答社区
用linux perf工具测量一个应用程序的FLOPs
我想测量某些应用程序执行的浮点和算术操作的峰值,该应用程序使用" perf"(新的命令行界面命令命令到Linux性能计数器子系统). (为了测试目的,我使用了我创建的简单虚拟应用程序,请参见下文). 由于我找不到用于测量FP和整数操作的任何" perf"事件,所以我开始在原始硬件事件代码中进行挖掘(与-rnnn一起使用,其中NNN是事件代码的十六进制值).因此,我真正的问题是,我为退休说明(Inst_retired)找到的代码不会区分FP和其他说明(X87和MMX/SSE).当我尝试将适当的灯罩用于特定代码时,我发现某种程度上" perf"不理解或支持透明度包含.我尝试了: % perf stat -e rC0 ./a.out 给我退休的说明,但是 % perf stat -e rC002 ./a.out 应该给我执行的X87指令说我提供了错误的参数.也许是这样,但是使用" perf"使用原始硬件事件的透明度的正确方法是什么?通常,获得使用PURF工具执行的程
12 2023-03-08
编程技术问答社区
Perflib 2在添加一个计数器时崩溃(来自Perfmon)。
我有一个C ++应用程序(在Win32下),我需要为其提供绩效反信息.我正在使用perflib v2,因此创建了由CTRPP处理的清单. 然后,我的提供商将perfautoinitialize和perfcreateinstance称为没有错误. 当我将计数器添加到perfmon中时,我的应用程序会崩溃.通过拆卸进行跟踪显示了Perflib Worker线程中调用内部函数(PCWUM.DLL)perfpaddorremovecounter中的代码.这打电话给了PerfpvalidateCounter,该OFFICENT返回EDI中的地址;此地址无效,当调用者将其删除时,应用程序崩溃了. 如果我重新启动了提供商,则计数器仍然可以完善并正确递增. 清单遵循
16 2023-03-01
编程技术问答社区
使用WMI查询perfmon计数器值的问题
我正在构建EXE,并通过它来获取应用程序的perfmon计数器,以使用WMI查询进行监视.我正在使用本地计算机进行测试,似乎我的代码逻辑为某些计数器提供了不正确的值. 以下是我的计数器之一的代码( cachetotalhitratio ) 当我在系统中使用 perfmon exe 查看它时,它显示了一些不同的东西,如下所示. 我认为 cachetalhitratio 处于百分比,不应超过100,但我的代码具有更高的价值.这里有什么问题,还是我在这里做错了什么? 如果有人有WMI查询的经验,请告诉我. 预先感谢. 解决方案 存在两种类型的性能计数类 Win32_PerfRawData_ASPNET_ASPNETApplications类返回原始性能计数器值,必须将这些值(根据属性和类使用公式)进行转换,如果您使用Win32_PerfFormattedData_ASPNET_ASPNETApplications class相反,您将获得计算的数据,
22 2023-02-23
编程技术问答社区
如果从C#执行,Relog无法打开二进制日志文件
我已经写了一个简单的Windows服务来观看文件夹并运行RELOG(从二进制perf pul files导出数据的Windows工具). 当我从我的C#process运行时(使用System.diagnostics.process.start())我得到: Error: Unable to open the specified log file. 但是,如果我将命令复制并粘贴到控制台窗口中,则可以正常工作. 我已经看着全网,但一切似乎都指向一个损坏的文件,我知道这不是我可以在手动运行时完美导入的情况. 任何帮助都非常感谢. 解决方案 如果您使用的是FilesystemWatcher监视文件,它将在文件完全写入磁盘之前启动创建的事件,这将导致RELOG的错误类型,因为它无法"打开"文件,因为它就其而言,可能仍然被锁定并且在技术上腐败. 我已经编写了以下辅助方法,我总是与文件系统观察者一起使用,以便在创建事件后完全编写文件并准备好处理文件,并且在超时
22 2023-02-21
编程技术问答社区
PerformanceCounterCategory.Exists抛出 '输入字符串的格式不正确。
当我使用 检查表演类别的存在时 PerformanceCounterCategory.Exists("myCategory") 在系统(XP SP3的清洁安装)上,该类别不存在,我会得到以下异常... Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.Int32.Parse(String s, IFormatProvider provider) at
42 2023-02-18
编程技术问答社区
创建PerfMon计数器以记录每次呼叫的平均值(C#)。
我如何使用perfmon计数器记录方法中方法的平均执行时间? 到目前为止,我只找到了示例代码来递增或减少perfmon计数器. 解决方案 这是我曾经写过的一些示例代码. 首先,您需要指定并安装相关性能计数器.您可以使用安装程序来执行此操作: public class CreditPerformanceMonitorInstaller : Installer { private PerformanceCounterInstaller counterInstaller_; public CreditPerformanceMonitorInstaller() { this.counterInstaller_ = new PerformanceCounterInstaller(); this.counterInstaller_.CategoryName = CreditPerformanceCounter.Cat
56 2023-02-07
编程技术问答社区
在Perfmon中查看的Java应用程序性能计数器
我有一个在Tomcat上运行的Java应用程序,我想使用Windows Performance Monitor监视计数器.使用JMX适配器用于Java Mbeans或其他某些方式吗? 解决方案 以下教程可能使用: 它显示了Java应用程序如何定义可以在PerfMon中监视的自定义计数器.它基本上归结为使用扩展DLL与性能监视器,并通过内存映射文件与该文件进行通信.然后,您可以将JMX计数器连接到类似的机制中,以便可以从Perfmon中监视它们. 其他解决方案 由于您使用JMX和MBEANS标记了此标签,因此我认为您的计数器可以从Java Mbean访问.如果是这样,您可以使用Java SDK提供的JConsole来监视计数器.在MBEANS选项卡中找到MBEAN后,请双击该值,它将绘制一个不错的线路图以方便监视. 请参阅 jconsole指南信息. 其他解决方案 这似乎正是您要寻找的,但不是免费的:
34 2023-02-03
编程技术问答社区