Always Debug

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近服务器上某些进程的内存使用会突然升高,于是写了一个脚本在内存占用高点时抓取dump以便分析.

期间走了不少弯路才找到vbscript控制进程时的属性名,随笔记录一下

 

服务器内存症状如下(运维部门设定了进程内存过高时的自动回收)

监控脚本如下:

Code

 

objprocess的其他常用属性:

'MsgBox  "Process: " & objProcess.Name & objProcess.UserModeTime
        'MsgBox "Process ID: " & objProcess.ProcessID
        'MsgBox "Thread Count: " & objProcess.ThreadCount
        'MsgBox "Page File Size: " & objProcess.PageFileUsage
        'MsgBox "Page Faults: " & objProcess.PageFaults
        'MsgBox "Working Set Size: " & objProcess.WorkingSetSize

看到很多朋友在网上问"得到进程内存应该写成什么, 是objProcess.PageFileUsage还是objProcess.Member?"之类的问题,
wbemtest.exe是一个系统自带的工具,通过它可以更容易地确认win32_process的操作属性

与wmi的一些知识有关.

WMI 测试器。WMI 测试器 (wbemtest.exe) 是一个用于与 WMI 基础结构交互的通用、图形化工具。您可以使用 WMI 测试器来浏览 CIM 架构并检查托管资源类定义。WMI 测试器还可用于执行与基于 WMI 的脚本执行的相同的操作,例如检索托管资源的实例和运行查询。WMI 测试器是在所有启用了 WMI 的计算机上默认的 WMI 安装的一部分,因此 wbemtest.exe 是一个出色的 WMI 学习和疑难解答工具。有关使用 WMI 测试器的信息,参阅 Windows XP 帮助和支持中心内的 WMI 测试器概述。

运行wbemtest.exe,单击 “连接”按钮 连接到本地或远程计算机上的 WMI 服务。显示“连接”对话框,它提供一个标记为 名称空间 的文本输入区域,该区域默认值为 root\default。将 名称空间 区域的值更改为 root\cimv2,单击“连接”对话框的 连接 按钮返回到主 WMI 测试器窗口。

"枚举类别"-"递归":

双击win32_process,弹出的窗口上可以看到wind32_process的一些属性,

点击"实例"并选择需要查看的进程,即可以看到对应的值.

 

 

PS:部分网站是运行在64位机上的32位进程,在64位的系统中ntsd有两个版本,分别在system32和syswow64下,

使用时需要区分

更多wmi的信息可以参考http://msdn.microsoft.com/zh-cn/library/ms974579.aspx

 

posted on 2009-06-08 13:40  dbgeng  阅读(3158)  评论(5编辑  收藏  举报