The following table lists the configuration directives that may be used for running SPECweb2005 benchmarks.
| accept_max | It configures the maximum number of client connections to be accepted at one time. |
| admin_address | It configures the command-line-based web administrative server. |
| cache_file_count | It configures the estimated number of static files that will be stored in the cache manager. |
| cache_memory_size | It configures the memory size for the cache manager. |
| cache_target_hit_rate | It configures the target hit rate for the cache manager. |
| connection_max | It configures the maximum number of client connections. |
| connection_timeout | It configures the longest inactivity time in seconds for a connection. |
| direct_io | It configures whether direct IO should be enabled to serve IO requests outside the cache manager. |
| disk_worker_count_max | It configures the upper bound of the disk IO thread pool size. |
| disk_worker_count_min | It configures the lower bound of the disk IO thread pool size. |
| disk_worker_shared | It configures whether the disk IO thread pool should be shared among all httpd worker threads or on a per-worker basis. |
| do_aio | It configures whether AIO should be enabled to serve IO requests outside the cache manager. Supported on Solaris only. |
| aio_posix_api | It configures whether to use POSIX AIO or KAIO. Supported on Solaris only. |
| header_etag_on | It configures whether the Etag header should appear in reply. |
| header_server_on | It configures whether the Server header should appear in reply. |
| java_connection_per_worker | It configures the number of TCP connections between each httpd worker thread abd the Rock JSP/Servlet Container. |
| jrock_config | It configures the Rock JSP/Servlet Container configuration file. |
| jrock_home | It configures the Rock JSP/Servlet Container home installation directory. |
| keepalive_max | It configures the maximum of client requests allowed on a connection. |
| log_buf_size | It configures the buffer size for access log. |
| read_buf_size | It configures the non-cached buffer size for disk IO requests. |
| read_buf_size_cache | It configures the cache buffer size for disk IO requests. |
| send_file | It configures whether the sendfile-like system call should be enabled to serve IO requests outside the cache manager. |
| send_file_min_size | It configures the smallest file for enabling send_file. |
| server_log/td> | It configures the httpd server log. |
| ssl_session_max | It configures the maximum number of concurrent SSL sessions. It is declared inside a secure web server instance. |
| tcp_send_buf_size | It configures the TCP send buffer size for client connections. |
| use_acceptor | It configures whether dedicated threads should be used for accepting client connections. |
| validate_httpmod | It configures the modification checking time for static files. |
| validate_static | It configures the modification checking time for HTTP modules. |
| worker | It configures explicit httpd worker threads. |
| worker_count | It configures the number of httpd worker threads; it has effect only if the directive worker is not used. |
| worker_sched_priority | It configures the scheduling priority for httpd worker threads. |
The following httpd configuration file works for all three workloads of SPECweb2005 benchmarks.
# Directives and tunables in this section should work well for machines with all configurations
server_log httpd.log
validate_static 360000
validate_httpmod -1
header_etag_on 0
header_server_on 0
log_buf_size 1048576
tcp_send_buf_size 1048576
keepalive_max -1
connection_timeout 9600
admin_address */8000
direct_io 1
# Explicit worker thread configuration depends on system configurations such as the numbers of CPUs
# and network cards. See SPECweb2005 publications for details.
# connection_max configures the maximum number of client connections. If the number of user sessions
# is N, a good value for connection_max is (2.5 * N). The value can be smaller if multiple web server
# processes are used. The system file descriptor limit should be bigger than the value of connection_max
# If the system file descriptor limit is too low, the httpd program counter out_of_descriptor will be
# positive. If the value of connection_max is too small, the counter out_of_connection will be positive.
connection_max 204800
# Cache manager configuration 1
cache_replacement random
cache_memory_size 8192
# Cache manager configuration 2
# Loading files into the cache manager is disabled after cache hit rate reaches 98%.
cache_replacement random
cache_memory_size 8192
cache_target_hit_rate 98
# Cache manager configuration 3
# Loading files into the cache manager is disabled after cache hit rate reaches 98%. Sendfile is used
# for static files processed outside the cache manager.
cache_replacement random
cache_memory_size 8192
cache_target_hit_rate 98
send_file 1
# Cache manager configuration 4
# Loading files into ther cache manager is disabled if either the number of files in the cache manager
# reaches 27179 (default value for cache_file_count) or the cache manager memory usage reaches 8192MB
# Sendfile is used for static files processed outside the cache manager.
cache_replacement none
cache_memory_size 8192
send_file 1
# Disk IO thread pool configuration
#
# A few examples are given below for disk IO thread pool configuration. Disk IO request statistics
# is available from the command-line administrative server. To do that, run cliadmin under httpd/bin
#
# cliadmin server-name 8000 see admin_server above
# Type "queue 60" at command prompt. It outputs realtime data for 60 seconds.
# Disk IO thread pool configuration 1.
# This configuration configures no thread pool, all IO requests are served by short-live dynamic threads.
disk_worker_count_min 0
disk_worker_count_max 0
# Disk IO thread pool configuration 2
# This configuration configures one thread pool with the fixed pool size 128.
disk_worker_count_min 128
disk_worker_count_max 128
# Disk IO thread pool configuration 3
# This configuration configures one thread pool, with the pool size between 64 and 128.
disk_worker_count_min 64
disk_worker_count_max 128
# Disk IO thread pool configuration 4
# Suppose that the number of httpd worker threads is 8. This configuration configures 8 thread pools
# with the pool size between 8 and 16.
disk_worker_count_min 64
disk_worker_count_max 128
disk_worker_shared 1
# Disk IO thread pool configuration 5
# Both disk_worker_count_min and disk_worker_count_max are not configured. Each httpd worker thread
# has associated disk IO thread pool with the pool size 8.
# Configure JRock location. Pass Java runtime options to shell environment JAVA_OPTS before start
# the web server process See SPECweb2005 publication for JAVA_OPTS.
jrock_home /usr/jrock
jrock_config specweb2005.xml
# web server instance on port 80 is not needed for banking workload.
#
# Under high load, the number of write IO requests to the access log file can be very big, so make sure
# the file system for the access log is able to handle the number of IOs.
<host> server:80
document_root /www
access_log access80.log
error_log error80.log
access_log_format commonlog_binary
<file> /
cgi_type internal_java
cgi_regex .*jsp
cgi_listener localhost/8080
</file>
</host>
# web server instance on port 443 is not need for support workload.
<host> server:443
document_root /www
ssl_key_file ssl.key
ssl_cert_file ssl.cer
# increase value for ssl_session_max when necessary. If the value of ssl_session_max is too small
# the httpd program counter ssl_session_reclaim will have a positive value.
ssl_session_max 79951
access_log access443.log
error_log error443.log
access_log_format commonlog_binary
<file> /
cgi_type internal_java
cgi_regex .*jsp
cgi_listener localhost/8080
</file>
</host>
Below is a sample BESIM configuration file. There is no explicit worker thread configuration. The number of worker threads is the same as the number of online CPUs.
server_log httpd.log
validate_static 360000
validate_httpmod -1
keepalive_max -1
header_etag_on 0
header_server_on 0
log_buf_size 1048576
tcp_send_buf_size 1048576
connection_timeout 360000
# JSP container maintains keep-alive connections to BESIM web server. Explicit worker thread configuration
# is not needed for peak performance. Distributing load evently among httpd worker threads helps performance
# This can be achieved with the tunable accept_max or use_acceptor. Eabling use_acceptor makes sure client
# connections from JSP container are evenly distributed among httpd worker threads.
use_acceptor 1
# or
# accept_max 1
# If httpmod_scheduler takes the default value 4, every BESIM request is processed by a short-live dynamic thread
# If it takes the value 0, every BESIM request is processed by a httpd worker thread.
httpmod_scheduler 0
<host> besim:80
document_root /usr/httpd/etc/specweb05
access_log access.log
error_log error.log
access_log_format commonlog_binary
<file> /
cgi_type isapi
cgi_where internal
</file>
</host>