乐于分享
好东西不私藏

定时监控APP运行情况的脚本

定时监控APP运行情况的脚本
Modbus网关 综合测试报告汇总
上次有读者问网关运行后,怎么测试?其实有很多方式,介绍一种最简单使用的方式。
可以创建一个定时脚本自动获取并记录两个实例的运行数据。

 1. 创建监控脚本

文件 : Monitor_ModbusGateway.ps1
# ModbusGateway 监控脚本# 每5分钟记录一次运行状态$logFile = "modbusgateway_monitor.log"$header = "Time,PID,Memory(MB),CPU,Handles"# 写入表头if (!(Test-Path $logFile)) {    $header | Out-File -FilePath $logFile -Encoding UTF8}# 监控循环while ($true) {    $time = Get-Date -Format "yyyy-MM-dd HH:mm:ss"    $processes = Get-Process | Where-Object {$_.ProcessName -eq "modbusgateway"}    foreach ($proc in $processes) {        $memory = [math]::Round($proc.WS/1MB, 2)        $cpu = $proc.CPU        $handles = $proc.Handles        "$time,$($proc.Id),$memory,$cpu,$handles" | Out-File -FilePath $logFile         -Encoding UTF8 -Append    }    # 每5分钟执行一次    Start-Sleep -Seconds 300}

2. 启动监控

# 启动监控脚本powershell -File "Monitor_ModbusGateway.ps1"

3. 查看监控数据

查看最新监控数据

Get-Content "modbusgateway_monitor.log" | Select-Object -Last 20
当然可以直接打开记事本查看😄
# 按PID分组查看Import-Csv "modbusgateway_monitor.log" | Group-Object PID | ForEach-Object {    $_.Group | Select-Object -Last 5}

4. 实时监控命令

实时查看进程状态 :

实时监控(每10秒)

while ($true) {    Clear-Host    Get-Process | Where-Object {$_.ProcessName -eq "modbusgateway"} |     Select-Object Name, Id, @{Name="Memory(MB)";Expression={[math]::Round($_.WS/    1MB,2)}}, CPU, Handles    Start-Sleep -Seconds 10}

当前运行状态

两个实例运行正常,资源使用合理。17888实例已运行5.5小时以上,内存稳定在46.91MB,表现优秀。