• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 325
  • Last Modified:

Show Server Load on ASP Page...

I need to be able to show the server load on an ASP page so I can get a snapshot of what the server load is like at that given page load.  Graphically would be AWESOME, but I'll take text percentages any day.  I could put them in the header showing each CPU and it's load average.  

Is this something fairly easily obtained?  I'm monitoring the load on a large inventory application that's in beta right now and this data would be very useful to me.

Joe
0
Joe Jenkins
Asked:
Joe Jenkins
  • 3
  • 2
1 Solution
 
CyrexCore2kCommented:
Quick and dirty:


    Dim CPU_Count
    Set objWMIService = GetObject("winmgmts:\\localhost\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
    For Each objItem In colItems
        CPU_Count = CPU_Count + 1
        Response.Write "CPU " & CPU_Count & ": <br><ul>"
        Response.Write "Load Percentage: " & objItem.LoadPercentage & "</ul>"
    Next


There's a bunch of other information you can retrieve from the objItem object. Take a look at this page:
http://www-sharp.com/articles/HardwareInfo.php

0
 
Joe JenkinsAuthor Commented:
Interesting idea but I'm getting a permissions error when I run it.  

Output:
error '80041003'
/fsa/test2.asp, line 3

Line3:
    Set objWMIService = GetObject("winmgmts:\\localhost\root\cimv2")

My understanding of WMI is that I'll need to have an administrator account logged in to have this work.  How would that work on a website admin panel where it's using an anonymous account?  Can you impersonate a user account on the server?  If so, this will work beautifully.

Joe
0
 
CyrexCore2kCommented:
You'll have to set that up in IIS

To do that load the IIS management module

Click the website that contains the file where you stored this script
Right click on the file and click properties
Click the file security tab
Click edit in the Authentication and access control frame
Make sure the "Enable Anonymous access" check box is checked
Put in the username and password for an administrative account on the computer

Keep in mind that this is potentially dangerous. If you add anything else to this script take extra precautions to ensure there are no security holes in it.
0
 
CyrexCore2kCommented:
Eh I was bored so I made it graphical for ya ;)

<html>
<body>
<style>
table {
      font-family: arial;
      color: 999999;
      font-size: 10px;
}</style>
<table cellpadding="0" cellspacing="0"><tr>
<%
      Dim CPU_Count
    Set objWMIService = GetObject("winmgmts:\\localhost\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
    For Each objItem In colItems
            Response.Write "<td><table cellpadding=""0"" cellspacing=""0""><tr><td>"
        CPU_Count = CPU_Count + 1
        Response.Write "CPU #" & CPU_Count & ": " & objItem.LoadPercentage & "%<br><br></td></tr><tr><td align=""center"">"
        Response.Write "<div style=""height: 200px; width: 40px; border: 1px solid black; background-color: 007700; padding: 0px;"">"
            Response.Write "<span style=""height: " & ((100 - objItem.LoadPercentage) * 2) & "px; width: 40px; background-color: 000000;""></div></div></td></tr></table></td>"
    Next
%>
</tr></table>
</body></html>

This should display multiple CPUs if you have a dual core or if you have a P4 with hyper threading.
0
 
Joe JenkinsAuthor Commented:
Oooooo, that'll fit nicely on the page with all the other system statistics, thank you!

One more quick thing, for integration into my bar along the top if you're logged in as our sysadmins.  

Now, if I wanted to just show it in a format like:

Load: 0.40, 0, 0.45, 0

I could do:
    Dim CPU_Count
    Set objWMIService = GetObject("winmgmts:\\localhost\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor")
    For Each objItem In colItems
        CPU_Count = CPU_Count + 1
        Response.Write "Load: " & objItem.LoadPercentage / 100 & ", "
    Next
      
Excellent. :)  Thanks again!

Joe Jenkins
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now