Burstable Instances for Jobs

Burstable Instances let you deploy your workloads on a virtual machine that constantly provides a baseline level of CPU performance with the ability to burst to higher levels in case of occasional spikes in usage.

Traditional VM instances provide fixed CPU resources, while limited burstable instances provide a baseline level of CPU utilization with the ability to burst CPU utilization above the baseline level up to 100% of CPU cores provisioned. This ensures that you pay only for baseline CPU. The baseline utilization and ability to burst are governed by various factors such as burst pattern. The burst is limited to a maximum of one hour continuous burst to ensure that resources are managed fairly. Because burstable instances are oversubscribed compute resources, there's no guarantee that an instance can burst exactly when needed. Quota usage and metering are always based on the baseline core count, regardless of how often the VM bursts.


Graph showing CPU baseline compared to CPU usage over time. With Baseline Zone and Burstable Zone indicated.

Billing

Burstable instances are billed according to the baseline OCPU selected when creating or updating a model deployment, notebook, ML job, or ML pipeline. The charge for a burstable instance is the same regardless of whether the actual CPU utilization is at the baseline, less than the baseline, or bursts more than the baseline.

For example, if you create a deployment with VM.Standard.E4.Flex instance using 1 OCPU and a 50% baseline, you're charged for 50% of a Standard E4 OCPU each hour, regardless of whether the actual CPU utilization is under 50% of an OCPU or bursts to the full OCPU.

For more information, see the Burstable Instances documentation.

Supported Shapes

The specific shapes supported for burstable instances are:

  • VM.Standard3.Flex
  • VM.Standard.E3.Flex
  • VM.Standard.E4.Flex
  • VM.Standard.E5.Flex

For more information on the supported shapes, see the Compute documentation.

Current Limitations

These are the limitations of burstable VMs.

  • The burst is limited to a maximum one hour continuous burst
  • Memory doesn't burst.
  • If the underlying host is oversubscribed, it's not guaranteed that an instance can burst exactly when needed.

Creating a Job with a Burstable Instance

Follow these steps to create a job with a burstable instance.

    1. From the jobs list page, select Create job. If you need help finding the list of jobs, see Listing Jobs.
    2. Follow the steps in Creating a Job to configure the job.
    3. Under Select compute, select Change shape.
    4. Toggle Burstable.
    5. (Optional) In Burstable utilization per OCPU, select the baseline OCPU utilization percentage.
      This value is the percentage of OCPU you expect to use most often.
      Note

      Only the values of 12.5% and 50% are supported.
    6. Select Select Shape.
    7. Select Create.

      After the job is in an active state, you can use job runs to repeatedly run the job.

  • These environment variables control the job.

    Use the Data Science CLI to create a job as in this example:

    1. Create a job with:
      oci data-science job create \
      --display-name <job_name>\
      --compartment-id <compartment_ocid>\
      --project-id <project_ocid> \
      --configuration-details file://<jobs_configuration_json_file> \
      --infrastructure-configuration-details file://<jobs_infrastructure_configuration_json_file> \
      --log-configuration-details file://<optional_jobs_infrastructure_configuration_json_file>
    2. Use this jobs configuration JSON file:
      {
        "jobType": "DEFAULT",
        "maximumRuntimeInMinutes": 240,
        "commandLineArguments" : "test-arg",
        "environmentVariables": {
          "SOME_ENV_KEY": "some_env_value" 
        }
      }
    3. Use this jobs infrastructure configuration JSON file:
      {
        "jobInfrastructureType": "STANDALONE",
         "jobShapeConfigDetails": {
           "memoryInGBs": 16,
           "ocpus": 1,
           "cpuBaseline": "BASELINE_1_2"
         },
        "shapeName": "VM.Standard.E4.Flex",
        "blockStorageSizeInGBs": "50",
        "subnetId": "<subnet_ocid>"
      }
    4. (Optional) Use this jobs logging configuration JSON file:
      {
        "enableLogging": true,
        "enableAutoLogCreation": true,
        "logGroupId": "<log_group_ocid>"
      }
    5. Upload a job artifact file for the job you created with:
      oci data-science job create-job-artifact \
      --job-id <job_ocid> \
      --job-artifact-file <job_artifact_file_path> \
      --content-disposition "attachment; filename=<job_artifact_file_name>"
    6. To start the job run, use the command: /iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/data-science/job-run/create.html.
  • Run the CreateJob operation to create a job and CreateJobRun to start a job.