resources Stanza

Placementjob -> 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
  }
}