如何实现一个增强型的任务管理器:能记录长期的历史数据、支持重播

haitao 2010-02-28 09:58:17
加精
为了实现对win服务器的内存、cpu、进程、网络的使用量的监控,需要定时执行一些命令行工具,把监测结果重定向到一个日志文件
然后做个工具读入此日志文件,以便回看
——相当于一个能记录长期的历史数据、支持重播的任务管理器(它的网络还缺少:进程-连接-数据量的信息(每个进程有哪些网络连接,每个连接的双方ip、端口、已经收发的数据量、即时的带宽占用))。如果有这个工具,就没有必要自己做了

日志阅读工具可以显示每次的监控结果,在grid里显示时,与上一次的结果比较,数据变大就用红色背景,变小就用绿色背景,以便快速发现数据的变化——最好是能以曲线显示每一项监控指标的变化情况(指标太多了:每个时刻都有n个进程,每个进程都有固定的m个指标,不确定的k个连接)

当然如果有现成的,也可以。。。。。。。我搜了一下是没搜到,所以才考虑自己做。

...全文
1638 81 打赏 收藏 转发到动态 举报
写回复
用AI写文章
81 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitao 2010-12-01
  • 打赏
  • 举报
回复
这个系统工具应该能解决:只是它的监控对象太多,需要仔细找一找,是不是存在对 应用-端口-对方ip-端口-已发送字节数 的报告

r:\>typeperf /?

Microsoft (R) TypePerf.exe (5.2.3790.0)
(C) Microsoft Corporation. All rights reserved.

Typeperf 将性能数据写入命令窗口或日志文件。要停止 Typeperf,请按 CTRL+C.

用法:
typeperf { <counter [counter ...]> | -cf <filename> | -q [object]
| -qx [object] } [options]

参数:
<counter [counter ...]> 要监视的性能计数器。

选项:
-? 显示跟上下文相关的帮助。
-f <CSV|TSV|BIN|SQL> 输出文件格式。默认值是 CSV。
-cf <filename> 含有监视的性能计数器的文件,一个计数器一行。
-si <[[hh:]mm:]ss> 示例间的时间。默认值是 1 秒。
-o <filename> 输出文件或 SQL 数据库的路径。默认值为 STDOUT。
-q [object] 列出已安装的计数器(无实例)。要列出某个对象的
计数器,包括对象名,如 Processor。
-qx [object] 列出已安装的计数器(带实例)。要列出某个对象的
计数器,包括对象名,如 Processor。
-sc <samples> 要收集的示例数量。默认值为,在 CTRL+C 之前都
进行采样。
-config <filename> 含有命令选项的设置文件。
-s <computer_name> 在计数器路径中没有指定服务器的情况下要监视的
服务器。
-y 不用提示对所有问题都回答 yes。

注意:
Counter 是性能计数器的全名,格式为
"\\<Computer>\<Object>(<Instance>)\<Counter>";
例如 "\\Server1\Processor(0)\% User Time"。

例如:
typeperf "\Processor(_Total)\% Processor Time"
typeperf -cf counters.txt -si 5 -sc 50 -f TSV -o domain2.tsv
typeperf -qx PhysicalDisk -o counters.txt









