Latest posts by Alhad Joshi (see all)
Going beyond software license monitoring…
Altair SAO, our software license analytics solution, includes algorithms to analyze denials, categorize them, and ultimately identify “real” or “true” denials related to license count capacity. Denials represent a penalty for not having adequate licenses, principally for user-interactive software, which represents the majority of software usage. Software executed on HPC systems rarely generates denials because job schedulers queue jobs when licenses are not available. Consequently, the penalty for inadequate licenses for batch jobs is “waiting time,” or time spent in the queue when licenses are not available (in addition to waiting for other resources).
Magnitude of the problem
To cite one example, I had inspected a data set with 2.4M software usage records, of which 1.8M were denials. Clearly this would be viewed with alarm. Such “raw” denial counts that include all denials create an impression that many more licenses might be required, which in reality might not be the case. After applying various filters, the resulting denials count associated with license availability was found to be only 50K! If methods for identifying true denials were not available, admins could easily be misguided.
Most license managers issue a denial reason along with the denial. Denial reason text output is not standardized and is left to the software supplier. We classify denials in the following generic categories in order to process and interpret them correctly for the purpose of identifying denials related to capacity:
- OPTfile_EXCLUDE or not in INCLUDE
- OPTfile wrong configuration
- OPTfile invalid host
- User, host, or platform not authorized
- Too many runs per user/host
- Borrow exception
- Version not available/supported
- Feature/product not supported or expired
- Queued request
- Client-server clock difference
- Client time zone not authorized
License managers issue denials under multiple conditions. Some are caused by lack of available licenses, and others are related to access permissions granted to users or some of the other categories described above. Getting a true sense of denials related to available capacity is critical for making prudent licensing decisions, particularly for user-interactive software.
As a first step, it is prudent to eliminate denials resulting from license access privileges denied to users through an option file. Denials are issued if a user attempting to check out a license is not in the “include” group or is in the “exclude” group defined in an option file.
I will describe three different scenarios that call for different methods to compute true denials.
- Impatient users: Most solutions are able to filter out false denials for only one scenario — repeated attempts by a user to check out a license within a certain time period. All denials within a threshold time period are collapsed into 1 denial if there is no successful checkout or collapsed to 0 denials if there is a successful checkout.
The following diagram outlines the approach for filtering out denials encountered by impatient users who make repeated attempts to check out a software license.
- Feature and vendor hopping: If an application is configured to check out licenses from multiple vendor daemons in a given order, and/or there are multiple assets for the same feature in the license file with different license counts, checkout attempts leave a large number of denials in their wake. These need to be identified and filtered out.
- Cascading denials: Some software vendors provide software with varying functionality, going from the least expensive with basic features to most expensive with a full feature set. When a user requests a basic software package and no licenses are available, the license manager looks for the next level of software in the sequence, generating denials as it goes through this search. Analysis of these denial chains is needed while attempting to right-size license counts for less expensive and more expensive software. A typical question asked by admins is, “How many times was a user forced to use more expensive software when a cheaper option was requested?”
Cascading features relationships are not usually available from a license file. These relationships have to be configured so the solution knows which different features checkouts could be related.
These denial chains encountered in (2) and (3) generally happen in rapid succession, typically within a few seconds.
These effective denials computations are tricky and expensive. Estimating true denials that are caused by lack of available licenses is critical for making right-sizing decisions and is also required for SAO’s predictive analytics solution to work correctly.