Amazon EC2 Linux インスタンスの CPU パフォーマンスを改善する方法を教えてください。

最終更新日: 2019 年 10 月 8 日

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスのパフォーマンスを改善したいのですが、方法をいくつか教えてください。

解決方法

Amazon EC2 Linux インスタンスのパフォーマンスを改善するには、次の推奨事項をお試しください。

ハードウェア仮想マシン (HVM) Amazon マシンイメージ (AMI)

パフォーマンスを改善するには、HVM AMI を使用することをお勧めします。HVM AMI は、新しいインスタンスクラス (M5、M4、R4 など) と拡張ネットワーキングなどの Amazon EC2 機能も提供します。詳細については、「Linux AMI 仮想化タイプ」を参照してください。

拡張ネットワーキング

パフォーマンスを改善するには、サポートされているインスタンスタイプで拡張ネットワーキングを追加料金なしで使用できます。拡張ネットワーキングは、シングルルート I/O 仮想化 (SR-IOV) を使用します。これは、従来の仮想化されたネットワークインターフェイスと比較して、より高い I/O パフォーマンスとより低い CPU 使用率を実現するデバイス仮想化の方法です。サポートされているインスタンスタイプと手順については、「Linux での拡張ネットワーキング」と「Windows での拡張ネットワーキング」を参照してください。

拡張ネットワーキングを有効にするには、インスタンスで HVM AMI を使用し、Amazon Virtual Private Cloud (Amazon VPC) で起動する必要があります。

注意: 最新バージョンの Elastic Network Adapter (ENA) または Intel 82599 Virtual Function (VF) インターフェイスドライバーを使用することをお勧めします。

Non-Volatile Memory Express(NVMe) ボリューム

ストレージの場合、NVMe インスタンスストアボリュームを使用するとパフォーマンスが向上します。カーネルのバージョンとインスタンスタイプに応じて、NVMe ボリュームのパフォーマンスの向上はワークロードによって異なる場合があります。詳細については、「Amazon EBS および NVMe」と「SSD インスタンスストアボリューム」を参照してください。

注意: 特定のワークロードに Kyber I/O スケジューラーを使用するには、Amazon EC2 Linux インスタンスがカーネル 4.12 以降を実行していることを確認してください。

HugePages

HugePages は、大量のメモリアクセスを実行するワークロードのパフォーマンスを改善できます。詳細については、kernel.org ウェブサイトの「HugePages ドキュメント」を参照してください。ハイパフォーマンスコンピューティング (HPC) ワークロードに関するベストプラクティスについては、「ハイパフォーマンスコンピューティングレンズ」を参照してください。

最新のカーネルバージョンとインスタンスタイプ

パフォーマンスのために、最新のカーネルバージョンとインスタンスタイプを使用することを強くお勧めします。M3、C3、またはその他の古いインスタンスタイプを使用している場合は、M4 または同様のインスタンスタイプへの移行を検討し、またオペレーティングシステムで利用可能な最新のカーネルバージョンの使用を検討してください。詳細については、「Amazon EC2 インスタンスタイプ」を参照してください。

ジャンボフレーム

可能な限り小さなパケットの使用は避けてください。ワークロードでサポートされている場合は、ジャンボフレームでより大きなパケットを使用します。詳細については、「EC2 インスタンスのネットワーク最大転送ユニット (MTU)」を参照してください。

データプレーン開発キット (DPDK)

DPDK ベースのバージョンのソフトウェアを使用して、ネットワークをカーネルの外やユーザースペースに移行すると、パフォーマンスが向上する可能性があります。DPDK を使用するには、DPDK サポートを含むソフトウェアの更新が必要になる場合があります。詳細については、「DPDK ウェブサイト」を参照してください。

プロセスコンテキスト識別子 (PCID)

インスタンスのオペレーティングシステムで Kernel Page-Table Isolation (KPTI) が有効になっている場合、PCID も有効にすると CPU のパフォーマンスが向上します。カーネルとインスタンスタイプの両方が PCID をサポートしていることを確認する必要があります。

インスタンスのスケーリング

パフォーマンスを改善するには、インスタンスのサイズを拡大するか、インスタンスの数を増やすことを検討してください。

タイマー

通常、tsc タイマーは、ほとんどのインスタンスで利用可能な最高のパフォーマンスのタイマーです。xen タイマーを使用している場合、tsc タイマーに移動するとパフォーマンスが向上することがあります。jiffies タイマーを使用している古いオペレーティングシステムを使用している場合、できれば tsc をサポートするか、少なくとも xen をサポートするオペレーティングシステムへの移行を検討してください。

注意: M1 や M2 などの古いインスタンスタイプは、エミュレートされた TSC タイマーを提供します。TSC タイマーのパフォーマンスを向上させるには、新しいインスタンスタイプに移行することを検討してください。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合