1.cmd脚本捕获服务器以及SQL SERVER各个参数数据
我们知道windows有个工具叫做性能计数器(perfmon),他提供服务器和安装程序的实时图表展示和分析。但是该图形化工具的弊端很明显:
①展示时间段很短,间隔1s,最大值1000s,也就是17分钟不到,展示的时间跨度很有限。
②如果根据保存的日志展示,一个参数/每小时大约需要上G磁盘空间,这将会非常占用空间,不适合长期保存。此处有兴趣的朋友可以测试下保存日志的大小。
那么我们摒弃windows系统的perfmon图形化,基于仅仅是数据的捕获是否有办法呢?答案是肯定的。windows有相关的批处理指令(typeperf)。我们来测试一下,如下:
这样我们就轻松捕获了cpu的 Processor Time,typeperf 批处理指令相关参数大家可以去了解下,可以通过模板捕获并保存到文件,也可以通过SQL SERVER调用xp_cmdshell组件,如下:
①通过参数模板保存到文本文件
不难发现,这些文本文件都是规则的,我们可以通过SQL SERVER的bulk insert工具全部导入到SQL SERVER数据库中。当然最重要的是相同的性能参数相同的时间跨度上磁盘空间的优势,举例10个参数该文本一天86400条数据量大约10M+,是微软图形化日志的几千分之一,这个磁盘空间的节省是很可观的。
②通过 SQL SERVER调用xp_cmdshell查询数据
同样很轻松,这些数据经过简单字符串处理后插入数据库,相同参数相同时间跨度和文本文件大小差不多,都很节省空间。
2.各种数据的结构化
这部分其实也很有规律,不难处理,无论是文本文件还是SQL SERVER调用CMD格式都是结构化的或者是半结构化的,通过文本编辑器或者c#程序处理,都可以完成结构化并插入数据库,如下图:
3.图形化展示部分
可以了解下前端的一些知识,jquery和一些图表框架,我这里是用的highcharts,现在百度的echarts也不错,并将这些数据可视化
4.数据智能化
做到这里的话,可以做的工作就很多了,实时图表,告警机制,统计报表。就在以后整理了和大家慢慢分享。
欢迎各位DBA达人的指点和互相交流。