There are some neat counters available in Windows Performance Monitor for showing some IIS (Internet Information Server) statistics. My three favorites are:
- Current Anonymous Users: This counter shows the number of current anonymous HTTP connections. Since most web sites serve content to anonymous users, it’s the one that seems to make the most sense to me when trying to gauge current traffic / activity on the site.
- Anonymous Users / Second: This counter shows the data above, but how many connections per second those site visitors are generating.
- Maximum Anonymous Users: This counter just show the peak number of anonymous users that were connected at a single time. Sometimes it’s neat to see where the site activity peaked.
How do you see these? Here are the steps and screenshots:
First find the Performance Monitor by clicking the Start Menu then Administrative Tools then Performance Monitor:
Then click on Performance Monitor in the left-hand pane under Monitoring Tools. After that you are presented with the graph window and you can click the green plus icon to add counters to this window (play around and different counters – there is a LOT of really neat information available).
After clicking the green plus icon, you are presented with a huge list of counter groups. Within each of those groups are individual counters. There are a ton – you really do need to just play around and check out the options.
For web (IIS) counters though, look for the group named Web Service and click the plus sign next to it to expand and show the individual counters.
After you add the counters you’ll see them listed at the bottom of the graph window, along with the color of each counter so you can match them easily.
There you go. Play around and have some fun checking out what type of traffic is hitting your site and how well the server is performing.
Microsoft has made installing – and doing the initial base configuration of – Internet Information Services (IIS) ridiculously easy by using the Web Platform Installer (WebPI).
Open WebPI, select Products in the top menu bar, then select Server in the left menu bar, then choose the IIS Recommended Configuration. What’s installed/configured with the IIS Recommended Configuration install?
- Static Content
- Default Document
- Directory Browsing
- HTTP Errors
- HTTP Logging
- Logging Tools
- Request Monitor
- .NET Extensibility
- Request Filtering
- Static Content Compression
- ISAPI Extensions
- ISAPI Filters
- WAS Process Model
- Management Console
- WAS Configuration API
- WAS .NET Environment
- .NET 4.5 Extended with ASP.NET for Windows 8
- .NET 3.5 for Windows 8
Let WebPI install all these things for you and you’re pretty much ready to roll. A few other things you might want to install on your web server afterward (also through WebPI) are:
- Web Deploy
- URL Rewrite
- FTP Publishing
Brad on Google+
Did you know that WordPress works – and works great – on Microsoft Windows? Sure, WordPress runs on top of PHP and MySQL, which are commonly thought to be related to Linux, but they work perfectly on Windows Server also. In fact, this blog post that you’re reading right now is running via WordPress on Windows, MySQL, and PHP.
Here’s a blog post by Artur at OrcsWeb showing a walk-through of installing WordPress on Windows Server.
As you can see in the post, Microsoft’s WPI (Web Platform Installer) makes it super-easy even for non-administrators.
I installed the W3 Total Cache plugin last night and enabled about 1/2 of the features. Everything seemed fine initially so I left it alone. Today I went to write a post and noticed my site was down. Yikes! No idea how long it was down because no one bothered to tell me (thanks for nothing readers! :>).
Since the last thing I changed was adding the W3TC plugin, I decided to remove that. Since I couldn’t get the site to load, I had to figure out a way to do this manually. Thankfully I stumbled across this post:
I followed the directions there (minus the .htaccess steps since I’m running on Windows/IIS versus Linux/Apache) then killed all the PHP and W3WP processes related to my site that were running. They kept popping up new ones so I stopped the app pool, then tried again and was able to kill them all. After that I restarted the app pool and hit the URL – all better! Yeah!
I think I’ll avoid that plugin now.
Today I noticed we were getting an increasing amount of spam on one of our form pages. I was curious to see if all of the user IP addresses were the same (in which case I’d just add them to the IIS7 IP Restrictions list). To quickly and easily figure this out I decided to use LogParser. Besides just querying for the page though, I wanted to add an additional condition to exclude rows that came from a certain internal IP address that we use for monitoring.
Here’s a generic version of the query I used:
LogParser.exe -q:on "SELECT * FROM x:\wwwlogs\W3SVC1\u_ex130411.log WHERE cs-uri-stem='/SomePage/' and c-ip<>'10.10.1.100' >c:\temp\PageVisitors.txt"
I wanted to see the full logged data for the request, but if I didn’t, I could have very easily just pulled the IP addresses using:
LogParser.exe -q:on "SELECT c-ip FROM x:\wwwlogs\W3SVC1\u_ex130411.log WHERE cs-uri-stem='/SomePage/' and c-ip<>'10.10.1.100' >c:\temp\PageVisitors.txt"
You can see that I’m piping the results to a text file (the “>c:\temp\PageVisitors.txt” part) so that I can easily deal with the results. You may also want to take note that I’m using the “-q:on” flag which runs the command in Quite Mode. If you don’t set this flag then LogParser will show results one page at a time. When piping to a text file rather than the command prompt window, you obviously can’t hit a key for “next page” so without this flag the query will actually hang forever if there is more than one page worth of results.