AWS Troubleshooting
Exercises¶
- Interpret capacity error node states
A cluster shows the following sinfo output. What happened, and what should you do?
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
gpu* up infinite 1 down# gpu-dy-p5-1
gpu* up infinite 7 down~ gpu-dy-p5-[2-8]
gpu* up infinite 8 idle~ gpu-dy-g6-[1-8]
Hint / Solution
Node `gpu-dy-p5-1` failed to launch (likely `InsufficientInstanceCapacity` for p5.48xlarge). The `down#` state means it was the node that tried to launch. The `down~` nodes are other p5 nodes in the same compute resource, pre-emptively disabled by fast insufficient capacity fail-over. The `gpu-dy-g6` nodes are a different compute resource (g6 instances) and are still `idle~` (available). The job should automatically requeue to the g6 compute resource. **To verify:** `scontrol show nodes gpu-dy-p5-1 | grep Reason` **If the job didn't requeue:** Check that both compute resources are in the same queue and that the job's constraints allow g6 instances. Expected output: Validated 2026-10-19 onslurm-training-val (Slurm 25.11.8, ParallelCluster 3.16.1).
- Diagnose a bootstrap failure
Your cluster has entered protected mode. No jobs are running. How do you find out what went wrong and recover?
Hint / Solution
# 1. Confirm protected mode
pcluster describe-compute-fleet --cluster-name mycluster --region us-east-2
# Look for "status": "PROTECTED"
# 2. Find which queue is affected
sinfo
# Partitions showing INACTIVE = protected mode triggered
# 3. Find the failing nodes
sudo grep "Node bootstrap error" /var/log/parallelcluster/clustermgtd
# 4. Check the compute node logs (get IP from step 3)
# SSH or SSM to the compute node, then:
sudo tail -100 /var/log/cloud-init-output.log
# 5. Fix the root cause (custom action, security group, etc.)
# 6. Exit protected mode
pcluster update-compute-fleet --cluster-name mycluster \
--region us-east-2 --status START_REQUESTED
slurm-training-val (Slurm 25.11.8, ParallelCluster 3.16.1).
$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
batch* up infinite 3 idle~ batch-dy-compute-[2-4]
batch* up infinite 1 idle batch-dy-compute-1
debug up infinite 2 idle~ debug-dy-small-[1-2]
gpu up infinite 1 idle~ gpu-dy-t4-1
highmem up infinite 1 idle~ highmem-dy-large-1
$ sudo grep 'Node bootstrap error' /var/log/parallelcluster/clustermgtd 2>/dev/null | tail -5 || echo '(no bootstrap errors found)'
$ sudo tail -3 /var/log/parallelcluster/clustermgtd
2026-10-19 01:14:41,42 - [slurm_plugin.clustermgtd:_maintain_nodes] - INFO - Performing node maintenance actions
2026-10-19 01:14:41,43 - [slurm_plugin.clustermgtd:_maintain_nodes] - INFO - Following nodes are currently in replacement: (x0) []
2026-10-19 01:14:41,43 - [slurm_plugin.clustermgtd:_terminate_orphaned_instances] - INFO - Checking for orphaned instance
- Time a cold start
A dynamic node is powered down (idle~). Measure how long a job takes to start on it, and find where the time went using the head node's resume log.
Hint / Solution
# 1. Pick a powered-down node (head node)
sinfo -h -N -p <queue> -o '%N %T' | grep 'idle~' | head -1
# 2. Submit a trivial job pinned to it. --chdir=/tmp: an SSM session's
# working directory does not exist on the node (instant FAILED, 0:53)
id=$(sbatch --parsable -p <queue> -w <node> --chdir=/tmp --wrap=hostname)
# 3. Cold-start time = Start minus Submit
sacct -j "$id" -X -o JobID,Submit,Start,Elapsed,NodeList # needs accounting
scontrol show job "$id" | grep -E 'SubmitTime|StartTime' # fallback, while the job is in memory
# 4. When did ParallelCluster start launching the node? (head node)
sudo grep "<node>" /var/log/parallelcluster/slurm_resume.log | head -3
References¶
- ParallelCluster: Troubleshooting Scaling Issues
- ParallelCluster: Slurm Cluster Protected Mode
- ParallelCluster: Fast Insufficient Capacity Fail-Over
- ParallelCluster: Retrieving and Preserving Logs
- ParallelCluster: EC2 Console Output Logs
- PCS: Troubleshooting Compute Node Bootstrap
- PCS: General Troubleshooting
- ParallelCluster: Multiple Queue Mode Guide (
ResumeTimeout/SuspendTimeoutdefaults, power-save flow) - ParallelCluster: Slurm Configuration Customization (deny-listed parameters)
- Slurm Troubleshooting (general) — generic Slurm troubleshooting module