Is there someway to record Task Managers info about CPU and memory usage to examine later? Or an equivalent tool?
9 Answers
Windows Performance Monitor (perfmon) should do the job for you; you can configure it to log to a file, so just enable the counters you need and it'll log as much as you want.
- 21Any chance you want to write up a more complete answer? Some steps to follow?Buh Buh– Buh Buh2016-10-28 13:33:56 +00:00Commented Oct 28, 2016 at 13:33
- knowledge.ni.com/…Karel Macek– Karel Macek2022-10-17 09:33:57 +00:00Commented Oct 17, 2022 at 9:33
- is it possible to do that without labview or installing any program?Hick– Hick2025-06-25 20:43:40 +00:00Commented Jun 25 at 20:43
- Start > Run > perfmon
- Hit the plus sign next to Performance Logs and Alerts
- Right click System Log and select properties.
- Adjust the sampling times to whatever you like
- When you are done, hit OK then the plus sign at the top of the window.
This page gives a pretty good step-by-step with screenshots
- 5Your link was about MS SQL Performance Monitor? OoBohne– Bohne2015-04-23 19:24:18 +00:00Commented Apr 23, 2015 at 19:24
- 7I don't see a "Performance Logs and Alerts" section on Windows 10.Stevoisiak– Stevoisiak2020-05-03 00:35:54 +00:00Commented May 3, 2020 at 0:35
- 2"Hit the plus sign next to Performance Logs and Alerts" Where is that?endolith– endolith2021-06-09 23:33:37 +00:00Commented Jun 9, 2021 at 23:33
- To collect the required Perfmon log data in Windows 7, Windows Server 2008 R2, Windows 8, Windows 2012 and Windows Vista: Click Start > Run, enter perfmon.exe, and click OK. Go to the User Defined folder. Click New > Data Collector Set. Enter a name for your Data Collector Set. kb.vmware.com/s/article/2010970endolith– endolith2021-06-09 23:39:36 +00:00Commented Jun 9, 2021 at 23:39
You may consider using a monitoring solution like zabbix, zenoss to collect and analyse your perf counters.
I use PolyMon to monitor these kinds of things. You can define various "alert" conditions about which you'd like to receive notification, so I get notified if one of my servers is having a problem.
But it also stores all these results in a long term database, so I can look back at the memory usage of server "X" and see it's memory usage trends over the last N days/weeks/months/years.
- The link you posted (polymon.codeplex.com) no longer exists.cuppajoeman– cuppajoeman2023-04-18 21:29:53 +00:00Commented Apr 18, 2023 at 21:29
Cacti is a great webv based graphing programme. It can graph CPU, memory, disk space, etc, etc. It can also be extended with your own plugins.
Opensource solution Nagios does this also:
Simple PowerShell script for the job:
# Define the output file $outputFile = "C:\tmp\cpu_usage_log.csv" # Check if file exists, if not create with headers if (!(Test-Path $outputFile)) { "Timestamp,CPU_Usage,Memory_Usage" | Out-File $outputFile } while ($true) { # Capture current timestamp, CPU usage, and memory usage $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $cpuUsage = [math]::Round((Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue, 2) $memoryUsage = [math]::Round((Get-Counter '\Memory\Committed Bytes').CounterSamples.CookedValue / 1MB) # Format the output $logEntry = "$timestamp,$cpuUsage,$memoryUsage" # Append the log entry to the file $logEntry | Out-File -FilePath $outputFile -Append # Pause for a specified interval (e.g., 5 seconds) Start-Sleep -Seconds 5 } Then save in a file (eg. log_cpu_and_memory.ps1) and run in elevated PowerShell (Win + R -> powershell.exe -> Ctrl + Shift + Enter)
./log_cpu_and_memory.ps1 The output is a CSV file with the following format:
Timestamp,CPU_Usage,Memory_Usage 2024-09-23 13:25:48,0.85,14520 2024-09-23 13:25:55,1.44,14464 2024-09-23 13:26:02,4.9,14599 What I like about this solution is that it creates a live log that can be interrupted by the system, eg. due to shutdown, low battery, etc. There is no need to save the recorded log manually.