Denamik LoadGen can perform load- and stresstest on SBC and VDI environments by to simulate users. To distribute the load systems called ‘LoadBots’ are used to generate the load, resulting in an architecture with horizontal scaling capabilities.
Before a system is called a LoadBot an agent needs to be installed. The installation of the LoadBot is done from the central management console, the Director. The installation is pushed to the remote system and results in a small service running in the background. The LoadBot can be (de)activated on demand from the central management console.
In this article I’ll explain the steps involved when installing (or activating) the LoadBot software on a remote machine. There are some common issues (like name resolution, firewall configuration, etc.) that I’ll explain as well.
LoadBot installation process
The installation of the LoadBot software on the system is done in 7 steps. Knowing which steps are executed might help you solve the problems you’re facing.
Step | Name | Description |
1 | Create network connection | The Denamik LoadGen connects to the LoadBot |
2 | Status remote registry | Determines is the remote registry service is started. If not it will start the service |
3 | Retrieving remote Program Files location | The location of %ProgramFiles% (32 bit) is queried in the registry |
4 | Deactivate LoadBot | Possible running processes are stopped. Files are copied (updated) to %ProgramFiles%\Denamik\Denamik LoadBot |
5 | Denamik Execution Process installation | A NT service ‘Denamik Execution Process Service’ is installed with the LocalSystem account. |
6 | Retrieve LoadBot specifications | The specification of the loadbot, like physical memory, is retrieved. This information is used to determine the number of slots the LoadBot can handle. (Can be overrided with OverrideSlotCount) |
7 | Delete network connection | The network connection is delete |
LoadBot activation process
The activation of the LoadBot software on the system is done in 7 steps. Knowing which steps are executed might help you solve the problems you’re facing.
Step | Name | Description |
1 | Create connection with the LoadBot Execution Service | Connection with port: 8000 |
2 | Sending Run As Profile | Run As Profile is sent encrypted |
3 | Retrieves Run As Profile | LoadBot Execution Service retrieves the Run As Profile |
4 | Stop running DNKLoadBot processes | LoadBot Execution Service stops running DNKLoadBot processes |
5 | Console session active? | LoadBot Execution Service checks whether someone has been logged on to the desktop -> if not process activation will fail! Will be changed in 2.4 / 3.0 -> user console will be automatically logged on and console will be locked immediately |
6 | OS check | LoadBot Execution Service checks on OS (to elevate LoadBot application) |
7 | Start LoadBot application | LoadBot Execution Service starts LoadBot application in the context of the Run As User |
Common issues
1. Name resolution
The registration of the system running the LoadBot is done by name, not on IP. Therefore it is necessary to have a working name resolution to the system. I would like to advice you to use a fully qualified domain name (FQDN) since this gives the best change of resolving the hostname to an IP
The message found in the logfile is
2012-06-20 02:26:57.640 - Module: CreateNetworkConnection - Action: An error occurred in the 'Create network connection' process: The following error occured while trying to connect to the remote machine (LoadBotVM02): The network path was not found. 2012-06-20 02:26:57.749 - Module: InstallServiceWrapper - Action: Step 1/7: 'Create network connection' process failed 2012-06-20 02:26:57.765 - Module: btnLoadBotInstallSft_Click - Action: LoadBot installation process failed
You can test the name resolution in a command prompt with the nslookup command. If the result of the command nslookup <FQDN> is ‘non-existent domain’ or doesn’t match the IP address of the system, first solve this.
2. File and printer sharing
The first step when installing the LoadBot software on a remote system ‘Create network connection’. During this process a network connection is made to an administrative share on the remote machine so the required files can be copied.
If ‘file and printer sharing is turned off (default in Windows 7) the installation will fail and the following message is found in the log file:
2012-06-20 02:31:42.830 - Module: CreateNetworkConnection - Action: An error occurred in the 'Create network connection' process: The following error occured while trying to connect to the remote machine (LoadBotVM01): The network path was not found. 2012-06-20 02:31:42.955 - Module: InstallServiceWrapper - Action: Step 1/7: 'Create network connection' process failed 2012-06-20 02:31:42.971 - Module: btnLoadBotInstallSft_Click - Action: LoadBot installation process failed
Turning on file and printer sharing in Windows 7 is done quite easily via Network and Internet > Network and Sharing Center > Change advanced sharing settings. A firewall rule is added automatically to allow file and printer sharing.
3. Local administrative accounts
When the LoadBot software is installed by the central management software of the Denamik LoadGen (the Director) an administrative share (IPC$) is used. The software authenticates itself with a ‘Run as profile’, an administrative account that can be bound per system. This can either be an domain or an local account.
If a local account (for instance the local administrator) the administrative accounts might be filtered out, resulting in the following message in the log file.
2012-06-20 02:34:03.484 - Module: PrepRemoteRegistryService - Action: Starting the 'Status remote registry service' process 2012-06-20 02:34:24.575 - Module: PrepRemoteRegistryService - Action: An error occurred in the 'Status remote registry service' process: ServiceExist reported the following error: Cannot open RemoteRegistry service on computer 'LoadBotVM01'. 2012-06-20 02:34:24.700 - Module: InstallServiceWrapper - Action: Step 2/7: 'Status remote registry service' process failed 2012-06-20 02:34:24.716 - Module: btnLoadBotInstallSft_Click - Action: LoadBot installation process failed
This is caused by a security mechanism found in Windows since XP (although it has changes in Vista and up). In this article you can read how you can enable administrative shares for local accounts.
4. Firewall configuration
The central management console of the Denamik LoadGen (the Director) communicates with the remote system via the network. If a firewall is present on the remote system the requests can be blocked preventing the software from installing / activating.
4a. File and printer sharing
During the first step of the installation an administrative share is opened requiring access to file and printer sharing. In Windows 7 this is enabled by default when file and printer sharing is turned on, in Windows XP you need to enabled it.
If a firewall blocks access to the administrative shares the following message can be found in the log file:
2012-06-20 03:07:03.940 - Module: InstallServiceWrapper - Action: Step 2/7: 'Status remote registry service' process 2012-06-20 03:07:03.956 - Module: PrepRemoteRegistryService - Action: Starting the 'Status remote registry service' process 2012-06-20 03:07:37.131 - Module: PrepRemoteRegistryService - Action: An error occurred in the 'Status remote registry service' process: ServiceExist reported the following error: Cannot open Service Control Manager on computer 'LOADBOT16'. This operation might require other privileges. 2012-06-20 03:07:37.256 - Module: InstallServiceWrapper - Action: Step 2/7: 'Status remote registry service' process failed
File and printer sharing needs to be enabled in the Windows Firewall.
4b. Denamik processes
During the installation of the LoadBot software rules are added automatically to the firewall allowing Denamik processes to be access from the network. The central management software of Denamik LoadGen (the Director) tries to connect to the LoadBot on port 8000.
If this is blocked by a firewall the following message can be found in the log file:
2012-06-20 02:45:04.147 - Module: ActivateLoadBotProcess - Action: We will create a connection to the LoadBot machine 2012-06-20 02:45:46.204 - Module: ActivateLoadBotProcess - Action: An error occurred in the 'Activate LoadBot' process: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 172.17.2.118:8000 2012-06-20 02:45:46.220 - Module: ActivateLoadBotProcess - Action: Please check if the LoadBot files are installed!
The processes DNKexec and DNKLoadBot needs to be accessible from the network.
5. Remote registry
In second step of the installation of the LoadBot software on the remote system the state of the remote registry service is checked and started if required (The remote registry is required to query the location of the Program Files folder).
If the remote registry service is set to Disabled or if the service cannot be started the following message can be found in the log file
2012-06-20 02:39:28.027 - Module: InstallServiceWrapper - Action: Step 2/7: 'Status remote registry service' process 2012-06-20 02:39:28.043 - Module: PrepRemoteRegistryService - Action: Starting the 'Status remote registry service' process 2012-06-20 02:39:28.058 - Module: PrepRemoteRegistryService - Action: Service 'Remote Registry' exist 2012-06-20 02:39:28.074 - Module: PrepRemoteRegistryService - Action: What is the status of the 'Remote Registry' service? 2012-06-20 02:39:28.074 - Module: PrepRemoteRegistryService - Action: Service 'Remote Registry' could not be started: StartService reported the following error: Cannot start service RemoteRegistry on computer 'LoadBotVM01'. 2012-06-20 02:39:28.199 - Module: InstallServiceWrapper - Action: Step 2/7: 'Status remote registry service' process failed
Make sure the startup type is not set to ‘Disabled and that the service can be started.
6. Denamik Execution Process Service (DNKexec)
During installation of the LoadBot software on the remote system an NT service called ‘Denamik Execution Process Service’ (or DNKexec in short) is added. If this service is stopped the software cannot be accessed from the central management software (the Director).
The following message can be found in the log file
2012-06-20 02:57:07.350 - Module: ActivateLoadBotProcess - Action: We will create a connection to the LoadBot machine 2012-06-20 02:57:49.393 - Module: ActivateLoadBotProcess - Action: An error occurred in the 'Activate LoadBot' process: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 172.17.2.118:8000 2012-06-20 02:57:49.408 - Module: ActivateLoadBotProcess - Action: Please check if the LoadBot files are installed!
Make sure the startup type is ‘Automatic’ and that the service is started.
7. Active console session
During the fifth step of the activation process the LoadBot Execution Services verifies if there is an active console session. If no console session is found an error if thrown.
Denamik LoadGen 2.3 (and above) require an active console session on the LoadBot. A remote session (like RDP) is not enough.
The following message can be found in the log file
2012-08-31 07:48:03.187 - Module: ActivateLoadBotWrapper - Action: Step 1/1: 'Activate LoadBot' process 2012-08-31 07:48:03.624 - Module: ActivateLoadBotProcess - Action: Starting the 'Activate LoadBot' process 2012-08-31 07:48:03.671 - Module: ActivateLoadBotProcess - Action: We will create a connection to the LoadBot machine 2012-08-31 07:48:03.671 - Module: ActivateLoadBotProcess - Action: The connection with the LoadBot has been created 2012-08-31 07:48:03.796 - Module: ActivateLoadBotProcess - Action: Denamik Execution Process Service failed to start the LoadBot process: No session has been logged on to the desktop, please logon on to the desktop first! 2012-08-31 07:48:03.905 - Module: ActivateLoadBotWrapper - Action: Step 1/1: 'Activate LoadBot' process failed
Make sure an active console session exists, a user must be logged on.
.