Boost server disk I/O performance with a battery-backed write cache

If you'd like to improve disk I/O performance for a server system, consider adding a battery-backed write cache (BBWC). Here's an illustrated look at how you can add a BBWC module to gain an easy, affordable performance boost.

This article is also available as a download.

Server consolidation, multimedia-heavy applications, real-time applications, and larger storage requirements can place a measurable disk I/O strain on server systems. One way to ease this burden is to add a battery-backed write cache (BBWC) module. We're going to walk through an example that shows how this works. We'll see how to determine what part to order, how to install it, and how to verify that it's installed correctly.

Indications that you need a BBWC module

Here are some of the factors that suggest you might want to add a BBWC module to your server:

  • You see a value (consistently greater than 1 or measurably larger than well-performing servers) in the \PhysicalDisk(_Total)\Avg. Disk Queue Length counter of Windows Performance Monitor (or commensurate tool from another OS).
  • Your disk controllers do not already have a BBWC module, and one can be added.
  • You have (unmeasured) less performance on one server than another like server with less utilization.
  • You may be adding significantly more functionality to an existing system with no new servers being added.

Installation example

For our example, we'll be using an HP ProLiant ML350 G4p server. The server has two RAID array controllers (one Smart Array 641 controller and one Smart Array 642 controller). We'll go through the process of:

  1. Determining whether a BBWC module is currently installed on the 642 controller.
  2. Selecting the correct part number for the BBWC module.
  3. Installing the BBWC module.
  4. Viewing the new BBWC module in the system after installation.

Step #1: Determine whether a BBWC module is currently installed

This may sound silly, but you need to make sure a module isn't already installed in your server before you set out on a mission to add one. For the HP ProLiant server series, there are two easy ways to determine whether a BBWC module is installed: getting the array controller's information at startup and using the HP Array Configuration Utility (HP-ACU). We'll use the first method here; our verification step at the end of this process will give you a look at the HP-ACU.

Getting the controller's information at startup is generally straightforward. At the computer POST, be sure to watch all the text action as components initialize. By watching the initialization, we see the information shown in Figure A.

Figure A

The yellow highlighted boxes show a performance of 64 MB for each controller. A quick look at the HP QuickSpecs for the Smart Array 641 and 642 controllers shows that the default cache memory amount is 64 MB. So both of these controllers are candidates for adding a BBWC module.

Step #2: Select the correct BBWC module

In the case of the HP Smart Array series, the BBWC enabler varies by controller module, so be sure to consult your reseller or the QuickSpecs to identify the correct part number for your addition. In this example, the Smart Array 641 and 642 controllers use the same BBWC module, and its HP Part Number is 351580-B21 for the United States. The price for this part is listed on the HP site as $299 when purchasing a Smart Array 641, so this is not a large investment.

This option will add 128 MB of ECC DDR to the controller. There is also a 64 MB module, but we'll use the 128 here. Different Smart Array controllers have different performance levels. For example, the new Smart Array P600 controller has a 512 MB BBWC module, and not all BBWC modules are interchangeable for the 6400, 5i, 6i, 64x, and P600 models. So make sure you consult the QuickSpecs when selecting a BBWC module.

Figure B shows how we've arrived at the part number above by using the QuickSpecs online. You can also download the QuickSpecs to run locally with the HP Product Bulletin application.

Figure B

This may seem like overkill, but it's important to be careful when adding parts to systems that are already in use. (When you purchase a new server, it's usually a lot easier to add the BBWC module.) Further, if you're dealing with a retired product, it may be easy to find the part number but difficult to find the part (at least, at a price you like).

Step #3: Install the BBWC module

Module installation is fairly simple; however, you will have to shut down the system and remove the array controller or ensure that you have clear access to its chip-populated side. In this example, we'll remove the controller and insert the BBWC enabler into the card outside the server. Figure C shows the slot where the BBWC enabler will go.

Figure C

Shut down the server and carefully remove the Smart Array controller. Then, insert the BBWC enabler into the slot so that the white handles clip on the outside of the module, as shown in Figure D.

Figure D

Now, place the array controller back into the server and boot it up.

Step #4: View the new BBWC enabler

Once the module is installed in the system, you can verify that the system has access to the additional memory. In this case, we'll view the information with the HP-ACU. Open up HP-ACU, select the controller where you added the BBWC enabler, and click More Information. You should see a change in the memory displayed, as shown in Figure E.

Figure E

After you add the BBWC enabler to the server, the first few boots may display a message that the module is not fully charged. This is normal, and the controller will handle the trickle charge of the enabler. The full memory amount is available to the controller, but the battery-backed part is limited until fully charged.

Is this a golden band aid or a real solution?

Although adding a BBWC module will increase your server disk I/O performance, it's no excuse for a poor server implementation. Excessive application logging, bad code, rogue applications, or other poorly implemented solutions can improve only so much by having more horsepower thrown at them. Of course, there are other solutions, such as server optimizers and drive array configuration selections. Eventually, you will be asked to provide more performance from the server system--and you may not have any more silver bullets left! However, adding the BBWC enabler provides an easy performance boost, and for a value, at that.

Additional resources

HP Product Bulletin. Here, you can obtain specific part numbers for ordering BBWC pieces and install the product bulleting application locally on your computer.

Top Six FAQs on Windows 2000 Disk Performance. This article provides a good, detailed explanation of the actual mechanics of drive performance and the Windows measurable elements.


Rick Vanover is a software strategy specialist for Veeam Software, based in Columbus, Ohio. Rick has years of IT experience and focuses on virtualization, Windows-based server administration, and system hardware.