saville

博客园 首页 新随笔 联系 订阅 管理

随笔分类 -  系统监控

摘要:之前已经介绍过通过WMI接口获取服务器硬件信息、收集服务器性能数据,从而实现对服务器性能的监控。但由于监控项目较多,而且通过WMI获取服务器信息的方式速度相对较慢,因此有必要根据不同情况对程序进行优化。一、使用多线程并行处理最初设计服务器监控程序的时候,仅使用一个for循环来处理,当时需要监控的项目较少,因此能在5分钟时间内完成一次完整的检测过程。随着时间的推进,需要监控的项目也越来越多,进行一次检测也由5分钟变成了12分钟。这样的性能显然是无法让人满意的,必须进行优化。在这种情况下,最有效的提升性能的方法显然是使用多线程进行并行处理。当时监控程序使用的.net framework3.5,因此 阅读全文
posted @ 2014-01-26 14:18 saville 阅读(1604) 评论(4) 推荐(3) 编辑

摘要:在系统运维中常常需要定期去跑一些计划任务,比如扫描服务器监控其性能、检查SQL Server作业是否正常、监控MQ队列是否存在堵塞现象等。如果使用Windows计划任务调度,一来管理起来就比较松散,二来如需更改计划任务的配置就必须登录到服务器上进行修改,造成很大的不便。因此笔者在实际工作中自行开发计划任务调度服务来处理这些任务,将调度周期、任务配置等经常需要修改的配置信息保存到数据库中,并开发一个前台界面进行维护和管理。一、基本结构计划任务调度服务使用插件的方式处理各类不同的计划任务,插件必须继承自服务框架提供的MonitorTask抽象类,并在数据库中注册任务名、调度周期等信息,这样就可以由 阅读全文
posted @ 2013-08-20 21:22 saville 阅读(14152) 评论(5) 推荐(2) 编辑

摘要:上一回介绍了如何通过WMI接口监控服务器性能,但服务器运行正常不等于运行的网站能正常打开,因此还有必要对网站的运行情况进行监控。在C#中,发起一个HTTP请求并返回其响应是非常简单的。1 HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;2 HttpWebResponse response = request.GetResponse() as HttpWebResponse;3 bool result = response.StatusCode == HttpStatusCode.OK;4... 阅读全文
posted @ 2013-07-14 21:25 saville 阅读(1538) 评论(1) 推荐(0) 编辑

摘要:WMI 是微软操作系统的一个内置的组件,通过使用WMI我们可以获取服务器硬件信息、收集服务器性能数据、操作Windows服务,甚至可以远程关机或是重启服务器。一、在C#编程中使用WMI要想在C#程序中使用WMI,必须添加System.Management.dll的引用,并使用System.Management命名空间。该命名空间提供对一组符合WMI基础结构的系统、设备和应用程序的管理信息和管理事件的访问。这里介绍一下常用的几个类:ManagementScope用以连接WMI命名空间。ManagementBaseObject包含管理对象的基本元素。ManagementObject表示WMI实例。 阅读全文
posted @ 2013-06-23 20:24 saville 阅读(7333) 评论(10) 推荐(1) 编辑