利用PowerShell监控Win-Server性能

Q:如何系统层面的去监控一下Windows Server?

A:额……一时间的话……能想到的可能也就是PowerShell+SQL Server+job,试试。

1、关于PowerShell

2、PowerShell脚本的编写与执行

3、获取系统性能情况

PowerShell+SQL Server+job 实现监控

一、关于PowerShell

1、什么是PowerShell

  表层面的翻译:强大的Shell。

  强大?

  如果是从知名度和用户的使用量来谈的话,PowerShell相较当下流行的一些面向对象的语言来说应该是逊色太多太多了,但是,作为一款系统内置的脚本语言,和Linux里的Shell一样,说其强大当然是不容置喙的。

  Windows PowerShell 是一种命令行外壳程序和脚本环境,是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。

2、如何打开PowerShell

  1)Win键+R,输入cmd,然后cmd会话框里再输入powershell

  2)Win键+R,输入powershell,即来到其会话框

  3)或是直接找到Windows PowerShell程序双击或是管理员打开

3、学习PowerShell

  一开始接触到PowerShell的时候,也是有一些懵圈的,但多少也还是和DOS、Shell命令有些相似之处,习惯就好。

  推荐学习网站:http://www.pstips.net/powershell-online-tutorials/

二、PowerShell脚本的编写与执行

1、编写脚本(.psl扩展名的脚本文件

  1)对于简单的小脚本编写,可以通过echo命令重定向进文件,或是将脚本文件通过@‘ ’@闭合起来

  2)复杂点的大脚本编写,一般借助文本编辑器方便些。

2、脚本执行

  1)PowerShell脚本的执行直接是使用脚本文件的相对路径,或者绝对路径

  2)通过别名设置(> Set-Alias),将脚本的执行语句保存为别名,如此,就能像输入命令一样的执行脚本

3、执行策略限制

  脚本能否执行取决于Powershell的执行策略;

  Powershell一般初始化情况下都会禁止脚本执行。只有管理员才有权限更改该策略,非管理员会报错。以管理员身份打开powershell:

  查看所有支持的执行策略:

  1>Unrestricted:权限最高,可以不受限制执行任何脚本。

  2>Default:为Powershell默认的策略:Restricted,不允许任何脚本执行。

  3>AllSigned:所有脚本都必须经过签名才能在运行。

  4>RemoteSigned:本地脚本无限制,但是对来自网络的脚本必须经过签名。

三、获取系统性能情况

1、主机名

PS D:> $env:computername

2、CPU使用情况

 注意,-f:-filter:过滤,执行;对于不是很清楚的命令可以通过 man 命令 来获取帮助。

3、内存使用情况

  1)总内存:

  2)剩余内存:

  3)内存使用比:

4、磁盘使用情况

  1)多条件过滤:只获取D、E磁盘的信息

  PS D:> gwmi win32_logicaldisk -f “drivetype=3 and (DeviceID=’E:’ or DeviceID=’D:’)”

  2)辅助智能显示信息:

5、大合集:执行脚本获取CPU、内存信息

 

四、系统性能监控:CPU、内存、Disk

1、利用psl脚本获取性能信息

  死循环作业,只需要启动一次job即ok,如果担心重启之后停掉,就设置:start automatically when SQL Server Agent start。

2、监控标准把控

  1)CPU:80%

  2)内存:60% (通过io 和 ple 侧面反映内存情况)

  3)Disk:90%

3、T-SQL存储过程

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注