AWS ground-station documentation change
Summary
Enhanced performance tuning guidance: added cron setup for AL2023, updated kernel parameter configuration method, and clarified network interface naming
Security assessment
Changes focus on performance optimization and reliability (preventing packet loss). No security vulnerabilities addressed. Cron setup prevents misconfiguration that could cause performance issues but isn't a security fix.
Diff
diff --git a/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.md b/ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.md index 73c3c8556..85c749d08 100644 --- a//ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.md +++ b//ground-station/latest/gs-agent-ug/ec2-instance-performance-tuning.md @@ -7 +7 @@ -Tune hardware interrupts and receive queues - impacts CPU and networkTune Rx interrupt coalescing - impacts networkTune Rx ring buffer - impacts networkTune CPU C-State - impacts CPUReserve ingress ports - impacts networkRebootAppendix: Recommended parameters for interrupt/RPS tune +Tune hardware interrupts and receive queues - impacts CPU and networkTune Rx interrupt coalescing - impacts networkTune Rx ring buffer - impacts networkSet kernel boot parameters (CPU C-State and interface naming) - impacts CPU and networkReserve ingress ports - impacts networkRebootAppendix: Recommended parameters for interrupt/RPS tune @@ -25 +25 @@ Remember to reboot your instance after applying any tuning(s). - * Tune CPU C-State - impacts CPU + * Set kernel boot parameters (CPU C-State and interface naming) - impacts CPU and network @@ -37,0 +38,11 @@ This section configures CPU core usage of systemd, SMP IRQs, Receive Packet Stee +###### Important + +**Amazon Linux 2023 only:** Install and enable the cron daemon before continuing. + + + sudo dnf install -y cronie + sudo systemctl enable --now crond + + +This section and the two that follow it add `@reboot` crontab entries, which require a running cron daemon to take effect on each boot. On Amazon Linux 2023, the cron daemon is **not** installed by default, so without the commands above these entries are written but never run. On Amazon Linux 2, the cron daemon is already installed and enabled; no action is needed. + @@ -97 +108,5 @@ Increase the number of ring entries for the Rx ring buffer to prevent packet dro -## Tune CPU C-State - impacts CPU +## Set kernel boot parameters (CPU C-State and interface naming) - impacts CPU and network + +These kernel boot parameters prevent CPU idling by setting `intel_idle.max_cstate=1 processor.max_cstate=1 max_cstate=1`. CPU idling can cause lost packets at the start of a contact. The parameters also include `net.ifnames=0 biosdevname=0`, which rename the receiver's network interface to `eth0`. Like the other tuning steps in this chapter, these parameters take effect at the reboot described in Reboot. You can apply them in any order relative to the other sections. + +Use `grubby` to set the kernel arguments. This works on both Amazon Linux 2023 (UEFI) and Amazon Linux 2 because `grubby` manages the bootloader configuration directly on both. @@ -99 +113,0 @@ Increase the number of ring entries for the Rx ring buffer to prevent packet dro -Set the CPU C-state to prevent idling which can cause lost packets during the start of a contact. Requires instance reboot. @@ -100,0 +115 @@ Set the CPU C-state to prevent idling which can cause lost packets during the st + sudo grubby --update-kernel=ALL --args="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1 max_cstate=1" @@ -102,3 +116,0 @@ Set the CPU C-state to prevent idling which can cause lost packets during the st - echo "GRUB_CMDLINE_LINUX_DEFAULT=\"console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1 max_cstate=1\"" >/etc/default/grub - echo "GRUB_TIMEOUT=0" >>/etc/default/grub - grub2-mkconfig -o /boot/grub2/grub.cfg @@ -105,0 +118,3 @@ Set the CPU C-state to prevent idling which can cause lost packets during the st +###### Note + +The `net.ifnames=0` argument renames the network interface to `eth0` on the next boot. The other tuning sections and the agent configuration target `eth0`, so applying these parameters and rebooting is the recommended path. If you choose not to apply these parameters, the interface keeps its default name (for example, `ens5` on Amazon Linux 2023). In that case, substitute the actual interface name — found by running `ip link show` — everywhere this guide uses `eth0`.