A resource forecasting computer system for forecasting network resource needs for an enterprise computer system, wherein the enterprise computer system comprises a plurality of network servers that host computer resources for users of the enterprise computer system, the resource forecasting computer system comprising:
- a computer database system that is in communication with the plurality of network servers for storing a multivariate time-series (MTS) of performance data for plurality of network servers, wherein the performance data comprise data for a plurality of d performance variables for the plurality of network servers for a series of m prior sampling times, such that there are m-histories of the MTS;
- a programmed computer system that is in communication with the computer database system, wherein the programmed computer system comprises a processor and memory, wherein the memory stores software, that when executed by the processor, cause the processor to predict future workloads of the network servers of the enterprise computer system by performing steps that comprise:
- grouping each of the performance variables of the MTS into two or more performance variable groups, such that each of the performance variables of the MTS belongs to a variable group, such that the processor of the programmed computer system groups the performance variable by performing steps that comprise:
- computing a correlation matrix indicating a strength of correlation between each pair of performance variables;
- and
- determining the variable groups based on the strength of correlation using a clustering algorithm;
- computing predictions for the variables at one or more future time horizon steps that indicate workloads for the network servers, wherein the predictions are computed by steps that comprise:
- finding the k nearest neighbors to a reference state of the MTS using a k-nearest neighbor searching algorithm applied to the two or more performance variable groups, wherein finding the k nearest neighbors comprises:
- computing distances between a target feature matrix representing a reference state of the MTS and target feature matrices for each of the m-histories, respectively;
- and
- determining the k target feature matrices for prior sampling times that have the smallest distance to the target feature matrix representing the reference state of the MTS, wherein each of the k target feature matrices comprises d vectors of m sampling time observations;
- and
- computing a weighted average of subsequent values of the MTS at a horizon time step h of the k nearest neighbors such that the weighted average yields a cumulative user resource requests for the enterprise computer system at the horizon time step h;
- and
- determining a number of network servers needed by the enterprise to be in operational modes to handle resource requests by the users of the enterprise computer system at each of the one or more future time horizon steps based on the computed cumulative user resource requests;
- and
- at least one broker computer system in communication with the programmed computer system and the plurality of network servers, wherein the at least one broker computer system is for:
- receiving from the programmed computer system data indicative of a recommended number of network servers needed by the enterprise to be in operational modes to handle resource requests by the users of the enterprise computer system for at least one of the future time horizon steps;
- and
- instructing the network servers such that the recommended number of network servers is in operational modes to handle the resource requests by the users for the at least one future time horizon step.