Command for Finding Process Using Too Much Cpu

how to display the CPU percentage usage by each process in cmd

Try pslist from the SysInternals-powered pstools.

You will need to download them from that link and put the tools in your cmd directory (or chdir to wherever they are).

Use -s to see the CPU usage of each process.

Listing processes by CPU usage percentage in powershell

If you want CPU percentage, you can use Get-Counter to get the performance counter and Get-Counter can be run for all processes. So, to list processes that use greater than say 5% of CPU use:

(Get-Counter '\Process(*)\% Processor Time').CounterSamples | Where-Object {$_.CookedValue -gt 5}

This will list the processes that was using >5% of CPU at the instance the sample was taken. Hope this helps!

c# get process with high CPU usage


The code gets a list of all runnig processes and assigns a PerformanceCounter to each of them. It then queries the counters with an intervall of 1000ms. Only the values with > 0% are outputted in descending order to the console.

using System;
using System.Linq;
using System.Threading;
using System.Diagnostics;
using System.Collections.Generic;

namespace ProcessCount
{
static class Program
{
static void Main()
{
var counterList = new List<PerformanceCounter>();

while (true)
{
var procDict = new Dictionary<string, float>();

Process.GetProcesses().ToList().ForEach(p =>
{
using (p)
if (counterList
.FirstOrDefault(c => c.InstanceName == p.ProcessName) == null)
counterList.Add(
new PerformanceCounter("Process", "% Processor Time",
p.ProcessName, true));
});

counterList.ForEach(c =>
{
try
{
// http://social.technet.microsoft.com/wiki/contents/
// articles/12984.understanding-processor-processor-
// time-and-process-processor-time.aspx

// This value is calculated over the base line of
// (No of Logical CPUS * 100), So this is going to be a
// calculated over a baseline of more than 100.
var percent = c.NextValue() / Environment.ProcessorCount;
if (percent == 0)
return;

// Uncomment if you want to filter the "Idle" process
//if (c.InstanceName.Trim().ToLower() == "idle")
// return;

procDict[c.InstanceName] = percent;
}
catch (InvalidOperationException) { /* some will fail */ }
});

Console.Clear();
procDict.OrderByDescending(d => d.Value).ToList()
.ForEach(d => Console.WriteLine("{0:00.00}% - {1}", d.Value, d.Key));

Thread.Sleep(1000);
}
}
}
}

Extract value of CPU usage from get-process command into variable, for further evaulation

I don't know what NODE is, but I do have 2 instances of ttcalc running on my computer so I did a test with it

Get-process ttcalc | Select-Object CPU -ErrorAction SilentlyContinue | ForEach-Object {
$Running = $_.CPU
$Running
}

The output was:

2.484375
2.390625

Using GetType, it turns out that $Running is of type Double, so you should be able to do any calculation or test you want on it.

Get-process ttcalc | Select-Object CPU -ErrorAction SilentlyContinue | ForEach-Object {
$Running = $_.CPU
if($Running -gt 2.42) {
Write-Host "ttcalc output was $Running"
}
}

Output:

ttcalc output was 2.484375

As you can see, it caught one ttcalc, but not the other.

Retrieve CPU usage and memory usage of a single process on Linux?


ps -p <pid> -o %cpu,%mem,cmd

(You can leave off "cmd" but that might be helpful in debugging).

Note that this gives average CPU usage of the process over the time it has been running.



Related Topics



Leave a reply



Submit