Tuning httpd for xCAT node deployments

In xCAT, the Operation System provisioning over network is heavily relying on the web server (Apache 2.x). However, Apache 2.x is a general-purpose web server, the default settings may not allow enough simultaneous HTTP client connections to support a large cluster.

  1. Tuning MaxRequestWorkers directive

By default, httpd is configured to use prefork module for MPM, which has a limit of 256 simultaneous requests. If slow httpd response observed during OS provisioning, you can increase MaxRequestWorkers directive for better performance.

For example, to avoid some nodes provisioning failure when rebooting all nodes in a large hierarchy stateless cluster ( one service node is serving 270 compute nodes ), increase the value from 256 to 1000.

On Red Hat, change (or add) these directives in


On SLES (with Apache2), change (or add) these directives in

  1. Having httpd Cache the Files It Is Serving


this information was contributed by Jonathan Dye and is provided here as an example. The details may have to be changed for distro or apache version.

This is simplest if you set noderes.nfsserver to a separate apache server, and then you can configure it to reverse proxy and cache. For some reason mod_mem_cache doesn’t seem to behave as expected, so you can use mod_disk_cache to achieve a similar result: make a tmpfs on the apache server and configure its mountpoint to be the directory that CacheRoot points to. Also tell it to ignore /install/autoinst since the caching settings are really aggressive. Do a recursive wget to warm the cache and watch the tmpfs fill up. Then do a bunch of kickstart installs. Before this, the apache server on the xcat management node may have been a bottleneck during kickstart installs. After this change, it no longer should be.

Here is the apache config file:

ProxyRequests Off # don't be a proxy, just allow the reverse proxy

CacheIgnoreCacheControl On
CacheStoreNoStore On
CacheIgnoreNoLastMod On

CacheRoot /var/cache/apache2/tmpfs
CacheEnable disk /install
CacheDisable /install/autoinst
CacheMaxFileSize 1073741824

# CacheEnable mem /                   # failed attempt to do in-memory caching
# MCacheSize 20971520
# MCacheMaxObjectSize 524288000

# through ethernet network
# ProxyPass /install

# through IB network
ProxyPass /install

For more Apache 2.x tuning, see the external web page: Apache Performance Tuning