News:

We really need your input in this questionnaire

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - kghammond

#1
Thank you,

I will try to get a better understanding of that counter.  On one of our servers, we are seeing regular valures around 200 - 250 for that paramater and spikes over 600.

Thanks again,
Kevin
#2
Can you explain the System.IO.DiskTime paramater?

I assumed this was a % cpu for all disk activity on the server.  It seems this is a total time counter in ms maybe?  Is this assumption correct?  How do you use this information?


Is there any way to relate this to % cpu?

Thank you,
Kevin
#3
As you can tell, I am slowly making my way through all the agent paramaters.  Most of our servers have seperate OS and DATA disk sub-systems.

I assume System.IO.DiskQueue and System.IO.DiskTime are averaged totals for all disk subsystems on the server.  Is that correct?

If the OS is C: and the DATA volume is D:  Would the following counters more accurately reflect the current state of the disk queue length and the disk time for each volume?

Counter = System.IO.DiskQueue.C:"\LogicalDisk(C:)\Current Disk Queue Length":60:A:INT:"Average Current Disk Queue Length on C:"
Coutner = System.IO.DiskTime.C:"\LogicalDisk(C:)\% Disk Time":60:A:INT:"Average % Disk Time on C:"
Counter = System.IO.DiskQueue.D:"\LogicalDisk(D:)\Current Disk Queue Length":60:A:INT:"Average Current Disk Queue Length on D:"
Coutner = System.IO.DiskTime.D:"\LogicalDisk(D:)\% Disk Time":60:A:INT:"Average % Disk Time on D:"


Thank You,
Kevin
#4
General Support / Re: Custom Agent counters not working
February 14, 2008, 11:14:15 PM
I just experimented with using process.io.xxx with a transformation of "Average delta per second", and I compared it to the:
Counter = UserProcess.SQLServer.IO.xxx:"\Process(sqlservr)\IO xxx Bytes/sec":60:A:INT:"Average I/O xxx Bytes for sqlservr.exe over past minute"

Both graphs are virtually identical.

I thought this might be helpful if anyone is reading this thread.

Kevin
#5
General Support / Re: CPU load and utlization
February 14, 2008, 11:07:18 PM
Thank you,

I am starting to feel really dumb for all my little typo's.  It is working great.

Thanks again,
Kevin
#6
General Support / Re: CPU load and utlization
February 14, 2008, 07:22:19 PM
Thanks again for your assistance.  I tried using this transfomration above at a template level but it did not seem to work.  I also tried the following transfromation which did not seem to impact the results either.

sub main()
{
   return ($i / 2)
}


Step 1 is set at "Keep original value"

When I have a lot of CPU activity, it still show the SQL Server CPU at roughlt 2x the CPU utilization.

Thank you,
Kevin
#7
Yes that file exists in the C:\netxms\bin directory.
#8
After installing on Vista x64, when you click on the NetXMS console shortcut, you get an error window:

nxcon.exe - Unable to Locate Component

This application has failed to start because LIBEAV32.dll was not found.
Re-installing the application may fix this problem.


I have other admin workstations to work with so this is not a problem for me, but I thought you might be interested in this error.

Kevin
#9
General Support / Re: Custom Agent counters not working
February 13, 2008, 10:39:25 PM
I was just going to ask that question.  I assume then that process.io.xxx with a transformation will actually be more accurate.

At the same time, my working set counter will be more accurate than process.wkset because it will be averaged over 60 seconds.  Is that correct?

A future request would be to document the built-in counters with the details of how the data is obtained, 60 sec avearged, total, etc.

Thank you,
Kevin
#10
General Support / Custom Agent counters not working
February 12, 2008, 05:45:59 PM
Below is a list of custom counters I have created.  When I copy the updated nxagentd.conf to a node, the first four counters are availble, but none of the rest show up in the NetXMS Console Data Collection List.

