Skip to content

aws: add i8g instance type #676

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: next
Choose a base branch
from
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
45 changes: 45 additions & 0 deletions common/aws_io_params.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -588,3 +588,48 @@ i7ie.ALL:
read_bandwidth: 3422623232
write_iops: 119327
write_bandwidth: 1526442410
i8g.large:
read_iops: 82268
read_bandwidth: 605359957
write_iops: 45598
write_bandwidth: 419360096
i8g.xlarge:
read_iops: 164442
read_bandwidth: 1216944170
write_iops: 90446
write_bandwidth: 838613674
i8g.2xlarge:
read_iops: 328275
read_bandwidth: 2438557696
write_iops: 134545
write_bandwidth: 1687947733
i8g.4xlarge:
read_iops: 553607
read_bandwidth: 4797597013
write_iops: 140814
write_bandwidth: 3419948373
i8g.8xlarge:
read_iops: 527429
read_bandwidth: 4797424981
write_iops: 139669
write_bandwidth: 3421133482
Copy link
Contributor

Choose a reason for hiding this comment

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

it's the same as i8g.4xlarge, while all previous ones scaled quite linearly.

Copy link
Contributor

Choose a reason for hiding this comment

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

I see that it's the top for write starting 4xlarge and above.
Does it make sense?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it seems like i8g.4xlarge and above are same performance, when measuring per single disk (number of disks will increase when instance size become larger, so RAID0 performance probably will increase).
(see detail of the result at #676 (comment))

Maybe we should make these entries into one, something like (we have such virtual instance size named "ALL"):

i8g.ALL:
  read_iops: 553607
  read_bandwidth: 4797597013
  write_iops: 140814
  write_bandwidth: 3419948373

Copy link
Contributor

Choose a reason for hiding this comment

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

@avikivity does it make sense to you?
It seems like it would be better to use multiple i8g.4x than scale up to i8g.8x and above.

Copy link
Member

Choose a reason for hiding this comment

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

Maybe it's limited by PCI bandwidth.

We can retest with fio to increase confidence.

Copy link
Member

Choose a reason for hiding this comment

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

/cc @xemul, also see the published AWS numbers below.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@avikivity @roydahan Here's fio benchmark results with same condition as iotune, tested on single disk and on Ubuntu 24.04 AMI.
Looks like i8g.4xlarge and above are same performance, just like iotune results:

instance_type read_iops read_bandwidth write_iops write_bandwidth
i8g.large 78292 555603562 43884 438754540
i8g.xlarge 157323 1115841456 87581 876946851
i8g.2xlarge 313297 2260359786 174735 1721536439
i8g.4xlarge 622411 4414251428 347601 3500703589
i8g.8xlarge 621199 4416311832 347583 3498772970
i8g.12xlarge 621139 4415457257 347595 3497935142
i8g.16xlarge 621064 4414584923 347581 3498662037
i8g.24xlarge 622155 4410919428 347684 3498376473
i8g.48xlarge 624175 4408066378 347854 3499295462
i8g.metal-24xl 622541 4410894653 347618 3500155127

i8g.12xlarge:
read_iops: 511314
read_bandwidth: 4794307754
write_iops: 139187
write_bandwidth: 3421301930
i8g.16xlarge:
read_iops: 505671
read_bandwidth: 4797634048
write_iops: 139999
write_bandwidth: 3420557226
i8g.24xlarge:
read_iops: 518127
read_bandwidth: 4796989610
write_iops: 139994
write_bandwidth: 3423059285
i8g.metal-24xl:
read_iops: 511950
read_bandwidth: 4788620288
write_iops: 139157
write_bandwidth: 3419887189
4 changes: 2 additions & 2 deletions lib/scylla_cloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -812,7 +812,7 @@ def instance_class(self):
return self._type.split(".")[0]

def is_supported_instance_class(self):
if self.instance_class() in ['i2', 'i3', 'i3en', 'c5d', 'm5d', 'm5ad', 'r5d', 'z1d', 'c6gd', 'm6gd', 'r6gd', 'x2gd', 'im4gn', 'is4gen', 'i4i', 'i4g', 'i7ie']:
if self.instance_class() in ['i2', 'i3', 'i3en', 'c5d', 'm5d', 'm5ad', 'r5d', 'z1d', 'c6gd', 'm6gd', 'r6gd', 'x2gd', 'im4gn', 'is4gen', 'i4i', 'i4g', 'i7ie', 'i8g']:
return True
return False

Expand All @@ -826,7 +826,7 @@ def get_en_interface_type(self):
instance_size = self.instance_size()
if instance_class in ['c3', 'c4', 'd2', 'i2', 'r3']:
return 'ixgbevf'
if instance_class in ['a1', 'c5', 'c5a', 'c5d', 'c5n', 'c6g', 'c6gd', 'f1', 'g3', 'g4', 'h1', 'i3', 'i3en', 'inf1', 'm5', 'm5a', 'm5ad', 'm5d', 'm5dn', 'm5n', 'm6g', 'm6gd', 'p2', 'p3', 'r4', 'r5', 'r5a', 'r5ad', 'r5b', 'r5d', 'r5dn', 'r5n', 't3', 't3a', 'u-6tb1', 'u-9tb1', 'u-12tb1', 'u-18tn1', 'u-24tb1', 'x1', 'x1e', 'z1d', 'c6g', 'c6gd', 'm6g', 'm6gd', 't4g', 'r6g', 'r6gd', 'x2gd', 'im4gn', 'is4gen', 'i4i', 'i4g', 'i7ie']:
if instance_class in ['a1', 'c5', 'c5a', 'c5d', 'c5n', 'c6g', 'c6gd', 'f1', 'g3', 'g4', 'h1', 'i3', 'i3en', 'inf1', 'm5', 'm5a', 'm5ad', 'm5d', 'm5dn', 'm5n', 'm6g', 'm6gd', 'p2', 'p3', 'r4', 'r5', 'r5a', 'r5ad', 'r5b', 'r5d', 'r5dn', 'r5n', 't3', 't3a', 'u-6tb1', 'u-9tb1', 'u-12tb1', 'u-18tn1', 'u-24tb1', 'x1', 'x1e', 'z1d', 'c6g', 'c6gd', 'm6g', 'm6gd', 't4g', 'r6g', 'r6gd', 'x2gd', 'im4gn', 'is4gen', 'i4i', 'i4g', 'i7ie', 'i8g']:
return 'ena'
if instance_class == 'm4':
if instance_size == '16xlarge':
Expand Down