Skip navigation

Standard Performance Evaluation Corporation

Facebook logo LinkedIn logo Twitter logo

SPECweb2005 Support FAQ

Last modified: 03/24/2006

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

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 are seeing.

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

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 specwebclient

More information about heap size and garbage collection can be found here:

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 'java specweb' 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 SPECweb2005 directories.

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.
  • Modify BESIM_banking.h, BESIM_ecommerce.h, and 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?

A: The,, and 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, i.e.

Q: I'm getting invalid account values in client logs and it use to work fine"

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 response errors.
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 SUT.

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= in your Test.config, you should use a URI such as (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 6.0?

A: There is a helpful tutorial available here:

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 here:;en-us;326965

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 NOT.

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 ( and on one machine, your entries should read:


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[1]: [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: 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.