The gAgent is a software that runs on your hosts. It analyses resource usage patterns and data flow and sends them to Granulate's backend on AWS. The agent consolidates the information and uses its AI algorithms to optimize the infrastructure to the specific application needs at any given moment.
It is recommended to install Granulate using our SaaS deployment method. However, an on-prem deployment is available on which the entire optimization process occurs on your cloud infrastructure or physical server estate.
The gAgent supports all infrastructure and architecture and optimizes multi-cloud, on-prem, or hybrid environments, and Kubernetes, containerized, or virtualized architectures.
The gAgent modules are running the main process responsible for collecting hosts metrics, usage patterns, and data flow, and making decisions at the OS-level to improve performance. The main components that handle this process are:
The kernel module, after loaded on your host, hooks onto kernel-level resource queues - CPU scheduler, Network, Memory, and I/O and begins scoring usage patterns based on a predetermined utility function. Once activated, the KModule reorders these resource queues to achieve the highest scoring patterns and improve performance based on your application-specific processing stages.
The Runtime module is loaded by the KModule, and applies similar logic of reordering of resource queues at the runtime level. It also scores usage patterns based on a predetermined utility function and achieves the best scoring patterns once activated. The Runtime module handles OS resource allocation decisions masked from the kernel by using runtime managers interfaces.
The gAgent minimizes the footprint in both memory and CPU by taking advantage of the concept of time-localization, learning using a sliding window of only a few seconds.
The gAgent code modules are optimized to efficiently limit the overhead on each machine resource consumption. The agent's code modules are optimized to use memory and to free resources when they’re no longer needed to burden application execution as little as possible.
An example of the Granulate agent resource consumptions is below, tests were made on AWS EC2 machine C5.xLarge
- CPU: ~ 1 % of CPU on average
- Memory: ~ 20MB or RAM (RSS memory)
- Network Bandwidth: ~ 2KB/s | 20 KB/s
Granulate support for the following Operating System extends for both X86 (Intel, AMD) and AArch64 (ARM) architectures
Installation is supported on compute instances from all cloud providers
- AWS - EC2 Instances
- Azure - Virtual Machines
- GCP - Compute Engine
- Alibaba - Elastic Compute Service
- IBM Cloud - Virtual Server
- Oracle Cloud - Virtual Machines
Granulate GAgent is built with internal high-performance failsafe mechanisms to prevent performance degradation. After the initial optimization, the GAgent holds a performance gain threshold of 65% improvement, below this threshold, the agent starts to automatically relearn for a 20 seconds time frame in an attempt to rise back above the gain threshold. Following 3 consecutive failures to return to the 65% threshold: an alert will be raised and the agents will deactivate automatically.