\ServiceModelEndpoint 3.0.0.0\Calls
\ServiceModelEndpoint 3.0.0.0\Calls Per Second
\ServiceModelEndpoint 3.0.0.0\Calls Outstanding
\ServiceModelEndpoint 3.0.0.0\Calls Failed
\ServiceModelEndpoint 3.0.0.0\Calls Failed Per Second
\ServiceModelEndpoint 3.0.0.0\Calls Faulted
\ServiceModelEndpoint 3.0.0.0\Calls Faulted Per Second
。。。
\ServiceModelOperation 3.0.0.0\Calls
\ServiceModelOperation 3.0.0.0\Calls Per Second
\ServiceModelOperation 3.0.0.0\Calls Outstanding
\ServiceModelOperation 3.0.0.0\Calls Failed
\ServiceModelOperation 3.0.0.0\Call Failed Per Second
。。。
\ServiceModelService 3.0.0.0\Calls
\ServiceModelService 3.0.0.0\Calls Per Second
\ServiceModelService 3.0.0.0\Calls Outstanding
\ServiceModelService 3.0.0.0\Calls Failed
。。。
\SMSvcHost 3.0.0.0\Protocol Failures over net.tcp
\SMSvcHost 3.0.0.0\Protocol Failures over net.pipe
\SMSvcHost 3.0.0.0\Dispatch Failures over net.tcp
\SMSvcHost 3.0.0.0\Dispatch Failures over net.pipe
。。。
\.NET CLR Memory(*)\# Gen 0 Collections
\.NET CLR Memory(*)\# Gen 1 Collections
\.NET CLR Memory(*)\# Gen 2 Collections
\.NET CLR Memory(*)\Promoted Memory from Gen 0
\.NET CLR Memory(*)\Promoted Memory from Gen 1
\.NET CLR Memory(*)\Gen 0 Promoted Bytes/Sec
。。。
\.NET CLR Exceptions(*)\# of Exceps Thrown
\.NET CLR Exceptions(*)\# of Exceps Thrown / sec
\.NET CLR Exceptions(*)\# of Filters / sec
\.NET CLR Exceptions(*)\# of Finallys / sec
\.NET CLR Exceptions(*)\Throw To Catch Depth / sec
\.NET CLR Loading(*)\Current Classes Loaded
\.NET CLR Loading(*)\Total Classes Loaded
\.NET CLR Loading(*)\Rate of Classes Loaded
。。。
\Active Server Pages\Debugging Requests
\Active Server Pages\Errors During Script Runtime
\Active Server Pages\Errors From ASP Preprocessor
\Active Server Pages\Errors From Script Compilers
。。。
\ASP.NET\Application Restarts
\ASP.NET\Applications Running
\ASP.NET\Requests Disconnected
\ASP.NET\Request Execution Time
\ASP.NET\Requests Rejected
。。。
\SQLServer:SSIS Pipeline\Rows read
\SQLServer:SSIS Pipeline\Rows written
\SQLServer:SSIS Pipeline\Buffers in use
\SQLServer:SSIS Pipeline\Buffer memory
。。。
\Internet Information Services Global\Total Allowed Async I/O Requests
\Internet Information Services Global\Total Blocked Async I/O Requests
\Internet Information Services Global\Total Rejected Async I/O Requests
\Internet Information Services Global\Current Blocked Async I/O Requests
\Internet Information Services Global\Measured Async I/O Bandwidth Usage
。。。
\IPSec v4 Driver\Active Security Associations
\IPSec v4 Driver\Offloaded Security Associations
\IPSec v4 Driver\Pending Key Exchange Operations
\IPSec v4 Driver\Total SA Rekeys
\IPSec v4 Driver\Total Bad SPI Packets
。。。
\Distributed Transaction Coordinator\Active Transactions
\Distributed Transaction Coordinator\Committed Transactions
\Distributed Transaction Coordinator\Aborted Transactions
\Distributed Transaction Coordinator\In Doubt Transactions
。。。
\Windows Workflow Foundation\Workflows Created
\Windows Workflow Foundation\Workflows Created/sec
\Windows Workflow Foundation\Workflows Unloaded
\Windows Workflow Foundation\Workflows Unloaded/sec
。。。
\.NET CLR Data\SqlClient: Current # pooled and nonpooled connections
\.NET CLR Data\SqlClient: Current # pooled connections
\.NET CLR Data\SqlClient: Current # connection pools
。。。
\MSSQL$SQLEXPRESS:Buffer Manager\Buffer cache hit ratio
\MSSQL$SQLEXPRESS:Buffer Manager\Page lookups/sec
\MSSQL$SQLEXPRESS:Buffer Manager\Free list stalls/sec
\MSSQL$SQLEXPRESS:Buffer Manager\Free pages
。。。
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Page lookups/sec
\SQLServer:Buffer Manager\Free list stalls/sec
\SQLServer:Buffer Manager\Free pages
\SQLServer:Buffer Manager\Total pages
。。。
\MSAS 2005:Connection\Current connections
\MSAS 2005:Connection\Requests/sec
\MSAS 2005:Connection\Total requests
\MSAS 2005:Connection\Successes/sec
\MSAS 2005:Connection\Total successes
。。。
\ProcessorPerformance(*)\\ProcessorPerformance(*)\% \ProcessorPerformance(*)\
haitao 2010-08-24
  • 打赏
  • 举报
