Improving Queue Performance

Lately I’ve heard a few requests to improve the Project Server queue performance. For instance some of the request I’ve heard are: improve the publishing time from Project Professional, improve the timesheet processing time, etc…

Before going further I highly recommend reading the following article:  Microsoft Office Project Server 2007 Queuing System for an in depth understanding on how the queue works.

Assuming the customer has the latest Project Server Service Pack/hotfix, what else can be done to improve performance?

A first option is described in Brian Smith’s blog: Is your Project Server 2007 queue running a few minutes slow?, basically make sure all servers in the farm have the same time.

Another option which requires more work is to identify was is slowing the queue down and act accordingly. For instance start monitoring performance counters (for a list check this: EPM & SharePoint Performance Counters) for each server in your farm and focus on counters when the queue is “slow”, basically try to identify the bottleneck.

Typical bottleneck I’ve seen in the past:

  • undersized database server (not enough CPU, RAM), symptoms are typically high CPU and RAM usage
  • poor database disk configuration, symptoms are poor PhysicalDisk counters
  • poorly configured database server (data and log file on same disk, RAM not fully utilized …), check all SQL counters, get a SQL specialist to help if you don’t have the skills (check this SQL Server Best Practices)!
  • poorly maintained database server (yes your database need to have a maintenance plan in place :), check this for instance: Database Maintenance for SharePoint, EPM Database Maintenance Tasks
  • customization, yes a badly written custom event handler/VBA macro could also be the culprit, to verify it I always ask the customer to do a performance test without any customization

You could also run a SQL Profiler to see what’s happening from a database point of view (check this on how to setup a trace: Running SQL Server Profiler with Project Server).

Another great tool to watch the queue is this from CodePlex: EPM 2007 Queue Watch tool

In the end improving the queue performance could be quick or long to achieve depending on how much you know your farm (performance counters, customization…) and how optimized it is.