Part 1 – Blackboard Performance Tuning: An Iterative Approach

This is Part 1 of 3 in this series:

Part 1 – Overview & Architecture

Part 2 – JVM Tuning Methods

Part 3 – Additional Tuning Methods


Blackboard provides performance tuning documentation for their application in the document library at the behind the blackboard website ( Blackboard’s guidelines are a valuable starting point and is a sufficient comprehensive solution for smaller institutions. However a test driven approach that relies on an iterative cycle of tuning and load tests will yield more substantial performance gains and adapts to the variety of host architectures. The following steps are a top-level overview of an iterative approach to tuning the Blackboard application and its host environment:

  1. Use Blackboard and Java tuning practices as a guideline to develop a baseline configuration.
  2. Isolate a single configuration variable (i.e. garbage collector choice, heap generation ratio, survivor space size, optional switches, etc.)
  3. Load test a variety of configurations for the chosen variable (while maintaining the base configuration for all other variables) to determine  the most effective setting.
  4. Repeat 2-3 for all variables.
  5. Following these steps will provide a more efficient configuration than the base configuration. However changing one variable may alter the effect of a change in another variable. The optional steps below will account for the interdependency of the variables and hone in on the most effective configuration possible:

  6. Use the tuned configuration arrived at in step 4 as the new baseline configuration.
  7. Repeat steps 2-4.


To understand effective performance tuning configurations of the Blackboard application and its host environment it is valuable to define the function and architecture of the application and its environment. The following is a top-down list of the resources that impact net performance of the application:

  1. Software
    • Blackboard Application
    • JVM
    • Tomcat
    • Web Server (IIS, Apache)
  2. Operating System and Services
  3. Server Hardware
  4. Network Architecture and Hardware

The Blackboard application is a collection of Java Server Pages and Servlets (accompanied by occasional perl.) This code is nothing more than a set of instructions. The performance of the application is determined by the methods used to execute the instructions. It is executed within a virtual machine model called a Java Virtual Machine (JVM.) The JVM provides an environment capable of executing Java bytecode (compiled Java source code) and storing information and complex data structures within its heap.

The web server and Tomcat serve requests to the Blackboard application. The web server hosts websites and delivers webpages to users, in this case the Blackboard website. However the web server does not directly make requests or receive responses from the JVM. The web server interfaces with Tomcat, a servlet container, which in turn interfaces with the JVM. Tomcat behaves as a Java-exclusive web server and acts as an adapter between the web server and the JVM.

The Operating System interfaces with the hardware on which it resides to expose the resources to Blackboard. The greatest effect that the operating system has on performance will be in the choice of operating system. This article will not promote any operating system over another and acknowledges that each has advantages (for simplicity this series’ examples will assume Windows Server OS.) Beyond the choice in operating system, OS tuning may impact Blackboard (i.e. processor scheduling, virtual memory configuration \ paging file size) and should be considered variables in the tuning process.

Network and server hardware are peripheral to the discussion of tuning the Blackboard application. These resources usually exist by the time tuning is an active topic of concern for an institution. For those institutions interested in hardware sizing, this article will not discuss the topic for it is worthy of its own comprehensive discussion. Blackboard’s documentation on hardware sizing can be found on the behind the blackboard website ( The purpose of mentioning both network and server in this discussion is the influence each has on tuning:

Hardware of individual servers directly affects available resources to the Blackboard application and related processes. The number of processors and the speed of processors and bus impact processing speed, internal communication, memory management and garbage collection, etc. Memory speed and quantity affects the potential size and composition of the Blackboard heap (JVM) and Blackboard memory management \ garbage collection.

The network determines the load and rate that resources on different servers can communicate with one another, external resources, and the end user. The larger the institution, the greater potential impact that institution’s network infrastructure will have on performance for hardware resources are often discrete and many.

About blackboardcodemonkey
My name is Tony West. I am currently a Blackboard server administrator and software developer for a consortium of universities in the mid-west. I was employed by Blackboard from 2009 – 2010 out of Rochester, New York. I am passionate about application development and administration.

One Response to Part 1 – Blackboard Performance Tuning: An Iterative Approach

  1. Sanora says:

    Hi there! Someone in my Myspace group shared this site with us so I
    came to check it out. I’m definitely enjoying the information. I’m bookmarking and
    will be tweeting this to my followers! Great blog and superb design and style.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: