Performance Tuning

Monitor is designed to be a highly efficient and scalable application. However, in larger enterprises, certain factors may affect the performance of the system as a whole.

Some of these factors include:
  • The number of daemons being monitored
  • The number of checkouts occurring across the various daemons
  • Network latency
  • Database size

See below for suggestions for improving the performance of the various components of Monitor.

Server

The vovserver holds the current status of all checkouts, acts as HTTP server and coordinates the execution of the parser jobs. There is no static definition of what the server requirements are. Each checkout consumes approximately 200 bytes of memory. The server requirements can roughly be calculated by estimating the number of possible concurrent checkouts that will be observed across all license servers being monitored and multiplying that number by 200 bytes. For the processor, due to the parallel execution of the various tasks that make up Monitor's functionality, it is highly recommended to utilize a multi-core machine.

Parser Taskers

Parser taskers are responsible for running the periodic sampling jobs that collect license utilization metrics to be displayed by the server. If samples are taking a long time to finish or the time between updates is too long, there are two courses of action to consider taking. By default, there is one parser tasker that is used for sampling license servers for usage data, each with four parallel job execution slots. If the load on the machine is not too high, additional slots can be configured by adjusting the tasker's capacity setting in the licmon.swd/taskers.tcl file. If the load is already too high, another parser can be started on a remote machine so the workload can be distributed. To add other parser taskers, edit the licmon.swd/taskers.tcl file and add a code segment similar to the following:

# Add a parser called "parser2" on machine "jupiter"
# to distribute the load for lmstat jobs.
# This fragment goes into the licmon.swd/taskers.tcl.
vtk_tasker_define jupiter -name parser2 -executable vovtasker -rshcmd ssh  -resources "lmparser" -maxload 10.0 
-capacity 4 -disablejobstats 1
After configuring an additional worker tasker, start the tasker via:
% vovproject enable licmon
% vovtaskermgr start

Starting taskers in this manner requires the ability to connect to the tasker via rsh or ssh (with password prompting disabled). For Windows, refer to the instructions for setting up vovtsd as described in Network Monitoring, then specify "vovtsd" as the -rshcmd setting, and also pass -vovtsdport 16666 to establish the port setting that will be used for communications.

There are also two additional taskers, one for debug log parsing jobs and one for batch reporting jobs. Additional taskers of these types can also be added if needed. Each job type is directed to an eligible tasker via its resource definition. Sampling jobs run on any tasker that offers the lmparser resource, as shown above in the vtk_tasker_define configuration procedure. Debug log parsing jobs require the lmlogparser resource and batch reporting jobs require lmbatchreporter resource. Both of these tasker types require direct access to the licmon.swd directory.