`
hongzhguan
  • 浏览: 272802 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

get-stat的使用方法

阅读更多

检索的vSphere服务器提供统计资料

#Get-Date -Format "y"; 2012年3月
Connect-VIServer -Server vCenter -Protocol https -User -Password

$allvms = @()
$vms = Get-Vm

foreach($vm in $vms){
  $vmstat = "" | Select VmName, GuestName, NumCPU, ProvisionedSpaceGB, UsedSpaceGB, VmHost, MemMax, MemAvg, CPUMax, CPUAvg, DiskMax, DiskAvg
  $vmstat.VmName = $vm.name
  $vmstat.GuestName = $vm.Guest.HostName
  $vmstat.NumCPU = $vm.NumCPU
  $vmstat.ProvisionedSpaceGB = $vm.ProvisionedSpaceGB
  $vmstat.UsedSpaceGB = $vm.UsedSpaceGB
  $vmstat.VmHost = $vm.VMHost
 
  $statcpu = Get-Stat -Entity ($vm) `
           -start (get-date).AddDays(-30) `
           -Finish (Get-Date) `
             -stat cpu.usagemhz.average
  $statmem = Get-Stat -Entity ($vm) `
           -Start (get-date).AddDays(-30) `
           -Finish (Get-Date) `
             -stat mem.consumed.average
  $statdisk = Get-Stat -Entity ($vm) `
           -Start (get-date).AddDays(-30) `
           -Finish (Get-Date) `
             -stat disk.usage.average


  $cpu = $statcpu | Measure-Object -Property value -Average -Maximum
  $mem = $statmem | Measure-Object -Property value -Average -Maximum
  $disk = $statdisk | Measure-Object -Property value -Average -Maximum

 
  $vmstat.CPUMax = $cpu.Maximum
  $vmstat.CPUAvg = $cpu.Average
  $vmstat.MemMax = $mem.Maximum
  $vmstat.MemAvg = $mem.Average
  $vmstat.DiskMax = $disk.Maximum
  $vmstat.DiskAvg = $disk.Average
 
  $allvms += $vmstat
}

$allvms | Export-Csv "c:\VMs.csv" -noTypeInformation -UseCulture

#2.接下来的脚本,让你在过去30天的每一天,每个虚拟机平均和最高的性能统计:
#The next script gives you average and maximum performance statistics per virtual machine for the last 30 days for each day:
<
#@{A = 'abc';}  :可以定义类#>
Function Get-AverageStatPerDay {
  param($vm,$NrOfdays,$Stat)
  $Today = Get-Date
  Get-Stat -Entity ($vm) `
           -start ($Today).AddDays(-$NrOfDays) `
           -Finish ($Today) `
           -stat $Stat | `
    ForEach-Object {
      $MetricId = $_.MetricId
      $Unit = $_.Unit
      $_ | `
        Select-Object -Property Description,Entity,EntityId,Instance,IntervalSecs,MetricId,Timestamp,Unit,Value,@{N="Date";E={$_.TimeStamp.Date.ToShortDateString()}}
    } | `
      Group-Object -Property Date | `
      Select-Object -Property @{N="VM";E={$vm.Name}},
        @{N="MetricId";E={$MetricId}},
        @{N="Date";E={$_.Name}},
        @{N="Value";E={($_.Group | Measure-Object -Property Value -Average).Average}},
        @{N="Unit";E={$Unit}}
}    

Function Get-MaximumStatPerDay {
  param($vm,$NrOfdays,$Stat)
 
  $Today = Get-Date
  Get-Stat -Entity ($vm) `
           -start ($Today).AddDays(-$NrOfDays) `
           -Finish ($Today) `
           -stat $Stat | `
    ForEach-Object {
      $MetricId = $_.MetricId
      $Unit = $_.Unit
      $_ | `
        Select-Object -Property Description,Entity,EntityId,Instance,IntervalSecs,MetricId,Timestamp,Unit,Value,@{N="Date";E={$_.TimeStamp.Date.ToShortDateString()}}
    } | `
      Group-Object -Property Date | `
      Select-Object -Property @{N="VM";E={$vm.Name}},
        @{N="MetricId";E={$MetricId}},
        @{N="Date";E={$_.Name}},
        @{N="Value";E={($_.Group | Measure-Object -Property Value -Maximum).Maximum}},
        @{N="Unit";E={$Unit}}
}    