*WinPerf
Counter = UserProcess.SQLServer.CPU:"\Process(sqlservr)\% Processor Time":60:A:INT:Average % CPU Time for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.IO.ReadBytes:"\Process(sqlservr)\IO Read Bytes/sec":60:A:INT:Average I/O Read Bytes for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.IO.WriteBytes:"\Process(sqlservr)\IO Write Bytes/sec":60:A:INT:Average I/O Write Bytes for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.IO.OtherBytes:"\Process(sqlservr)\IO Other Bytes/sec":60:A:INT:Average I/O Other Bytes for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.Memory:"Process(sqlservr)\Working Set":60:A:INT:Average Memory usage for sqlservr.exe over past minute
Counter = System.IO.DiskReadTime:"LogicalDisk(C:)\%Disk Read Time":60:A:INT:Average Disk Read Time C:
Counter = System.IO.DiskWriteTime:"LogicalDisk(C:)\%Disk Write Time":60:A:INT:Average Disk Write Time C:
Counter = System.IO.DiskReadBytes:"LogicalDisk(C:)\Disk Read Bytes/sec":60:A:INT:Average Disk Read Bytes Per Sec C:
Counter = System.IO.DiskWriteBytes:"LogicalDisk(C:)\Disk Write Bytes/sec":60:A:INT:Average Disk Write Bytes Per Sec C:
Counter = System.IO.DiskReadTime:"LogicalDisk(D:)\%Disk Read Time":60:A:INT:Average Disk Read Time D:
Counter = System.IO.DiskWriteTime:"LogicalDisk(D:)\%Disk Write Time":60:A:INT:Average Disk Write Time D:
Counter = System.IO.DiskReadBytes:"LogicalDisk(D:)\Disk Read Bytes/sec":60:A:INT:Average Disk Read Bytes Per Sec D:
Counter = System.IO.DiskWriteBytes:"LogicalDisk(D:)\Disk Write Bytes/sec":60:A:INT:Average Disk Write Bytes Per Sec D:


I suspect the colon behind the drive letters are creating the problems.  I have gone over this a few tims, but I can't seemt to find any other misspellings or syntax errors.  Can you find anything wrong with this list?  I am getting two errors in the event log.  One is:

CheckCounter: PDH Error C0000BC0 in call to PdhAddCounter (Unable to parse the counter path. Check the format and syntax of the specified path.)

The other is:

Unable to add counter from configuration file. Original configuration record: System.IO.DiskReadTime:"LogicalDisk(C:)\%Disk Read Time":60:A:INT:Average Disk Read Time C:


Thank you for any help,
Kevin
Thank you,
Kevin
#11
I would like to be able to create custom agent configuration settings and save them with a template.  Then if a device is a memeber of that template, it would automatically add those custom agent configuration settings to all nodes of that template.

For example, if I create a SQL server template, I would like to store the following custom agent counters with the template.  Then anytime I add a new device to that template these custom agent counters will automatically get installed:

*WinPerf
Counter = UserProcess.SQLServer.CPU:"\Process(sqlservr)\% Processor Time":60:A:INT:Average % CPU Time for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.IO.ReadBytes:"\Process(sqlservr)\IO Read Bytes/sec":60:A:INT:Average I/O Read Bytes for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.IO.WriteBytes:"\Process(sqlservr)\IO Write Bytes/sec":60:A:INT:Average I/O Write Bytes for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.IO.OtherBytes:"\Process(sqlservr)\IO Other Bytes/sec":60:A:INT:Average I/O Other Bytes for sqlservr.exe over past minute
Counter = UserProcess.SQLServer.Memory:"Process(sqlservr)\Working Set":60:A:INT:Average Memory usage for sqlservr.exe over past minute
#12
General Support / Re: CPU load and utlization
February 11, 2008, 11:24:04 PM
Thank You, that makes more sense.

Going back to the % CPU time for a process:

Counter = UserProcess.SQLServer.CPU:"\Process(sqlservr)\% Processor Time":60:A:INT:Average % CPU Time for sqlservr.exe over past minute

Is there a way to divide this number by the number of CPU's?  I am guessing this will need to be a script of some sort.  I don't know how hyper-threading affects this counter as well.

Thank you,
Kevin
#13
General Support / CPU load and utlization
February 11, 2008, 08:04:49 PM
I am trying to understand the difference between CPU load and CPU utilization.  I setup both of those DCI's along with a custom DCI for SQL Server CPU.  I graphed them over the weekend.

It seems during our nightly maintenance tasks, (this includes a 15 GB database restore), the SQL ServerCPU pegged out at 100%.  The CPU utilization pegged out just over 50% and the CPU load barely reached 5.

I am guessing that CPU Utilization and SQL Server CPU were off by a factor of 2 due to the server being a dual processor.  If I remember correctly, a processes cpu can reach 200% if it happens to be pegging both CPU's, and CPU utilization is the total CPU for all processors.

But what is CPU Load meassuring?

Thank you,
Kevin
#14
Cool this looked like it worked.  Here is my nxagentd.conf:

MasterServers = srvnetxms01.nrscorporation.com
LogFile = {syslog}
FileStore = C:\NetXMS\var
SubAgent = ping.nsm
SubAgent = portcheck.nsm
SubAgent = winperf.nsm

*WinPerf
Counter = SQLServerCPU:"\Process(sqlservr)\% Processor Time":60:A:INT:Average % CPU Time for sqlservr.exe over past minute


One general question.  What will happen on the agent when sqlservr process is not running.  Say it is restarting or it crashed or something like that?  How does the agent handle perfmon counters when they don't exist?

Thank You,
Kevin
#15
I must have missed this in the documentation, but I didn't realize the agent was customizable.  That is really cool!!

I keep getting more and more impressed with NetXMS every day.