回复
[有图有真相]NT系统信息察看工具:
http://topic.csdn.net/u/20100717/18/1ed994bb-4d33-4641-aa24-7c11cb33a4c4_2.html

ip雷达的 发出流量 统计的好像不是很准,不知道为什么
cnmmbd 2010-07-22
  • 打赏
  • 举报
回复
学习!
发现netstat命令还是很有用的。
netstat -b
netstat -b -v
netstat -o
都可以获得远端IP和端口,还有进程或进程PID
CaiBirdy 2010-03-24
  • 打赏
  • 举报
回复
楼主可以搜索上面几个关键词,网络上有源码的
CaiBirdy 2010-03-24
  • 打赏
  • 举报
回复
进程与端口的方法可以用iphlpapi.dll中的AllocateAndGetTcpExTableFromStack和AllocateAndGetUdpExTableFromStack获取。

网络数据量和速率可以用监听SOCK_RAW的方式,设置为SIO_RCVALL,之后分析UDP,TCP,IP4,IP6头应该就差不多了

进程-端口
端口-流量
通过这两个对应关系就可以获得进程-流量的关系。
haitao 2010-03-24
  • 打赏
  • 举报
回复
ip雷达 对于 应用进程-连接(对方ip/port/收发数据量/速率) 信息抓取得很好!
它含了2个dll,不用安装、重启,就能实现

联系了其作者,确认目前还没有写入日志的功能
他简单提示了2个方法,只是都还是比较多的工作要做,尤其是想稳定、开销低的话
只能暂时不再考虑了
znj_326 2010-03-16
  • 打赏
  • 举报
回复
哦,那就算了,
自己研究也好,印象深刻
haitao 2010-03-16
  • 打赏
  • 举报
回复
因为只是工作中发现有这样的一个需求,不是真正的项目任务,所以不好提费用

只是共同探讨、集思广益。。。。。。。
znj_326 2010-03-15
  • 打赏
  • 举报
回复
呵呵,真的好做,要不给点费用,我给你做(最近手头紧)
haitao 2010-03-11
  • 打赏
  • 举报
回复
[Quote=引用 71 楼 znj_326 的回复:]
嗯,说的对头,其实很好做的,
只是要保存的话,就单台电脑而说,数据量都会大的吓死人,
[/Quote]

好做?取得 应用进程-连接(对方ip/port/收发数据量) ?

数据量都会大的吓死人?不要紧,可以设置抓信息的周期嘛。而且只有在有需要监控时,才抓
znj_326 2010-03-10
  • 打赏
  • 举报
回复
嗯,说的对头,其实很好做的,
只是要保存的话,就单台电脑而说,数据量都会大的吓死人,
haitao 2010-03-04
  • 打赏
  • 举报
回复
引用 69 楼 znj_326 的回复:
我做有一个,就差保存


能取得 应用进程-连接(对方ip/port/收发数据量) ?

保存和再现都只是体力活了
znj_326 2010-03-04
  • 打赏
  • 举报
回复
我做有一个,就差保存
nanlinghan 2010-03-03
  • 打赏
  • 举报
回复
高手啊!学习了啊
1、性能监视器的图示效果很难看,日志是不错
2、应用进程-连接(对方ip/port/收发数据量)应该是取不到吧?
donil 2010-03-03
  • 打赏
  • 举报
回复
呃,哪里有下载地址?
HW-姜飞 2010-03-03
  • 打赏
  • 举报
回复
aaaaaaaaaaaaaa顶
cang123000 2010-03-03
  • 打赏
  • 举报
回复
学习了。不错,顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
a916403746 2010-03-03
  • 打赏
  • 举报
回复
dsadsafdsafsda
YANGXIANYONG8 2010-03-02
  • 打赏
  • 举报
回复
DDDDDDDDDDDDDDDDDDDDD
YANGXIANYONG8 2010-03-02
  • 打赏
  • 举报
回复
佩服啊,厉害!顶!!!!!!!!!1111111
加载更多回复(60)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