Get-VM | ForEach-Object {
  $vm = $_
  Get-AverageStatPerDay -vm $vm -NrOfDays 30 -Stat cpu.usagemhz.average
  Get-AverageStatPerDay -vm $vm -NrOfDays 30 -Stat mem.consumed.average
  Get-AverageStatPerDay -vm $vm -NrOfDays 30 -Stat disk.usage.average
  Get-MaximumStatPerDay -vm $vm -NrOfDays 30 -Stat cpu.usagemhz.maximum
  Get-MaximumStatPerDay -vm $vm -NrOfDays 30 -Stat mem.consumed.maximum
  Get-MaximumStatPerDay -vm $vm -NrOfDays 30 -Stat disk.usage.maximum
}
#3-------report-last-2calendar---month.ps1--------------------------------------------------------------
$allclust = @()
$clust = Get-Cluster

foreach($clu in $clust){
 $clusstat = "" | Select ClusterName, MemMax, MemAvg, CPUMax, CPUAvg
 $clusstat.ClusterName = $clu.name


 $thisMonth = [datetime](Get-Date -Format "y")
12..1 | %{
 $from = $thisMonth.AddMonths(- $_  )
 $to = $thisMonth.AddMonths(- $_ +1).AddDays(-1)
}

 $statcpu = Get-Stat -Entity ($clu)
 -start $from
 -Finish $to
 -MaxSamples 10000 
 -stat cpu.usagemhz.average
 $statmem = Get-Stat -Entity ($clu)
 -start $from
 -Finish $to
 -MaxSamples 10000
 -stat mem.usage.average

 $cpu = $statcpu | Measure-Object -Property value -Average -Maximum
 $mem = $statmem | Measure-Object -Property value -Average -Maximum

 $clusstat.CPUMax = $cpu.Maximum
 $clusstat.CPUAvg = $cpu.Average
 $clusstat.MemMax = $mem.Maximum
 $clusstat.MemAvg = $mem.Average

 $allclust += $clusstat
}

$allclust |
select ClusterName, MemMax, MemAvg, CPUMax, CPUAvg |
Export-Csv "c:\g.csv" -noTypeInformation

 

#显示CPU

$entities = Get-VM $start = (Get-Date).AddMinutes(-5)

$report = Get-Stat -Entity $entities -Stat $metrics -Realtime -Start $start
|
Group-Object -Property EntityId,Timestamp | %
{
   
New-Object PSObject -Property
@{
        Name
= $_
.Group[0].Entity.Name
        Time
= $_
.Group[0].Timestamp
        CpuAvg
= ($_.Group | where {$_.MetricId -eq "cpu.usage.average"
}).Value
        CpuRdy
= ($_.Group | where {$_.MetricId -eq "cpu.ready.summation" -and $_.Instance -eq ""
}).Value
        CpuSwpWait
= ($_.Group | where {$_.MetricId -eq "cpu.swapwait.summation" -and $_.Instance -eq ""
}).Value
        MemActAvg
= ($_.Group | where {$_.MetricId -eq "mem.active.average"
}).Value

    }
}
$report | Sort-Object Name,Time | Export-Csv "C:\VMstats.csv" -NoTypeInformation -UseCulture

 

memory的使用:
http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/memory_counters.html
mem: sys.uptime.latest
获取stat的参数值
get-stat -Entity (Get-VMHost esx01*) -Stat * -MaxSamples 1 | ft metricid
intervalmins 5加上,五分钟的粒度。

分享到:
评论

