Granulate’s gAgent is the foundation of our real-time continuous optimization solution. The agent automatically learns the application’s specific resource usage patterns and data flow to identify contended resources, bottlenecks, and optimization opportunities on each server.
Granulate’s agent automatically learns your application’s specific resource usage patterns and data flow and then tailors OS-level scheduling and prioritization decisions regarding CPU, locks, caches, and memory accesses to improve an infrastructure’s application-specific performance.
The gAgent is comprised of 2 modules:
Kernel module: This module hooks onto the main contended resource at the kernel level - CPU scheduler, I/O scheduler, network, and memory accesses and is able to reorder resource queues to align decision making to your application's processing stages and data flow.
Runtime Module - This module is loaded by the kernel module and applies similar optimization logic to the runtime environment. It deals with resources masked from the kernel by runtime managers such as garbage collection and types of thread-scheduling methods.
The agent can be installed as a Docker container, package, Kubernetes Pod, simple CLI command on your machine, or in any way required to fit your environment. Installation is also supported by any provisioning tool or automation methods you might be using.