Solved

objective cpu usage [for qa]

Posted on 2014-01-01
5
475 Views
Last Modified: 2014-01-01
hello

I need to measure cpu usage of a process for performance qa.
I would like to get an indication that would be relevant in different machines with different resources and numbers of cpu's. The value of % cpu is not good enough , because testing in a different environment [with more cpu's] will give a different value.
Is there some way [maybe a program] to get number of cpu threads or something of the sort [similar to amount of memory usage value] ?
0
Comment
Question by:pulke13
  • 3
  • 2
5 Comments
 
LVL 11

Expert Comment

by:Technodweeb
ID: 39749930
You might have a look at this tool.
http://technet.microsoft.com/en-us/sysinternals/bb896653

They have dozens of free and very nice tools for analysis of systems and networks.
0
 

Author Comment

by:pulke13
ID: 39750225
thank you for the response.
This doesn't address my question. I know about this tool.
The problem is that it shows the percent of the cpu that a process is using.
So if for example I run that process in a machine with 4 cpu's - the percentage won't be the same as in a machine with 1 cpu.
I want to know if there is a way to get objective data. Like that number of memory bytes used by a process. The number of [cpu threads?] x of the cpu [not percentage].
thank you.
0
 
LVL 11

Accepted Solution

by:
Technodweeb earned 500 total points
ID: 39750309
I do not mean to seem argumentative but wanted to kick this around a bit. You have an application that you are wanting to measure on differing types of systems with different processors, single core vs. multicore. I get that. Unless your application is written expressly to exploit multiple cores or processors in parallel, your results for utilization whether it be a single core and a dual quad core, assuming the core frequency is the same, will net you fairly close to the same performance. Taking all other possible influences out of the picture like cache onboard the CPU, I/O bottlenecks that force the cpu to wait, system RAM, etc. All things equal, and the CPUs are from the same family, I think you would realize a result that was the same or very, very close to the same.

As for looking at the percentages, yes the aggregate is usually such that if it takes 80% of the CPU on one core of a quad code, the aggregate will show 20%. In comparison, on a single core cpu with all factors the same, the same process will consume the same 80%.

On the Process Explorer, you can drill down for each process and see all of the threads a process is using as well as the CPU cycle count as well.

