Programming Blog

Jeremy Morgan

Mostly Coherent Ramblings of a Silicon Forest Software Developer

Load Testing Your IIS Web Server

Load Testing Your IIS Web Server

All the theory, calculations, and estimations in the world aren’t going to tell you how your website will truly perform under a load. If you’re deploying a new server, or doing any kind of performance enhancements you don’t want to test your results in production. It’s always a good idea to see how your system behaves before your visitors do. To do that, you can use a load testing tool, and here are a few I use quite frequently.

Netling

Load Testing IIS Web Server

Download Netling Here

One of the “quick and dirty” applications I use is Netling. This is a super simple tester written in C#. You will need to compile this with Visual Studio, but you don’t neccessarily have to be a developer to do it. I’ve been able to load it up, and select build to create it with no modifications with many versions of Visual Studio.

Netling is super simple to operate and about as easy as it gets.

You select how many threads you want to run. This is entirely up to you, more threads will put more load on your machine, and depending on how many cores your CPU has, more may not neccessarily be better. Experiment with it and see what works best for you.

It has a feature for “Pipelining”. This is when multiple requests go through a single socket without waiting for a response. Setting this higher will generate a higher load but again this something to adjust for best results. There will be a physical limit to pipelining depending on your hardware and connection speed.

This is a handy tool and is extremely simple to use. One issue I’ve had with netling is it sends raw requests that aren’t much like a real browser. To emulate real traffic more accurately I have another tool I like to use.

Netling Pros

  • Free
  • Open Source, can be easily modified
  • Extremely Simple

Netling Cons

  • Doesn’t simulate real transactions well
  • Can’t do authentication or other simulations
  • Only tests one URL at a time

Web Surge

Load Testing IIS Web Server

Download Web Surge Here

Web surge is by far one of my favorites. It’s a great application that simulates a load on your server in a very realistic fashion.

With this program you create sessions, which means you can use more than one URL for the test. Each of the URLs will be run in the session, which can make it more random and realistic. It has a ton of great options as well:

Load Testing IIS Web Server

It gives you quick results, and you can “drill down” to get more detailed data.

Load Testing IIS Web Server

You can also export these results in several formats. There’s the websurge proprietary format, as well as XML or JSON. You could parse these results for future analysis work.

Overall Websurge is among my favorites for load testing because it’s closer to real world traffic. If you put in a list of all your pages and randomize the test, it can provide some solid information.

Web Surge Pros

  • Free (for personal use)
  • Professional Version reasonably priced
  • Fast and generates a large load
  • Simple to use, yet powerful
  • Simulates “real world” traffic very well
  • Extremely configurable

Web Surge Cons

  • None than I can think of

Apache JMeter

Load Testing IIS Web Server

Download JMeter Here

The Next application we’ll look at is jmeter. This is an extremely powerful program and can do very thourough testing in addition to generating a load. In fact load testing with jmeter is just a very small part of it’s overall functionality.

With JMeter you have scenarios to run out, because it’s more of a testing oriented application you can run through a longer set of steps and processes as a part of your test.

I would encourage you to really dig into this application and learn as much as you can about it to get the full benefits of it.

Apache JMeter Pros

  • Free
  • Very Powerful
  • Detailed tests can be set up
  • Minimal setup

Apache JMeter Cons

  • Steeper learning curve
  • Can be fairly complicated
  • May be overkill for what you need

Conclusion

There are many tools out there for load generation, but these are the ones I use the most. I like to set up various different tests to accurately guage performance of your website and it’s reaction to a load.

In fact, the reaction to a heavy load is the most important thing I’m looking for. When doing performance measurements it’s difficult to really nail down all the variables and prove a change has increased performance. But sending a heavy load to your server and seeing how it reacts is pretty conclusive.

I cover some performance and stabily enhancements in my Pluralsight Course - IIS Administration Fundamentals. Check it out if you want to learn more about administering IIS Servers.

How to Install Microsoft SQL Server on Ubuntu Linux in 5 Minutes

I must admit I was surprised when I learned that Microsoft SQL Server would be availble in Linux. They’ve been pushing the open source initiative hard, but I didn’t expect something this big. Oh yeah, Visual Studio is now available for Mac as well. I just saw a pig flying by.

While MS-SQL is not open source they have made it available to run on open source platforms such as Linux and OSX, which I can imagine took a ton of work. So I decided to take advantage of this new option and try it out. It works great! It took 5 minutes to install. Here’s how you can do it too. Note that you will need a server with 3.5 gigs of RAM for this.

Intro to Application Pools in IIS

Application Pools in IIS can be somewhat of a mystery. Since they’re created for you automatically many times Administrators don’t give them a second thought. But understanding application pools is crucial to having a good running IIS server.

I cover this and other IIS Administration topics in my IIS Administration Fundamentals course at Pluralsight. Check it out!

Hands on IoT With the Raspberry Pi

Great news! I finally got my IoT course done! It took a long time to develop, and a lot of learning but totally worth it. This is not really a post advertising it but just a quick talk about the process.

Review: Netgear WAC730 Wireless Access Point

In this article I’ll be reviewing the Netgear Prosafe WAC730 Wireless Access Point. This is a WAP geared towards small to medium sized businesses, and is designed to compliment your existing network. I received this product for free in exchange for my honest opinion as part of the Netgear Ambassador Program. They sent me this unit to try out, and after extensive evaluation here’s what I think.

How to Set Up Free SSL for Your Website

If you’re reading this then welcome to the new server! Due to my web host taking a huge nose dive, I had to scramble to find new hosting. In doing so I explored SSL solutions and a friend suggested Let’s Encrypt. I liked the experience so much I thought I’d share it.

Easy CRUD for Your Web API With Dapper

Full disclosure here: I don’t like ORMs. If you’re building an enormous enterprise project, you should absolutely use an ORM. If you have data you really care about and a complex, monstrous system using something like Entity Framework can save you a lot of frustration. If you’re building a simple application, or some home project it’s really unnecessary.