Canonical 社からAWS 環境に合わせてチューニングされた Ubuntu カーネルパッケージがリリースされました。

2017.04.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2週間前にポストされた記事ではありますが、タイトルに記載のとおり linux-aws kernel package がリリースされておりました。

ざっくり紹介

linux-aws kernel package は、AWS 環境に特化し最適化された ubuntu 16.04 カーネルパッケージとして開発されているようです。 2017/3/29 時点で既に Amazon の Ubuntu Cloud Image は デフォルトで AWS 環境に合わせてチューニングされた Ubuntu カーネルが 利用されています。とのこと

では、実際に linux-aws kernel package が組み込まれた Ubuntu カーネルが AMI で利用されているか確認してみましょう。本記事ではクイックスタートにて表示される Ubuntu 16.04 / 14.04 LTS AMI で比較してみました。

  • Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-afb09dc8 ubuntu1604LTS

  • Ubuntu Server 14.04 LTS (HVM), SSD Volume Type - ami-d85e7fbf ubuntu1404LTS

# EC2 インスタンスの起動手順などは、割愛させて頂きます。

検証

確かに、Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-afb09dc8 から起動したインスタンスでは linux-aws パッケージが起動時点で含まれておりました。

スクリーンショット 2017-04-20 10.36.07

パッケージ情報を確認する限り、linux-aws 4.4.0.1013.16 が組み込まれているようです。

ubuntu@ip-172-31-28-194:~$ apt show linux-aws
Package: linux-aws
Version: 4.4.0.1013.16
Priority: optional
Section: universe/metapackages
Source: linux-meta-aws
Origin: Ubuntu
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 9,216 B
Depends: linux-image-aws (= 4.4.0.1013.16), linux-headers-aws (= 4.4.0.1013.16)
Download-Size: 1,810 B
APT-Manual-Installed: yes
APT-Sources: http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
Description: Complete Linux kernel for Amazon Web Services (AWS) systems.
 This package will always depend on the latest complete Linux kernel available
 for Amazon Web Services (AWS) systems.

ubuntu@ip-172-31-28-194:~$

launchpad を確認すると(2017/4/20 時点での)最新版は、Ubuntu-aws-4.4.0-1015.24 だったため、 少し古いバージョンがパッケージングされて含まれているようです。

launchpad - index : ~ubuntu-kernel/ubuntu/+source/linux/+git/xenial

注意事項

なお、上記の記事が公開された時点で Canonical Livepatch Service は未サポートのようです。 また、パフォーマンスよりも安定性を重視する場合、以下のコマンドを実行し、Livepatch がサポートされる 古い kernel に revert することが出来ると記載されております。

$ sudo apt install linux-virtual
$ sudo apt purge linux*aws
$ sudo reboot

なお、公開記事によると以下の説明が記載されていました。

  • カーネルの起動速度を最大30%高速化し、カーネルパッケージのサイズを15%削減
  • ENAインスタンスタイプ(現在I3、P2、R4、X1、およびm4.16xlarge)に対して 最大20 Gbpsのネットワーク速度をサポートする、最新ドライババージョン1.1.2を含む Elastic Network Adapter(ENA)のサポートを提供
  • I/O の高負荷状態における、NVMeストレージディスクによるi3インスタンスクラスのサポートの改善
  • i3インスタンスのI / Oパフォーマンスの向上
  • NVMe ストレージディスクを利用したインスタンスの初期化処理を改善
  • CONFIG_NO_HZ_FULLを無効にし、一部のインスタンスタイプで発生するデッドロックを排除しました
  • AWS t2.microインスタンスによるCPUスロットルの解決

以下、参考記事

Ubuntu on AWS gets serious performance boost with AWS-tuned kernel

機会があれば、もう少し踏み込んで確認してみたいですね。 それは、またの機会に

ではでは