Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions docs/user/azure/limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,21 @@ allows for many clusters to be created. The network security groups which exist

By default, an x86 cluster will create:

* One Standard_D4s_v3 bootstrap machine (removed after install)
* Three Standard_D8s_v3 master nodes.
* Three Standard_D2s_v3 worker nodes.
* One Standard_D4s_v5 bootstrap machine (removed after install)
* Three Standard_D8s_v5 master nodes.
* Three Standard_D2s_v5 worker nodes.

The specs for the VM sizes (Dsv3-series) are as follows:
The specs for the VM sizes (Dsv5-series) are as follows:

* Standard_D8s_v3
* Standard_D8s_v5
* 8 vCPU's, 32GiB ram
* IOPs / Throughput (Mbps): (cached) 16000 / 128
* IOPs / Throughput (Mbps): (uncached) 12800 / 192
* NICs / Bandwidth (Mbps): 4 / 4000
* 64 GiB temp storage (SSD)
* 16 data disks max

* Standard_D4s_v3
* Standard_D4s_v5
* 4 vCPU's, 16GiB ram
* IOPs / Throughput (Mbps): (cached) 8000 / 512
* IOPs / Throughput (Mbps): (uncached) 6400 / 1152
Expand All @@ -67,7 +67,7 @@ The specs for the VM sizes (Dsv3-series) are as follows:
* 32 GiB temp storage (SSD)
* 8 data disks max

* Standard_D2s_v3
* Standard_D2s_v5
* 2 vCPU's, 8GiB ram
* IOPs / Throughput (Mbps): (cached) 4000 / 256
* IOPs / Throughput (Mbps): (uncached) 3200 / 384
Expand Down
8 changes: 4 additions & 4 deletions pkg/types/azure/defaults/machines.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ import (

// ControlPlaneInstanceType sets the defaults for control plane instances.
// Minimum requirements are 4 CPU's, 16GiB of ram, and 120GiB storage.
// D8s_v3 gives us 8 CPU's, 32GiB ram and 64GiB of temporary storage
// D8s_v5 gives us 8 CPU's, 32GiB ram and 64GiB of temporary storage
// This extra bump is done to prevent etcd from overloading
// DS4_v2 gives us 8 CPUs, 28GiB ram, and 56GiB of temporary storage.
func ControlPlaneInstanceType(cloud azure.CloudEnvironment, region string, arch types.Architecture) string {
instanceClass := getInstanceClass(region)
size := "D8s_v3"
size := "D8s_v5"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In conversation, we said our CI quota was for Dasv5 machines, but this is Dsv5, so it should be:

Suggested change
size := "D8s_v5"
size := "D8as_v5"

and similarly D4s_v5 -> D4as_v5

The difference is Dsv5 is Intel CPUs, and Dasv5 is AMD. Dasv5 is generally preferred unless you require intel for some reason (in which case users should specify).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dasv5 is generally preferred unless you require intel for some reason (in which case users should specify).

@patrickdillon You mean in general or based on our CI specific quota config?

I dug into this more and have found that if we use v6 instances we should achieve basically the same I/O performance on 4 vCPU instances as we do 8 vCPU v3 which would bring Azure inline with the defaults on GCP and AWS. We were oversizing control plane defaults to achieve I/O performance not for CPU / Memory reasons AFAIK.

openshift/release#75999 includes full details, we may or may not have to request quota changes given we'll be splitting workers and control plane across quota classes and we'll be cutting control plane in half.

This probably warrants catching up synchronously.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sdodson Oh yes, to clarify I was only thinking about AMD vs Intel; and my point was that AMD seemed to be what we have available in CI (but this PR is using Intel) AND that AMD is generally preferred because it provides better price to performance.

If Dasv6 series is available in enough supply, as openshift/release#75999 reports I agree this is a great choice.

if arch == types.ArchitectureARM64 {
size = "D8ps_v5"
}
Expand All @@ -26,11 +26,11 @@ func ControlPlaneInstanceType(cloud azure.CloudEnvironment, region string, arch

// ComputeInstanceType sets the defaults for compute instances.
// Minimum requirements are 2 CPU's, 8GiB of ram, and 120GiB storage.
// D4s v3 gives us 4 CPU's, 16GiB ram and 32GiB of temporary storage
// D4s v5 gives us 4 CPU's, 16GiB ram and 32GiB of temporary storage
// DS3_v2 gives us 4 CPUs, 14GiB ram, and 28GiB of temporary storage.
func ComputeInstanceType(cloud azure.CloudEnvironment, region string, arch types.Architecture) string {
instanceClass := getInstanceClass(region)
size := "D4s_v3"
size := "D4s_v5"
if arch == types.ArchitectureARM64 {
size = "D4ps_v5"
}
Expand Down
2 changes: 1 addition & 1 deletion upi/azure/04_bootstrap.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
"bootstrapVMSize" : {
"type" : "string",
"defaultValue" : "Standard_D4s_v3",
"defaultValue" : "Standard_D4s_v5",
"metadata" : {
"description" : "The size of the Bootstrap Virtual Machine"
}
Expand Down
2 changes: 1 addition & 1 deletion upi/azure/06_workers.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
},
"nodeVMSize" : {
"type" : "string",
"defaultValue" : "Standard_D4s_v3",
"defaultValue" : "Standard_D4s_v5",
"metadata" : {
"description" : "The size of the each Node Virtual Machine"
}
Expand Down