Packets-per-second limits in EC2

Packets-per-second limits in EC2” is an interesting dive into network limits on the Amazon EC2. Even if you aren’t hitting any limits yet, this article provides plenty of useful information, including benchmarking tools and quick reference links for Enhanced Networking.

The conclusion of the article is:

By running these experiments, we determined that each EC2 instance type has a packet-per-second budget. Surprisingly, this budget goes toward the total of incoming and outgoing packets. Even more surprisingly, the same budget gets split between multiple network interfaces, with some additional performance penalty. This last result informs against using multiple network interfaces when tuning the system for higher networking performance.
The maximum budget for m5.metal and m5.24xlarge is 2.2M packets per second. Given that each HTTP transaction takes at least four packets, we can translate this to a maximum of 550k requests per second on the largest m5 instance with Enhanced Networking enabled.

Intermediate Vim

Intermediate Vim is a nice collection of Vim tips and tricks, which are aimed at somebody who is already familiar with Vim. (There is of course no single definition of what’s advanced, intermediate or introductory, so we’ll leave that argument out.) But the article is well worth the read, even if you already know all of the mentioned commands. A refresher is always welcome.

Fedora 30

Fedora 30 has been released a few days ago. In the long list of changes, the most interesting to me are:

I’ve already upgraded my laptop to this version and everything seems to work as expected. The upgrade from Fedora 29 to Fedora 30 is easy:

# Install all the latest updates
dnf upgrade --refresh

# Install DNF plugin for system upgrades
dnf install dnf-plugin-system-upgrade

# Download all the necessary packages for Fedora 30
dnf system-upgrade download --releasever=30

# Reboot and start the upgrade of packages
dnf system-upgrade reboot

# Cleanup after successful upgrade
dnf system-upgrade clean

If this is not your first upgrade on the machine, it might also be a good idea to cleanup some of the installed packages BEFORE the upgrade, so that the process goes faster, skipping unnecessary downloads and upgrades. Here are a few suggestions:

# List all installed RPMs by size
rpm -qa --queryformat '%{size} %{name}\n' | sort -rn | less

# List all packages from earlier Fedora releases
rpm -qa | grep -i fc28

How to disable IPv6 on CentOS / RHEL 7

Sometimes I miss the good old days …

Recently, I had an issue with one of the servers, where a bunch of services were attaching to IPv6 ports instead of the IPv4 ones. Rather than editing the configuration of each of these services, I wanted to simply disabled IPv6 on the machine.

In the old good days, things like these were easily done via the sysctl. I surely tried that option too, but it wasn’t enough. Turns out, the proper way these days is to do this via Grub, as per this blog post:

  1. Vim /etc/default/grub file
  2. Change: GRUB_CMDLINE_LINUX=”ipv6.disable=1 crashkernel=auto rhgb quiet”
  3. Regenerate and overwrite Grub config with: grub2-mkconfig -o /boot/grub2/grub.cfg
  4. Reboot.

That sounds a bit too excessive. But then again a reboot is also required for the proper disabling of SELinux, so I guess its’ fine.

Configuring HA Kubernetes cluster on bare metal servers

Alexey Nizhegolenko has an excellent 3-part series of articles that cover the setup of Kubernetes on the bare metal servers. Here are the parts:

If that’s not a hand-holding walk-through guide, then I don’t know what is.