NRG Global Availibility Monitoring and Performance Management Products and Services
  Buy Now
myNRG Login System Administration and Quality Assurance Tools Consulting, Training, Custom Development Support Download Performance Management / Load Testing Products About NRG (877) 398-9537
Monitoring Unix, Windows, AIX, HP, AS400, Linux

Chroniker Suite
Availability and Response Time Monitoring of your Network
System Monitoring and Performance Management
Application Monitoring
Pureload for Load Testing
DbVisualizer - Free DB Tool
Walkthroughs and Flash Demos

Untitled Document

Get Updates on
Performance Management


PureLoadTM Frequently Asked Questions

General

Platform Specific Problems

Advanced

General

- How many virtual users can pureload simulate?

PureLoad itself does not put any restriction on the number of vitual users (worker threads). You can start up as many PureLoad workers and threads as you need to achieve the desired load on your target system.

In reality the limit is dependent on the hardware you have availiable, as well as the application you are testing.

- When I copy/paste from PureLoad to Excel (using Ctrl-C) an extra line is inserted. Why?

The default end-of-line delimiter (on Windows) is "\r\n" (Return + Newline).
When pasting into Excel you should change this to "\r" (Return), using the Properties dialog.

- My test seems to hang. What is happening?

The server application does not respond. Enable any task specif debug, trace or verbose settings and run again. Watch the worker log carefully if it halts when contacting the server application. Another work-a-round is to set timeout on the failing task. This will cause the test to continue even if a task hangs.
- "Port already in use" error.
If you get error messages when starting PureLoad servers saying something similar to:

Error starting NamingServer at: host[192.168.10.1]:1099
Exception message is: Port already in use: 1099; ....

This means that the specified port is used by another process. The most common reason is that you already have an instance of the PureLoad server running. Another reason could be that the specified port is used by another program installed on the machine. In this case you must choose another port for the actual process. Read the Installation properties section for more information.

- "Class not found" error.

If you get the error message "Class not found" then the following might be appropriate.
PureLoad does not rely on the CLASSPATH environment variable. Instead this setting among others is defined in the $PURELOAD_HOME/bin/pureload.lax file as property lax.class.path.

Some generic tasks such as the JDBC tasks needs a JDBC driver in order for the tasks to be able to execute. In this case you must update the lax.class.path property to include the location of the JDBC driver classes. If the class path is correct but you still get this error, it can be an invalid message. On some platforms, the Java VM reports ClassNotFoundException when the real problem is rather an out of memory exception, see the next section about "Out of memory".

Note: For tasks using external code such as the example above with JDBC driver then you will need to make these dependencies available to the task space process and all machines that hosts worker threads. I.e. include appropriate class files, etc. in the CLASSPATH.

- "Out of memory" error

If "Out of memory" exceptions appear in the worker log then you will need to increase the memory size of the worker JVM. This exception may also be caused by running out of other OS resources, for example max. number of open file descriptors on UNIX (see below). To increase the maximum allowed memory for a worker, modify worker.args in the $PURELOAD_HOME/bin/pureload.lax file.

Large scenarios that are executed many times (iterations) might cause the console to report out of memory problems. This is typically related to when the Update Interval setting in Tool Properties is set to low (polling to often). Increase the number of seconds and try again.

Platform Specific Problems

- When starting PureLoad I get segmentation fault on my Linux patform?

This is caused by a problem, described in the release notes for Java 2 SDK, Standard Edition Version 1.3.1 as follows:

The newer glibc-2.2.x libraries cannot correctly handle initial thread stack sizes larger than 6 MB. This can cause a segmentation fault on some Linux platforms that use the newer libraries. Such platforms include Red Hat 7.0, Mandrake 8.0, SuSe 7.2, and Debian 2.2. The problem will not occur on Linux platforms that are using glibc-2.1.x such as Red Hat 6.1 and 6.2. It will also not affect Red Hat 7.1 because it uses a different thread stack layout.

Workaround - Use "ulimit -s 2048" in bash shell or "limit stacksize 2048" in tcsh to limit the initial thread stack to 2 MB.

- "Out of environment space" on a Windows 95/98 system

If you encounter an "Out of environment space" error, then you will need to increase the size of the environment table. You do this by editing the CONFIG.SYS configuration file. The change will be permanent and you must restart the computer in order to get use of it.

shell=command.com /e:8192 /p

Once you have increased the size of the environment table, try running PureLoad again.

Note: It is not recommended to use Windows 95/98 with PureLoad other in evaluation purposes.

- "Connection refused" error in Windows

PureLoad workers creates lot of client OS threads that all attempt to connect to the task space and naming servers. If you receive "Connection refused" errors this is probably due to that the backlog of connection requests limit in Windows are reached. Windows NT 4.0 Workstation and Windows 2000 Professional are limited to a backlog of 5 connection requests. Windows NT 4.0 Server and Windows 2000 Server can accept a backlog of up to 200 connections. You can change the behavior on a NT server with some registry settings. See the Microsoft documentation on how to do this (and the possible implications of doing it).
- File descriptors on Solaris
To increase number of file descriptors allowed per process (256 is default in Solaris 8). Use the ulimit or limit command in the shell you are using to start manager and tasks space server. To be able to increase number of file descriptors to more than 1024, you must modify the /etc/system file:

# set hard limit on file descriptors
set rlim_fd_max = 4096
# set soft limit on file descriptors
set rlim_fd_cur = 1024


These settings will increase the default to 1024 with a max limit of 4096.
Note: The system must be rebooted to initiate changes in /etc/system.

- File descriptors on Linux

If you are running PureLoad on a UNIX system you may begin to receive exceptions that is caused by that the file descriptor limit of your system is being exceeded. You can examine the current setting of the file descriptor limit using the limit/ulimit command. Use the following csh shell command to increase the file descriptor limit to (for example) 1024:

% limit descriptors 1024

Use the following sh or ksh shell command to increase the file descriptor limit to (for example) 1024:

% ulimit -n 1024

Other shells will have similar commands to allow you to increase the file descriptor limit. For a more permanent means to modify your operating system file descriptor limit, check your operating system documentation. (Instructions for Solaris).

Advanced

- I implement my own tasks, but I'm not able to load them into PureLoad. Why?

The most common reason for this is related to how the CLASSPATH is used in PureLoad. There are two properties that you should define in the pureload.lax file:
lax.class.path


the Java classpath necessary to run this application. This must include the path to your own tasks and other classes used by your tasks.

autoreload.class.path

the classpath including classes that should be reloaded when changed. This should include the path to your own tasks and other classes used by your tasks.

- I want to use PureLoad servers located outside of my firewall. Can I do this?

PureLoad uses RMI for internal communication between servers and the console and there is no way to restrict the ports used by RMI that we are aware of (which makes it hard to configure a firewall).

As described in the document:
http://java.sun.com/j2se/1.3/docs/guide/rmi/faq.html#firewall there are two main methods to handle cases like this: HTTP-tunneling or SOCK.

We do have a small SOCKS server written in Java that we can provide as a work-a-round. Please contact info@NRGglobal.com for more information.