相关推荐

    Redis监控系统redis-stat离线安装

    这通常可以通过访问Ruby官方网站或使用操作系统特定的包管理器完成,例如在Ubuntu上可以使用`sudo apt-get install ruby-full`命令。 接下来,我们需要获取Redis-stat的源码。源码通常可以从GitHub等代码托管平台...

    mongodb-stat

    在监控 MongoDB 性能时,可以使用 `mongodb-stat` 命令的参数来调整监控的间隔时间和次数,例如 `./mongostat -n 10 1` 表示每秒执行一次监控,总共执行10次。此外,还可以通过 `./mongostat --help` 查看更多的监控...

    vrc-stat-api

    在实际使用vrc-stat-api时,开发者首先需要安装Node.js环境,因为它是运行这个API服务的基础。然后,在项目目录下执行`npm i`安装所有依赖包,这通常包括但不限于Express(一个用于构建Web应用的Node.js框架)、body...

    git-stat

    本文将深入探讨`git-stat`的功能、使用方法及其在实际开发中的应用。 首先,我们需要明确`git-stat`并非Git的内置命令,而是由社区开发的一个扩展工具,它提供了更为丰富的统计视图,包括代码增删、作者贡献、文件...

    get-memory-status.zip_memory

    "get-memory-status.zip_memory"这个文件可能是一个工具或者脚本,用于获取系统的内存状态信息。接下来,我们将深入探讨内存管理的相关知识点。 1. **内存类型**: - **RAM(随机存取存储器)**: 主要包括DRAM...

    tile-stat-stream:从矢量图块流生成统计信息

    TileStatStream = require ( 'tile-stat-stream' ) ; var tileStatStream = new TileStatStream ( ) ; tilelive . copy ( src , dst , { transform : tileStatStream } , function ( err ) { var stats = ...

    地理空间分析软件CrimeStat

    CrimeStat通过一系列统计方法,如Moran's I、Geary's C和Getis-Ord Gi*等,帮助用户识别这些空间聚类现象,揭示潜在的热点区域或冷点区域。 “空间相关性分析”是另一种关键功能,它研究不同位置之间的变量值是否...

    Ubuntu Linux系统下Apt-get命令参数详解

    使用`apt-get install`命令可以安装指定的软件包,例如`sudo apt-get install vim`将安装Vim编辑器。如果需要同时安装多个软件,可以在`install`后用空格隔开,如`sudo apt-get install vim curl`。 3. **升级系统...

    如何解决mysqlimport: Error: 13, Can't get stat of 的问题

    在使用`mysqlimport`时,有时可能会遇到错误提示“Error: 13, Can't get stat of”,这通常与文件访问权限或路径相关。本文将深入探讨这个问题及其解决方案。 错误13在操作系统中表示“Permission denied”,意味着...

    DnD-Stat-Tracker-:假DnD

    SF 我的DnD小组的小型跟踪... 做为测试Flask和Tiny DB的测试站点安装: apt-get安装python-dev sudo apt-get安装libmysqlclient-dev pip安装flask_mysqldb 点安装wtforms 点安装passlib pip安装tinydb python app.py

    CrimeStat_GIS_Data_Files.rar

    在使用这些数据时,用户首先需要解压"CrimeStat_GIS_Data_Files.rar",然后使用CrimeStat软件打开和导入数据。CrimeStat支持多种数据格式,因此即使用户不熟悉GIS,也能通过其直观的界面进行操作。在进行空间分析时...

    如何解决mysqlimport: Error: 13, Can’t get stat of 的问题

    代码如下:root@zhou:/usr/local/mysql# mysqlimport -uroot -p123 -h127.0.0.1 -P3306 test backup/chen.sqlmysqlimport: Error: 13, Can’t get stat of ‘/usr/local/mysql/data/backup/chen.sql’ (Errcode: 2),...

    Redis Stat的安装指南

    apt-get install rubygems ruby ``` 由于国内网络问题,有时无法顺利访问 Rubygems.org。为了解决这个问题,你需要将 Ruby Gems 的源切换到淘宝的镜像: ```bash gem sources --add ...

    oj-stat:获取各种OJ的在线法官统计数据

    奥斯塔获取各种OJ的在线法官统计数据必需的python3 模块requests ( ) 模块flask运行Web服务器###在Linux上(Ubuntu 14.04) 为python3安装pip: sudo apt-get install python3-pip 安装所需的模块: sudo pip3 ...

    JSP学习笔记(三)-----使用JSP处理用户注册和登陆

    - **数据库连接**:使用JDBC驱动连接数据库,此处使用的是ODBC桥接驱动。 - **SQL语句执行**:使用`PreparedStatement`来执行SQL插入语句,这种方式更安全且能有效防止SQL注入攻击。 - **结果反馈**:如果插入成功,...

    Kazoo安装和使用文档

    要获取节点数据,可以使用 `get()` 方法: ``` data, stat = zk.get("/my/favorite") ``` 这里的 `data` 变量将包含节点数据,`stat` 变量将包含节点状态信息。 获取子节点列表 ------------- 要获取子节点列表,...

    Hadoop HDFS分布式文件系统 常用命令汇总

    3. 查看HDFS文件系统中的文件详细信息:使用dfs -stat命令查看HDFS文件系统中的文件详细信息,例如bin/hadoop dfs -stat /in/test1.txt 掌握HDFS的基本命令是使用HDFS的基础。通过本文总结的命令,您将能够更好地...

    stat_vss.rar_stat_vss

    标题中的"stat_vss.rar_stat_vss"表明这是一个与VSS(Visual SourceSafe)相关的统计工具,主要用于分析和记录每个开发人员在版本控制系统中的编码活动。VSS是Microsoft推出的一款早期的源代码版本管理工具,它允许...

Global site tag (gtag.js) - Google Analytics