Part 3 – Blackboard Performance Tuning: An Iterative Approach

This is Part 3 of 3 in this series:

Part 1 – Overview & Architecture

Part 2 – JVM Tuning Methods

Part 3 – Additional Tuning Methods


In Part 1 the following was presented as the top-down list of resources related to the Blackboard application that affect its performance:

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

Part 2 discussed in detail tuning a Java Virtual Machine for use with the Blackboard application. The JVM was discussed first because it has the greatest potential performance gains than tuning any other single item on the list. This section contains suggestions for tuning the other items on the list. Please note that this section and this series are not exhaustive. For complete tuning practices please consult the documentation for each individual technology. There are additional resources listed at the end of this section.



Garbage Collection Timeout – This value determines how long a garbage collection is permitted to run before it is forced to terminate (default is 30 seconds.) A system under a heavy load will sometimes require a garbage collection longer that will take longer than the default timeout permits. If this occurs the garbage collection will timeout and the heap will eventually run out of memory causing the JVM (and subsequently the Blackboard application) to crash. A good practice is to double the GC timeout to 60 seconds although this may need further adjustment for some systems.

The timeout is set by the parameter and must be changed in both apps/tomcat/conf/wrapper.conf and config/tomcat/conf/

Other Timeouts – Timeouts for session, assessments, and so on can be set within Blackboard. Generally, shorter timeouts result in improved performance but diminished stability and longer timeouts result in diminished performance but improved stability.

Assessment Timeout – For example “<session-timeout>20</session-timeout>” can be set within blackboard/webapps/assessment/WEB-INF/web.xml. See

Session Timeout – See


Processor Scheduling – Performance gain may be achieved if processor scheduling is set to “Background Services.”

Disable Unused Services – Performance gain may be achieved by disabling any unnecessary services.

Paging File – Paging file size may be considered as another variable in the tuning process to test against the baseline configuration. Properly tuning the paging file size may achieve performance gains.

TCP Chimney – Disabling TCP Chimney may achieve performance gain. This can be accomplished by running “netsh int tcp set global chimney=disabled” at a command prompt.


Allow Persistent Connections – Represented by the parameter bbconfig.webserver.keepalive in The recommended setting is 1.

Persistent Connection Timeout – Represented by the parameter bbconfig.webserver.keepalivetimeout in The recommended setting is 15.

HTTP Compression – Represented by the parameter bbconfig.webserver.compression in The recommended setting is ‘Yes’




Document Library > Blackboard Learn 9.1: Performance Optimization Guide

Document Library > Hardware Sizing Guides


Windows Server

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.

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: