Below are some common questions related to setting up and running the SPECweb2005
benchmark. If you have a question which is not addressed here or in the main FAQ,
please send it to firstname.lastname@example.org
- Q: It's not working, what should I do?
A: Reread the User's Guide and
make sure that you've followed all the steps and have run through
the check lists in section 3. If you still haven't resolved your problem,
review this FAQ to see if there is anything similar to the condition you
If you have reviewed the User's Guide, various README files, and have
tried higher DEBUG_LEVEL values and are still unable to resolve your
problem, then write up all the details of the problem along with any
logs your .config files and send them to email@example.com.
- Q: How long will it take to complete a full compliant 3 iteration
run for one of the 3 workloads?
A: The Minimum required time is: ~144 minutes (2.4hrs), with
each iteration at 48 minutes. If WARMUP_SECONDS or THREAD_RAMUP_SECONDS
have been increased, the test will run somewhat longer.
- Q: My clients are printing "Java.lang.OutOfMemoryError: Java heap
space" errors. What can I do to eliminate these?
A: Invoke the client JVMs with more heap space; for example, assuming
the clients have sufficient RAM, the initial and maximum heap sizes can
be forced to 512MB (these values are only suggestions, and will vary
depending upon system):
java -Xms512m -Xmx512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
More information about heap size and garbage collection can be found
- Q: When trying to manually access PHP pages (i.e. from a browser),
the PHP error log or the response displays "failed to open stream: No
such file or directory in [PATH]\inc.common.php"
A: You must first initialize the benchmark by running '
with all the variables in the .config files set properly. The init.php
script for each workload will write these variables to init_vars.php,
so be sure user the Web server runs as has write permissions for the
- Q: I'm running the PHP scripts on Apache (either as the primary Web
server or as the BeSim server) and I'm seeing errors.
A: If you have BESIM_PERSISTENT=1, try changing it to 0. During testing,
Apache was observed to have issues with attempting to use persistent
sockets to BeSim. It is suspected that this is due to the Apache architecture
which forks multiple child processes to respond to requests; this makes
it difficult to reuse a connection across script executions.
More information about the issue can be found here (search on Apache):
- Q: After running "java specweb", it tries to run the INIT_SCRIPT on
the Web server but fails.
A: Ensure that the user the Web server process runs as has sufficient
permissions to write to the appropriate SPECweb2005 directories. For
PHP (all workloads), init.php attempts to write init_vars.php, which
contains server-specific variables required to run the benchmark.
- Q: Why do I get "access to globals failed" in BeSim responses?
A: For Unix, BeSim attempts to write a globals file to the /tmp directory;
for Win32, the root of the C: drive. There are two possible solutions:
- Change the permissions on the appropriate directory so the user the
Web server runs as can read and write this globals file.
BESIM_supportsite.h to specify different BESIM_BANKING_GLOBALS_PATH,
BESIM_ECOMMERCE_GLOBALS_PATH, and BESIM_SUPPORT_GLOBALS_PATH variables
respectively. You must then recompile the API.
- Q: The PHP scripts don't appear to be running properly, and I don't
get any output from a browser when requesting the pages manually. How
do I troubleshoot this?
A: PHP ships with two ini files, php.ini-dist and php.ini-recommended.
While php.ini-recommended is optimized for performance and security,
for initial troubleshooting, php.ini-dist may be a better choice. This
will configure PHP to display errors in the browser. You may also want
to set "error_reporting = E_ALL", which will display all errors and warnings.
- Q: How can I test whether I've compiled and installed BeSim correctly?
test_besim_support.pl Perl scripts (included in the
BeSim directory) good ways to test whether you're getting valid BeSim
responses. Invoke these scripts with the URL to your compiled BeSim API,
perl test_besim_bank.pl http://220.127.116.11/isapi-bin/BESIM_zisapi.api.
- Q: I'm getting invalid account values in client logs and it use to
A: BeSim may need to be to restarted cleanly along with the rest of
the testbed software. Try:
- stopping the webserver on the SUT
- stopping the BeSim webserver
- remove /tmp/besim_*.globals
- remove old besim access logs
- check that none of your clients are running "java specwebclient" processes
(kill these processes if present)
- start the webserver on the SUT and on BeSim box
- re-run your test
- Q: My clients are dying with "Exceeded max allowed overthink
time" errors, how do I prevent these?
A: Check the following items:
- Ensure your clients are not overloaded.
- Ensure THINK_TIME to a reasonable level.
- Increase THREAD_RAMPUP_SECONDS in Test.config.
- Q: My client logs show sequences of errors that begin with:
2005-05-14 07:27:44:909 SPECweb_Support: [ERROR] SocketTimeoutException
encountered during run! followed by a couple of other header and
Occasionally my log also has error sequences that begin with:
2005-05-14 07:37:02:613 Connection: [ERROR] Bad status: 503
A: Your server is overloaded or under-tuned for the number of Simultaneous
Sessions the test is requesting. The SocketTimeoutException error occurs
when the server was unable to send a response back before the PROTOCOL_TIMEOUT_SECONDS
(60 sec) has expired.The 503 status is returned by some webservers to
indicate that the service is temporarily unavailable. See if reducing
the load on the server eliminates these messages, if so you may wish
to investigate if there is addition tuning that could be done to the
- Q: My clients reported errors during the test but they don't show
up in my run results. Why?
A: If the errors occur before the line that reads "WorkloadScheduler:
Clearing statistics...", then they occurred during warmup and thus are
not counted as errors.
- Q: When navigating the ecommerce pages in a browser, why does "Session
does not exist" appear when I click the "Add to Cart" button?
A: Make sure that you are accessing the Web server with the same host
name as you specified for the WEB_SERVER variable in Test.config. For
example, if WEB_SERVER=192.168.0.1 in your Test.config, you should use
a URI such as http://192.168.0.1/ecommerce/index.php (and not a hostname
that resolves to that IP address). This is due to the way the Location
redirects are done in the scripts.
- Q: Why do I get a segmentation fault when using the Sun 1.4.x JVM
on the x86_64 architecture?
A: This problem is not specific to SPECweb2005. It has to do with the
processor having NX (No-Execute, also known as Execute Disabled) on.
There are two known workarounds:
- Upgrade to a 1.5.x JVM
- Disable NX in your operating system. Under Linux, this can be done
by passing the "noexec=off" command-line option to the kernel. If the
kernel is 64-bit, "noexec32=off" should also be passed.
- Q: How do I get the PHP scripts running on Windows Server 2003 / IIS
A: There is a helpful tutorial available here: http://www.peterguy.com/php/install_IIS6.html
You must also configure IIS to serve all files regardless of file name
extension by adding a wildcard character (*) MIME type. NOTE: This should
not be performed on production Web servers. More information can be found
- Q: I changed BASEDIRNAME in support_image_props_rc file from the default "support" to "supp1data".
The wafgen was failing to create the image files under the image directory
with an error message as: Error: path length too long for requested file
size - what's wrong?
A: The message: Error: path length too long for requested file size
has to do with very small files (like ccc which is 30 bytes). To be a
specweb file it has to have the byte count, relative file name and at
least 1 char. of data. So to handle support's smallest image file, the
path can be <7chars>/<6chars>/<name>. While you can
change the path to something else (sup/sup_images or sup1data/img01 or
other as long as it fits into this footprint and the changes are reflected
in the SPECweb_<workload>.config. The Wafgen README does include
the following warning under the section on Support: Warning: this file
set contains several very small files (30 bytes) so the path name must
not be longer than 14 characters. So, "support/images" is OK but "supporting/image" is
- Q: I am trying to initialize multiple physical web server systems, or multiple
web server instances on one physical system, how do I do this?
A: List all web server instances (hostnames or IP addresses) in
SERVER_LIST, and all ports in SERVER_PORT_LIST. For example, if you
have two web server instances (18.104.22.168:80 and 22.214.171.124:81) on one
machine, your entries should read:
SERVER_LIST = "126.96.36.199 188.8.131.52"
SERVER_PORT_LIST = "80 81"
- Q: I am trying to run the ecommerce workload and get the following error
message, how can I fix it?
2006-03-26 15:16:54:183 SPECweb_Ecommerce: [ERROR] state = 8
response.indexOf fail to find unit price: NN.NN, scaled_load =1
A: One possible reason for this failure is a localization issue. Try changing
the localization settings on the clients to US-format.
- Q: How can I install BeSim as a FastCGI for the Apache HTTP Server?
A: This is a rather complex task with several dependencies on the OS you are running
on. There is a detailed explanation what needs to be done in the
SPECweb2005 User's Guide
(Appendix G). A working runtime configuration is described in the following
published result file:
http://www.spec.org/web2005/results/res2006q2/web2005-20060508-00025.html The important configuration details are listed under the "BESIM Notes" heading.
The recommended Apache Version is 2.0 or newer. With earlier versions incompatibilities
with certain FastCGI modules appeared in some tests. Successful tests have used
mod_fastcgi_2.4.2. There is no experience with older FastCGI versions.