• HashiCorp Developer

  • HashiCorp Cloud Platform
  • Terraform
  • Packer
  • Consul
  • Vault
  • Boundary
  • Nomad
  • Waypoint
  • Vagrant
Nomad
  • Install
  • Intro
  • Tutorials
  • Documentation
  • API
  • Tools
  • Plugins
  • Sign up
Nomad Home

Tools

Skip to main content
  • Tools
    • Overview
    • API
    • CLI
    • Policy
    • Telemetry

  • Resources

  • Tutorial Library
  • Community Forum
    (opens in new tab)
  • Support
    (opens in new tab)
  • GitHub
    (opens in new tab)
  1. Developer
  2. Nomad
  3. Tools
  4. Autoscaling

ยปNomad Autoscaler Overview

This section details the Nomad Autoscaler, a horizontal application and cluster autoscaler for Nomad. The Nomad Autoscaler is built and released separately to Nomad. It runs as a daemon process, often referred to as the Autoscaler Agent. An Autoscaler Agent is a separate and distinct process from a Nomad Agent. The source code can be viewed on GitHub and releases are available on the HashiCorp releases page or via Docker Hub.

The Nomad Autoscaler repository includes a number of demos which provide guided learning on running the Nomad AutoScaler. Since Autoscaler Agent runs as its own daemon, it requires its own configuration. Configuration can be passed as command line flags or parsed from a configuration file. The demos repository includes an example config file that is useful to reference when configuring your Autoscaler Agent.

Horizontal Application Autoscaling

Horizontal application autoscaling is the process of automatically controlling the number of instances of an application to have sufficient work throughput to meet service-level agreements (SLA). In Nomad, horizontal application autoscaling can be achieved by modifying the number of allocations in a task group based on the value of a relevant metric, such as CPU and memory utilization or number of open connections. This is enabled by configuring autoscaling policies on individual Nomad jobs using the scaling block.

Horizontal Cluster Autoscaling

Horizontal cluster autoscaling is the process of adding or removing Nomad clients from a cluster to ensure there is an appropriate amount of cluster resource for the scheduled applications. This is achieved by interacting with remote providers to start or terminate new Nomad clients based on metrics such as the remaining free schedulable CPU or memory. Cluster scaling is enabled by configuring the autoscaler agent with policies targeting the Nomad cluster.

Dynamic Application Sizing

Enterprise

This functionality only exists in Nomad Autoscaler Enterprise. This is not present in the open source version of Nomad Autoscaler.

Dynamic Application Sizing enables organizations to optimize the resource consumption of applications using sizing recommendations from Nomad. It evaluates, processes and stores historical task resource usage data, making recommendations for CPU and Memory resource parameters. The recommendations can be calculated using a number of different algorithms to ensure the recommendation best fits the application profile.

Dynamic Application Sizing can be enabled on an individual task by configuring autoscaling policies within the task block using the job specification scaling block.

Edit this page on GitHub

On this page

  1. Nomad Autoscaler Overview
  2. Horizontal Application Autoscaling
  3. Horizontal Cluster Autoscaling
  4. Dynamic Application Sizing
Give Feedback(opens in new tab)
  • Certifications
  • System Status
  • Terms of Use
  • Security
  • Privacy
  • Trademark Policy
  • Trade Controls
  • Give Feedback(opens in new tab)