`
hongzhguan
  • 浏览: 270214 次
  • 性别: 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加上,五分钟的粒度。

分享到:
评论

相关推荐

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

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

    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

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

    本篇文章是对解决mysqlimport: Error: 13, Can't get stat of问题的方法进行了详细的分析介绍,需要的朋友参考下

    如何解决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),...

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

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

    mysql-connector-java-5.1.32.zip

    * +----+------+-------+ ←—————————— 指向2 true rs.get类型("列名") * | 1 | tony | 1000 | ... * | 2 | tom | 1000 | ... * | 3 | andy | 1000 | ←—————————— 指向...

    基于S3的Filey系统Goofys.zip

    $ $GOPATH/bin/goofys  基准测试:使用 goofys --stat-cache-ttl 0 --type-cache-ttl 0 和 s3fs -ostat_cache_expire=1 模拟运行。基准测试详情请看 bench.sh,同时提供 Raw data。测试是在 EC2 c4.xlarge 下...

    oscache缓存技术应用

    描述了oscahce在JAVA开发中的应用和配置说明

    ngx_http_stat_module:ngx_http_stat_module 是 nginx HTTP 服务器的插件。 插件通过 UDP 向 stat 守护进程发送数据。 stat 守护进程收集、累积和处理统计信息

    stat 守护进程收集、累积和处理统计信息。 该项目用于高级合作伙伴计费系统。 此模块与 nginx 服务器的平滑集成可提供最佳性能。 注意力! 它是 alpha 版本。 介绍 广告网络需要对数据进行核算。 来自 cookie 的...

    stat400.github.io

    Stat 400课程网站 作者:亚历山大·李 搭建环境 一般说明 安装WSL- 通过Powershell重启计算机后 我目前正在使用Ubuntu 18.04 LTS sudo apt update sudo apt upgrade 安装 重新启动终端 安装git- git --version sudo...

    FatFs的API函数中文介绍

    f_stat - 获取文件状态 f_mkdir - 创建一个目录 f_unlink - 删除一个文件或目录 f_chmod - 改变属性(Attribute) f_utime - 改变时间戳(Timestamp) f_rename - 重命名/移动一个文件或文件夹 f_mkfs - 在驱动器上...

    isdir:检查描述符是否是目录。 节点的fs.stat.isDirectory()的薄包装器

    (围绕节点的本机fs.stat.isDirectory()方法包装) 用法 从NPM安装 npm install isdir --save 在您的脚本中 var isdir = require ( 'isdir' ) ; var fd = __dirname ; // or what ever you need to check isdir ( ...

    vue中get请求如何传递数组参数的方法示例

    前言: vue中在与后端进行数据交互时,使用axios发送请求,不做配置直接使用get请求传递数组类型参数的时候,后端是无法接收数据的,需要对axios一些简单的配置才能让后端完美的接收数组 1、问题 示例代码 let ...

    D:\uC_OS-II V2.51源码

    #if (OS_TASK_STAT_EN &gt; 0) && (OS_TASK_CREATE_EXT_EN &gt; 0) OSIdleCtrRun = 0L; OSIdleCtrMax = 0L; OSStatRdy = FALSE; /* Statistic task is not ready */ #endif OSCtxSwCtr = 0; /* Clear the context ...

    KoreEasy RO的SF服专用程序

    stat_add (str | agi | vit | int | dex | luk) - 将属性点数加到指定属性上 ※注:必须有可用属性点数才能加,属性点数可突破99(异常状态,会被冻)。 skills add (技能标码 #) - 将技能点数加到指定技能上 ※注1:...

    LINUX下安装TFTP

    LINUX下安装TFTP ...下载tftp-hpa-0.48.tar.gz ...下载tftp-server-0.42-3.1.i386.rpm ...可以在tftpboot中放一些文件,然后使用tftp客户端命令连接服务器,然后用GET命令下载文件,如果下载成功,就大功告成了。 配置结束。

    stat-engine:面向公共安全的实时开源数据分析和可视化平台

    StatEngine是消防服务分析系统,它是获取准确和实时信息的最全面的方法,可帮助消防服务领导者确保充足的消防资源,优化消防操作,减少消防员的伤亡人数,最大程度地减少平民伤亡和财产损失。 有关资金和背景的更多...

    调用PowershellTCP-antiantiav

    要使用它:Power -Reverse -IPAddress IP -Port端口 其他Powershell旁路 powershell -ep旁路 设置项( 'V' + 'AR' + 'IA' + 'BLE:1Q2' + 'uZx')( ); (GeT-VariaBle(“ 1Q2U” +“ zX”)-VaL)。“ A ss Embly...

    缓冲区代码

    // stream_manage.get_recordStatCB = record_stat; st_stream_avRegister(&stream_manage); st_stream_init_avstream(); Init_Interface(16); ret = pthread_create(&get_id, NULL, get_frame, NULL); if...

    使用Go(Golang)编写的推送通知服务器。-Golang开发

    目录gorush目录支持平台功能内存使用情况基本用法下载二进制文件从源代码安装必备工具从GitHub获取命令用法发送Android通知发送iOS通知使用Firebase发送Android或iOS通知运行gorush Web服务器Web API GET / api / ...

Global site tag (gtag.js) - Google Analytics