Bird
Raised Fist0
GCPcloud~5 mins

Machine types and families (E2, N2, C2) in GCP - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Machine types and families (E2, N2, C2)
O(n)
Understanding Time Complexity

When choosing machine types in GCP, it's important to understand how the time to provision and manage these machines changes as you increase the number of instances.

We want to know how the work grows when we add more machines from different families like E2, N2, or C2.

Scenario Under Consideration

Analyze the time complexity of creating multiple VM instances using different machine families.

for i in range(n):
    compute.instances().insert(
        project=project_id,
        zone=zone,
        body={
            "name": f"instance-{i}",
            "machineType": f"zones/{zone}/machineTypes/e2-standard-4"
        }
    ).execute()

This sequence creates n VM instances of the E2 machine family one after another.

Identify Repeating Operations

Identify the API calls, resource provisioning, data transfers that repeat.

  • Primary operation: The API call to create a VM instance (compute.instances().insert()).
  • How many times: This call happens once for each instance, so n times.
How Execution Grows With Input

Each new instance requires a separate API call and provisioning process, so the total work grows directly with the number of instances.

Input Size (n)Approx. API Calls/Operations
1010 API calls to create 10 instances
100100 API calls to create 100 instances
10001000 API calls to create 1000 instances

Pattern observation: The number of operations grows linearly as you add more instances.

Final Time Complexity

Time Complexity: O(n)

This means the time to create instances grows directly in proportion to how many you want to create.

Common Mistake

[X] Wrong: "Creating more instances from faster machine families like C2 will reduce the total provisioning time regardless of how many instances I create."

[OK] Correct: The machine family affects the performance of the instance, but the number of API calls and provisioning steps still grows with the number of instances, so total time still increases linearly.

Interview Connect

Understanding how provisioning time scales with the number of machines helps you design efficient cloud deployments and shows you can think about resource management clearly.

Self-Check

"What if we used a bulk API to create multiple instances at once? How would the time complexity change?"

Practice

(1/5)
1. Which Google Cloud machine family is best suited for cost-effective general use workloads?
easy
A. E2 family
B. N2 family
C. C2 family
D. M1 family

Solution

  1. Step 1: Understand the purpose of each machine family

    The E2 family is designed for cost-effective general use, N2 balances power and memory, and C2 is optimized for CPU-heavy tasks.
  2. Step 2: Match the workload type to the machine family

    Since the question asks for cost-effective general use, E2 is the best fit.
  3. Final Answer:

    E2 family -> Option A
  4. Quick Check:

    Cost-effective general use = E2 [OK]
Hint: E2 means economical general use machines [OK]
Common Mistakes:
  • Confusing C2 as cost-effective instead of CPU-optimized
  • Choosing N2 for cost savings instead of balance
  • Selecting a non-existent machine family like M1
2. Which of the following is the correct way to specify a C2 machine type in a Google Cloud VM instance configuration?
easy
A. machineType: 'zones/us-central1-a/machineTypes/m1-standard-4'
B. machineType: 'zones/us-central1-a/machineTypes/e2-standard-4'
C. machineType: 'zones/us-central1-a/machineTypes/n2-standard-4'
D. machineType: 'zones/us-central1-a/machineTypes/c2-standard-4'

Solution

  1. Step 1: Identify the correct machine family prefix for C2

    C2 machine types start with 'c2-', so the machine type string must include 'c2-standard-4'.
  2. Step 2: Verify the full machineType format

    The format is 'zones/{zone}/machineTypes/{machineType}', so 'zones/us-central1-a/machineTypes/c2-standard-4' is correct.
  3. Final Answer:

    machineType: 'zones/us-central1-a/machineTypes/c2-standard-4' -> Option D
  4. Quick Check:

    C2 machine type string includes 'c2-' prefix [OK]
Hint: C2 machine types start with 'c2-' in the path [OK]
Common Mistakes:
  • Using 'e2-' or 'n2-' prefix for C2 machines
  • Incorrect zone or path format
  • Using a non-existent machine family like 'm1-'
3. You launch a VM with machine type n2-standard-8. Which statement best describes this VM's characteristics?
medium
A. It is optimized for CPU-heavy workloads with 8 vCPUs.
B. It balances CPU and memory with 8 vCPUs and moderate RAM.
C. It is a cost-effective VM with limited CPU power.
D. It is a high-memory VM with 8 vCPUs and extra RAM.

Solution

  1. Step 1: Understand the N2 machine family purpose

    N2 machines balance CPU power and memory, suitable for general workloads needing moderate resources.
  2. Step 2: Analyze the machine type suffix

    'standard-8' means 8 virtual CPUs with balanced memory, not specialized for CPU-only or high-memory.
  3. Final Answer:

    It balances CPU and memory with 8 vCPUs and moderate RAM. -> Option B
  4. Quick Check:

    N2 = balanced CPU and memory [OK]
Hint: N2 means balanced CPU and memory machines [OK]
Common Mistakes:
  • Confusing N2 with C2 which is CPU-optimized
  • Thinking N2 is cost-effective like E2
  • Assuming N2 is high-memory only
4. A user tries to create a VM with machine type c2-standard-16 but gets an error. Which is the most likely cause?
medium
A. The zone does not support C2 machine types with 16 vCPUs.
B. The machine type name is misspelled; it should be c2-standrd-16.
C. C2 machines cannot have more than 8 vCPUs.
D. The user must specify the machine type without the zone prefix.

Solution

  1. Step 1: Check machine type naming and limits

    'c2-standard-16' is a valid machine type with 16 vCPUs; spelling is correct and allowed size.
  2. Step 2: Consider zone availability

    Some zones do not support all machine types or sizes, so the error likely comes from zone limitations.
  3. Final Answer:

    The zone does not support C2 machine types with 16 vCPUs. -> Option A
  4. Quick Check:

    Zone support limits cause machine type errors [OK]
Hint: Check zone supports machine type size before creating VM [OK]
Common Mistakes:
  • Assuming spelling error when name is correct
  • Believing C2 max vCPUs is 8 (it's higher)
  • Ignoring zone prefix requirement in machineType
5. You need to run a CPU-intensive data processing job that requires maximum CPU power but moderate memory. Which machine type should you choose to optimize performance and cost?
hard
A. e2-standard-16
B. n2-highmem-16
C. c2-standard-16
D. e2-highcpu-16

Solution

  1. Step 1: Identify workload requirements

    The job is CPU-intensive needing maximum CPU power with moderate memory.
  2. Step 2: Match machine family to workload

    C2 family is optimized for CPU-heavy workloads, while E2 is cost-effective general use and N2-highmem is for memory-heavy tasks.
  3. Step 3: Choose the best machine type

    Among options, 'c2-standard-16' provides high CPU power with balanced memory, fitting the requirement best.
  4. Final Answer:

    c2-standard-16 -> Option C
  5. Quick Check:

    CPU-heavy job = C2 machines [OK]
Hint: Use C2 for CPU-heavy jobs, not E2 or N2-highmem [OK]
Common Mistakes:
  • Choosing E2 for CPU-heavy instead of cost-effective use
  • Picking N2-highmem which wastes cost on extra memory
  • Selecting E2-highcpu which is less powerful than C2