Skip to content

Provision the Graviton 5 rustc-perf collector - #1173

Draft
marcoieni wants to merge 1 commit into
rustc-perf/graviton5-2-bootstrapfrom
rustc-perf/graviton5-3-collector
Draft

Provision the Graviton 5 rustc-perf collector#1173
marcoieni wants to merge 1 commit into
rustc-perf/graviton5-2-bootstrapfrom
rustc-perf/graviton5-3-collector

Conversation

@marcoieni

Copy link
Copy Markdown
Member

Allocates an M9g Dedicated Host and places a no-ingress m9g.12xlarge Graviton 5 collector on it, with SSM access, host recovery, termination protection, encrypted storage, and a boot-time hardware performance-counter smoke test.

Stack: 3/4. Depends on the account bootstrap PR and an approved host quota increase.

  • This PR was generated by AI and I haven't reviewed it yet. Please don't waste your time reading it yet.

AI disclosure

I used GPT5.6-Sol with the codex harness to generate this change. I reviewed its output and changed it where necessary.

Allocate an M9g Dedicated Host in us-east-2 and place an m9g.12xlarge partition on its isolated no-ingress network. Use Session Manager for administration, require an approved host quota, and smoke-test cycles, instructions, branches, and branch-miss PMU counters during boot.
@marcoieni
marcoieni marked this pull request as draft August 17, 2026 10:07

filter {
name = "name"
values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-arm64-server-*"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we switch to 26.04 from the start?

// `aws ssm start-session`; it is not a startup script for the instance.
// Managing it here makes the no-SSH access path available without a manual
// console step, runs operators as Ubuntu's normal sudo-capable user, and puts
// finite idle and total limits on forgotten sessions.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we can try SSM as the access mechanism to start, but we should think about whether just exposing ssh on port 22 to the bastion is reasonable. We do that for other instances we manage and it feels fairly reasonable to me.

sysctl --system

# Canonical's AWS images ship the agent as a snap. Keep this fallback for an
# image where it is not preinstalled yet.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I assume agents are generating this? I'd prefer to avoid random "fallbacks" that we don't actually use.

fi
systemctl enable --now snap.amazon-ssm-agent.amazon-ssm-agent.service

install -d -m 0755 /var/lib/rustc-perf

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What is this doing? I don't think we normally install perf into /var/lib...

At a high level, I think I would keep the user data minimal (empty?) unless our intent is for perf to provision new instances on demand. That might make sense, but then perf should probably be building an AMI with this pre-provisioned or the script and run-instances should live in rustc-perf (as it does in bors for r-l/r CI).

encrypted = true
iops = 12000
throughput = 500
volume_size = 500

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

12000 IOPS seems very much excessive to me. I would keep this at defaults personally unless we encounter issues. Most of the perf workload should be able to fit in memory.

500 gb is probably fine (I doubt we need that much though...).

#!/usr/bin/env bash
set -euxo pipefail

export DEBIAN_FRONTEND=noninteractive

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We'll want to mask the tmp.mount systemd unit and unmount /tmp most likely, we probably can't fit everything into memory unless we get an even larger instance allocated.

@marcoieni

Copy link
Copy Markdown
Member Author

In the pr description I wrote explicitly that this was generated with AI and I didn't want anyone to review it because I didn't review it yet. Please don't review PRs from me that are in draft. I don't want to waste anyone time. Anyway I will have a look at your feedback, thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants