» resources Stanza

Placement job -> group -> task -> resources

The resources stanza describes the requirements a task needs to execute. Resource requirements include memory, network, CPU, and more.

job "docs" {
  group "example" {
    task "server" {
      resources {
        cpu    = 100
        memory = 256

        network {
          mbits = 100
          port "http" {}
          port "ssh" {
            static = 22
          }
        }

        device "nvidia/gpu" {
          count = 2
        }
      }
    }
  }
}

» resources Parameters

  • cpu (int: 100) - Specifies the CPU required to run this task in MHz.

  • memory (int: 300) - Specifies the memory required in MB

  • network (Network: <optional>) - Specifies the network requirements, including static and dynamic port allocations.

  • device (Device: <optional>) - Specifies the device requirements. This may be repeated to request multiple device types.

» resources Examples

The following examples only show the resources stanzas. Remember that the resources stanza is only valid in the placements listed above.

» Memory

This example specifies the task requires 2 GB of RAM to operate. 2 GB is the equivalent of 2000 MB:

resources {
  memory = 2000
}

» Network

This example shows network constraints as specified in the network stanza which require 1 Gbit of bandwidth, dynamically allocates two ports, and statically allocates one port:

resources {
  network {
    mbits = 1000
    port "http" {}
    port "https" {}
    port "lb" {
      static = "8889"
    }
  }
}

» Devices

This example shows a device constraints as specified in the device stanza which require two nvidia GPUs to be made available:

resources {
  device "nvidia/gpu" {
    count = 2
  }
}