Another tool they have on the site is PsList which give a live snapshot of process consumption, including Priority, Thread Count Handle Count, Private Virtual Memory, CPU Time (not percentage but actual CPU usage time logged, and much more...

Another option may be to setup a Performance Monitor from within Windows itself. You can define Data Collector Sets which will log quite a bit of detail about the process you are running and it produces some nice reports too. The nice thing is you can save these configurations and move them to any machine and you are ready to go without fear you might forget to add something or the wrong thing and you have to do it again.

These are just some ideas, nothing more... Can any of this help you get to where you need to be for data collection?
0
 
LVL 11

Expert Comment

by:Technodweeb
ID: 39750314
Here is a test I ran for 1 minute on my workstation using Windows Performance Monitor as an example of the types of output you can get from it... I hope it does not show too many secrets about my computer... lol

I picked on process that was currently running and would register some numbers instead of just sleeping. The process was CarboniteService and it ran for roughly one minute measuring all of the topics under the Process category. There are hundreds of categories so look it over as an option.
<OBJECT ID="DISystemMonitor1" WIDTH="100%" HEIGHT="100%"
CLASSID="CLSID:C4D2D8E0-D1DD-11CE-940F-008029004347">
	<PARAM NAME="_Version" VALUE="458755"/>
	<PARAM NAME="_ExtentX" VALUE="20876"/>
	<PARAM NAME="_ExtentY" VALUE="15822"/>
	<PARAM NAME="DisplayType" VALUE="3"/>
	<PARAM NAME="ReportValueType" VALUE="0"/>
	<PARAM NAME="MaximumScale" VALUE="100"/>
	<PARAM NAME="MinimumScale" VALUE="0"/>
	<PARAM NAME="ShowLegend" VALUE="1"/>
	<PARAM NAME="ShowToolbar" VALUE="1"/>
	<PARAM NAME="ShowScaleLabels" VALUE="1"/>
	<PARAM NAME="ShowHorizontalGrid" VALUE="0"/>
	<PARAM NAME="ShowVerticalGrid" VALUE="0"/>
	<PARAM NAME="ShowValueBar" VALUE="1"/>
	<PARAM NAME="ManualUpdate" VALUE="1"/>
	<PARAM NAME="Highlight" VALUE="0"/>
	<PARAM NAME="ReadOnly" VALUE="0"/>
	<PARAM NAME="MonitorDuplicateInstances" VALUE="1"/>
	<PARAM NAME="UpdateInterval" VALUE="1"/>
	<PARAM NAME="DisplayFilter" VALUE="1"/>
	<PARAM NAME="BackColorCtl" VALUE="-2147483633"/>
	<PARAM NAME="ForeColor" VALUE="-1"/>
	<PARAM NAME="BackColor" VALUE="-1"/>
	<PARAM NAME="GridColor" VALUE="8421504"/>
	<PARAM NAME="TimeBarColor" VALUE="255"/>
	<PARAM NAME="BorderStyle" VALUE="0"/>
	<PARAM NAME="TimeAxisLabels" VALUE="1"/>
	<PARAM NAME="Tooltip" VALUE="1"/>
	<PARAM NAME="NextCounterColor" VALUE="12"/>
	<PARAM NAME="NextCounterWidth" VALUE="0"/>
	<PARAM NAME="NextCounterLineStyle" VALUE="1"/>
	<PARAM NAME="MaximumSamples" VALUE="6"/>
	<PARAM NAME="GraphTitle" VALUE=""/>
	<PARAM NAME="YAxisLabel" VALUE=""/>
	<PARAM NAME="DigitGrouping" VALUE="1"/>
	<PARAM NAME="WrapTimeLine" VALUE="1"/>
	<PARAM NAME="DataSourceType" VALUE="2"/>
	<PARAM NAME="LogViewStart" VALUE="1/1/2014 4:32:43 PM"/>
	<PARAM NAME="LogViewStop" VALUE="1/1/2014 4:33:58 PM"/>
	<PARAM NAME="SqlDsnName" VALUE=""/>
	<PARAM NAME="SqlLogSetName" VALUE=""/>
	<PARAM NAME="LogFileName001" VALUE="U:\Users\GeekPatrol\Desktop\EE-Test\GEEK001_20140101-000001\DataCollector01.blg"/>
	<PARAM NAME="LogFileCount" VALUE="1"/>
	<PARAM NAME="AmbientFont" VALUE="1"/>
	<PARAM NAME="LegendColumnWidths" VALUE="	7.97385620915033E-02	7.97385620915033E-02	0.2	9.93464052287582E-02	9.93464052287582E-02	0.2	0.16078431372549"/>
	<PARAM NAME="LegendSortDirection" VALUE="-2"/>
	<PARAM NAME="LegendSortColumn" VALUE="0"/>
	<PARAM NAME="CounterCount" VALUE="28"/>
	<PARAM NAME="MaximumSamples" VALUE="6"/>
	<PARAM NAME="SampleCount" VALUE="0"/>
	<PARAM NAME="TimeStamps" VALUE="130330675630000000	130330675780000000	130330675930000000	130330676080000000	130330676230000000	130330676390000000"/>
	<PARAM NAME="Counter00001.Path" VALUE="\\GEEK001\Process(_Total)\% Privileged Time"/>
	<PARAM NAME="Counter00001.Color" VALUE="8388736"/>
	<PARAM NAME="Counter00001.Width" VALUE="1"/>
	<PARAM NAME="Counter00001.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00001.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00001.Show" VALUE="1"/>
	<PARAM NAME="Counter00001.Selected" VALUE="0"/>
	<PARAM NAME="Counter00002.Path" VALUE="\\GEEK001\Process(_Total)\% Processor Time"/>
	<PARAM NAME="Counter00002.Color" VALUE="755384"/>
	<PARAM NAME="Counter00002.Width" VALUE="1"/>
	<PARAM NAME="Counter00002.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00002.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00002.Show" VALUE="1"/>
	<PARAM NAME="Counter00002.Selected" VALUE="0"/>
	<PARAM NAME="Counter00003.Path" VALUE="\\GEEK001\Process(_Total)\% User Time"/>
	<PARAM NAME="Counter00003.Color" VALUE="16711935"/>
	<PARAM NAME="Counter00003.Width" VALUE="1"/>
	<PARAM NAME="Counter00003.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00003.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00003.Show" VALUE="1"/>
	<PARAM NAME="Counter00003.Selected" VALUE="0"/>
	<PARAM NAME="Counter00004.Path" VALUE="\\GEEK001\Process(_Total)\Creating Process ID"/>
	<PARAM NAME="Counter00004.Color" VALUE="32896"/>
	<PARAM NAME="Counter00004.Width" VALUE="1"/>
	<PARAM NAME="Counter00004.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00004.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00004.Show" VALUE="1"/>
	<PARAM NAME="Counter00004.Selected" VALUE="0"/>
	<PARAM NAME="Counter00005.Path" VALUE="\\GEEK001\Process(_Total)\Elapsed Time"/>
	<PARAM NAME="Counter00005.Color" VALUE="32768"/>
	<PARAM NAME="Counter00005.Width" VALUE="1"/>
	<PARAM NAME="Counter00005.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00005.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00005.Show" VALUE="1"/>
	<PARAM NAME="Counter00005.Selected" VALUE="0"/>
	<PARAM NAME="Counter00006.Path" VALUE="\\GEEK001\Process(_Total)\Handle Count"/>
	<PARAM NAME="Counter00006.Color" VALUE="11788021"/>
	<PARAM NAME="Counter00006.Width" VALUE="1"/>
	<PARAM NAME="Counter00006.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00006.ScaleFactor" VALUE="-3"/>
	<PARAM NAME="Counter00006.Show" VALUE="1"/>
	<PARAM NAME="Counter00006.Selected" VALUE="0"/>
	<PARAM NAME="Counter00007.Path" VALUE="\\GEEK001\Process(_Total)\ID Process"/>
	<PARAM NAME="Counter00007.Color" VALUE="65535"/>
	<PARAM NAME="Counter00007.Width" VALUE="1"/>
	<PARAM NAME="Counter00007.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00007.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00007.Show" VALUE="1"/>
	<PARAM NAME="Counter00007.Selected" VALUE="0"/>
	<PARAM NAME="Counter00008.Path" VALUE="\\GEEK001\Process(_Total)\IO Data Bytes/sec"/>
	<PARAM NAME="Counter00008.Color" VALUE="55295"/>
	<PARAM NAME="Counter00008.Width" VALUE="1"/>
	<PARAM NAME="Counter00008.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00008.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00008.Show" VALUE="1"/>
	<PARAM NAME="Counter00008.Selected" VALUE="0"/>
	<PARAM NAME="Counter00009.Path" VALUE="\\GEEK001\Process(_Total)\IO Data Operations/sec"/>
	<PARAM NAME="Counter00009.Color" VALUE="16760576"/>
	<PARAM NAME="Counter00009.Width" VALUE="1"/>
	<PARAM NAME="Counter00009.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00009.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00009.Show" VALUE="1"/>
	<PARAM NAME="Counter00009.Selected" VALUE="0"/>
	<PARAM NAME="Counter00010.Path" VALUE="\\GEEK001\Process(_Total)\IO Other Bytes/sec"/>
	<PARAM NAME="Counter00010.Color" VALUE="16776960"/>
	<PARAM NAME="Counter00010.Width" VALUE="1"/>
	<PARAM NAME="Counter00010.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00010.ScaleFactor" VALUE="-5"/>
	<PARAM NAME="Counter00010.Show" VALUE="1"/>
	<PARAM NAME="Counter00010.Selected" VALUE="0"/>
	<PARAM NAME="Counter00011.Path" VALUE="\\GEEK001\Process(_Total)\IO Other Operations/sec"/>
	<PARAM NAME="Counter00011.Color" VALUE="10907866"/>
	<PARAM NAME="Counter00011.Width" VALUE="1"/>
	<PARAM NAME="Counter00011.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00011.ScaleFactor" VALUE="-2"/>
	<PARAM NAME="Counter00011.Show" VALUE="1"/>
	<PARAM NAME="Counter00011.Selected" VALUE="0"/>
	<PARAM NAME="Counter00012.Path" VALUE="\\GEEK001\Process(_Total)\IO Read Bytes/sec"/>
	<PARAM NAME="Counter00012.Color" VALUE="16776960"/>
	<PARAM NAME="Counter00012.Width" VALUE="1"/>
	<PARAM NAME="Counter00012.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00012.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00012.Show" VALUE="1"/>
	<PARAM NAME="Counter00012.Selected" VALUE="0"/>
	<PARAM NAME="Counter00013.Path" VALUE="\\GEEK001\Process(_Total)\IO Read Operations/sec"/>
	<PARAM NAME="Counter00013.Color" VALUE="65280"/>
	<PARAM NAME="Counter00013.Width" VALUE="1"/>
	<PARAM NAME="Counter00013.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00013.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00013.Show" VALUE="1"/>
	<PARAM NAME="Counter00013.Selected" VALUE="0"/>
	<PARAM NAME="Counter00014.Path" VALUE="\\GEEK001\Process(_Total)\IO Write Bytes/sec"/>
	<PARAM NAME="Counter00014.Color" VALUE="11788021"/>
	<PARAM NAME="Counter00014.Width" VALUE="1"/>
	<PARAM NAME="Counter00014.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00014.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00014.Show" VALUE="1"/>
	<PARAM NAME="Counter00014.Selected" VALUE="0"/>
	<PARAM NAME="Counter00015.Path" VALUE="\\GEEK001\Process(_Total)\IO Write Operations/sec"/>
	<PARAM NAME="Counter00015.Color" VALUE="10907866"/>
	<PARAM NAME="Counter00015.Width" VALUE="1"/>
	<PARAM NAME="Counter00015.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00015.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00015.Show" VALUE="1"/>
	<PARAM NAME="Counter00015.Selected" VALUE="0"/>
	<PARAM NAME="Counter00016.Path" VALUE="\\GEEK001\Process(_Total)\Page Faults/sec"/>
	<PARAM NAME="Counter00016.Color" VALUE="16711680"/>
	<PARAM NAME="Counter00016.Width" VALUE="1"/>
	<PARAM NAME="Counter00016.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00016.ScaleFactor" VALUE="-2"/>
	<PARAM NAME="Counter00016.Show" VALUE="1"/>
	<PARAM NAME="Counter00016.Selected" VALUE="0"/>
	<PARAM NAME="Counter00017.Path" VALUE="\\GEEK001\Process(_Total)\Page File Bytes"/>
	<PARAM NAME="Counter00017.Color" VALUE="16760576"/>
	<PARAM NAME="Counter00017.Width" VALUE="1"/>
	<PARAM NAME="Counter00017.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00017.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00017.Show" VALUE="1"/>
	<PARAM NAME="Counter00017.Selected" VALUE="0"/>
	<PARAM NAME="Counter00018.Path" VALUE="\\GEEK001\Process(_Total)\Page File Bytes Peak"/>
	<PARAM NAME="Counter00018.Color" VALUE="55295"/>
	<PARAM NAME="Counter00018.Width" VALUE="1"/>
	<PARAM NAME="Counter00018.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00018.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00018.Show" VALUE="1"/>
	<PARAM NAME="Counter00018.Selected" VALUE="0"/>
	<PARAM NAME="Counter00019.Path" VALUE="\\GEEK001\Process(_Total)\Pool Nonpaged Bytes"/>
	<PARAM NAME="Counter00019.Color" VALUE="255"/>
	<PARAM NAME="Counter00019.Width" VALUE="1"/>
	<PARAM NAME="Counter00019.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00019.ScaleFactor" VALUE="-5"/>
	<PARAM NAME="Counter00019.Show" VALUE="1"/>
	<PARAM NAME="Counter00019.Selected" VALUE="0"/>
	<PARAM NAME="Counter00020.Path" VALUE="\\GEEK001\Process(_Total)\Pool Paged Bytes"/>
	<PARAM NAME="Counter00020.Color" VALUE="255"/>
	<PARAM NAME="Counter00020.Width" VALUE="1"/>
	<PARAM NAME="Counter00020.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00020.ScaleFactor" VALUE="-6"/>
	<PARAM NAME="Counter00020.Show" VALUE="1"/>
	<PARAM NAME="Counter00020.Selected" VALUE="0"/>
	<PARAM NAME="Counter00021.Path" VALUE="\\GEEK001\Process(_Total)\Priority Base"/>
	<PARAM NAME="Counter00021.Color" VALUE="8388608"/>
	<PARAM NAME="Counter00021.Width" VALUE="1"/>
	<PARAM NAME="Counter00021.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00021.ScaleFactor" VALUE="0"/>
	<PARAM NAME="Counter00021.Show" VALUE="1"/>
	<PARAM NAME="Counter00021.Selected" VALUE="0"/>
	<PARAM NAME="Counter00022.Path" VALUE="\\GEEK001\Process(_Total)\Private Bytes"/>
	<PARAM NAME="Counter00022.Color" VALUE="8388608"/>
	<PARAM NAME="Counter00022.Width" VALUE="1"/>
	<PARAM NAME="Counter00022.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00022.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00022.Show" VALUE="1"/>
	<PARAM NAME="Counter00022.Selected" VALUE="0"/>
	<PARAM NAME="Counter00023.Path" VALUE="\\GEEK001\Process(_Total)\Thread Count"/>
	<PARAM NAME="Counter00023.Color" VALUE="16711935"/>
	<PARAM NAME="Counter00023.Width" VALUE="1"/>
	<PARAM NAME="Counter00023.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00023.ScaleFactor" VALUE="-2"/>
	<PARAM NAME="Counter00023.Show" VALUE="1"/>
	<PARAM NAME="Counter00023.Selected" VALUE="0"/>
	<PARAM NAME="Counter00024.Path" VALUE="\\GEEK001\Process(_Total)\Virtual Bytes"/>
	<PARAM NAME="Counter00024.Color" VALUE="11193702"/>
	<PARAM NAME="Counter00024.Width" VALUE="1"/>
	<PARAM NAME="Counter00024.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00024.ScaleFactor" VALUE="-9"/>
	<PARAM NAME="Counter00024.Show" VALUE="1"/>
	<PARAM NAME="Counter00024.Selected" VALUE="0"/>
	<PARAM NAME="Counter00025.Path" VALUE="\\GEEK001\Process(_Total)\Virtual Bytes Peak"/>
	<PARAM NAME="Counter00025.Color" VALUE="8388736"/>
	<PARAM NAME="Counter00025.Width" VALUE="1"/>
	<PARAM NAME="Counter00025.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00025.ScaleFactor" VALUE="-9"/>
	<PARAM NAME="Counter00025.Show" VALUE="1"/>
	<PARAM NAME="Counter00025.Selected" VALUE="0"/>
	<PARAM NAME="Counter00026.Path" VALUE="\\GEEK001\Process(_Total)\Working Set"/>
	<PARAM NAME="Counter00026.Color" VALUE="65280"/>
	<PARAM NAME="Counter00026.Width" VALUE="1"/>
	<PARAM NAME="Counter00026.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00026.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00026.Show" VALUE="1"/>
	<PARAM NAME="Counter00026.Selected" VALUE="0"/>
	<PARAM NAME="Counter00027.Path" VALUE="\\GEEK001\Process(_Total)\Working Set - Private"/>
	<PARAM NAME="Counter00027.Color" VALUE="16711680"/>
	<PARAM NAME="Counter00027.Width" VALUE="1"/>
	<PARAM NAME="Counter00027.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00027.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00027.Show" VALUE="1"/>
	<PARAM NAME="Counter00027.Selected" VALUE="0"/>
	<PARAM NAME="Counter00028.Path" VALUE="\\GEEK001\Process(_Total)\Working Set Peak"/>
	<PARAM NAME="Counter00028.Color" VALUE="65535"/>
	<PARAM NAME="Counter00028.Width" VALUE="1"/>
	<PARAM NAME="Counter00028.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00028.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00028.Show" VALUE="1"/>
	<PARAM NAME="Counter00028.Selected" VALUE="0"/>
	<PARAM NAME="Selected: %s" VALUE="\\GEEK001\Process(_Total)\Pool Paged Bytes"/>
</OBJECT>

Open in new window

0
 

Author Comment

by:pulke13
ID: 39750335
thank you very much for your comprehensive answer.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

I worked at a US software company that used offshore contractors for ten years and offshore employees for three years. We had a positive experience and you can too.   When I interviewed people for positions in the US, I would tell them that we wor…
Every server (virtual or physical) needs a console: and the console can be provided through hardware directly connected, software for remote connections, local connections, through a KVM, etc. This document explains the different types of consol…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now