Tingkatkan performa jaringan antar EC2 instans dengan Express ENA - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tingkatkan performa jaringan antar EC2 instans dengan Express ENA

ENAExpress didukung oleh teknologi AWS Scalable Reliable Datagram (SRD). SRDadalah protokol transportasi jaringan berkinerja tinggi yang menggunakan perutean dinamis untuk meningkatkan throughput dan meminimalkan latensi ekor. Dengan ENA Express, Anda dapat berkomunikasi antara dua EC2 instance di Availability Zone yang sama.

Manfaat ENA Express
  • Meningkatkan bandwidth maksimum yang dapat digunakan aliran tunggal dari 5 Gbps menjadi 25 Gbps dalam Availability Zone, hingga batas instans agregat.

  • Mengurangi latensi ekor lalu lintas jaringan antar EC2 instans, terutama selama periode beban jaringan yang tinggi.

  • Mendeteksi dan menghindari jalur jaringan yang padat.

  • Menangani beberapa tugas secara langsung di lapisan jaringan, seperti penataan ulang paket di ujung penerima, dan sebagian besar transmisi ulang yang diperlukan. Ini membebaskan lapisan aplikasi untuk pekerjaan lain.

catatan
  • Jika aplikasi Anda mengirim atau menerima volume paket yang tinggi per detik, dan perlu mengoptimalkan latensi sebagian besar waktu, terutama selama periode ketika tidak ada kemacetan di jaringan, Jaringan yang ditingkatkan mungkin lebih cocok untuk jaringan Anda.

  • ENALalu lintas ekspres tidak dapat dikirim melalui subnet di Zona Lokal.

Setelah Anda mengaktifkan ENA Express untuk lampiran antarmuka jaringan pada sebuah instance, instance pengirim memulai komunikasi dengan instance penerima, dan SRD mendeteksi apakah ENA Express beroperasi pada instance pengirim dan instance penerima. Jika ENA Express beroperasi, komunikasi dapat menggunakan SRD transmisi. Jika ENA Express tidak beroperasi, komunikasi kembali ke ENA transmisi standar.

Selama periode waktu ketika lalu lintas jaringan ringan, Anda mungkin melihat sedikit peningkatan latensi paket (puluhan mikrodetik) ketika paket menggunakan Express. ENA Selama waktu tersebut, aplikasi yang memprioritaskan karakteristik kinerja jaringan tertentu dapat memperoleh manfaat dari ENA Express sebagai berikut:

  • Proses dapat memperoleh manfaat dari peningkatan bandwidth aliran tunggal maksimum dari 5 Gbps menjadi 25 Gbps dalam Availability Zone yang sama, hingga batas instans agregat. Misalnya, jika tipe instans tertentu mendukung hingga 12,5 Gbps, bandwidth aliran tunggal juga dibatasi hingga 12,5 Gbps.

  • Proses yang berjalan lebih lama akan mengalami pengurangan latensi ekor selama periode kemacetan jaringan.

  • Proses dapat memperoleh manfaat dari distribusi yang lebih lancar dan lebih standar untuk waktu respons jaringan.

Bagaimana ENA Express bekerja

ENAExpress didukung oleh teknologi AWS Scalable Reliable Datagram (SRD). Ini mendistribusikan paket untuk setiap aliran jaringan di jalur AWS jaringan yang berbeda, dan secara dinamis menyesuaikan distribusi ketika mendeteksi tanda-tanda kemacetan. Ini juga mengelola penataan ulang paket di ujung penerima.

Untuk memastikan bahwa ENA Express dapat mengelola lalu lintas jaringan sebagaimana dimaksud, mengirim dan menerima instance dan komunikasi di antara mereka harus memenuhi semua persyaratan berikut:

  • Baik tipe instans pengiriman maupun penerimaan didukung. Lihat tabel Jenis instans yang didukung untuk ENA Express untuk informasi selengkapnya.

  • Instance pengiriman dan penerimaan harus memiliki ENA Express yang dikonfigurasi. Jika ada perbedaan dalam konfigurasi, Anda dapat mengalami situasi di mana lalu lintas default ke transmisi standar. ENA Skenario berikut menunjukkan apa yang bisa terjadi.

    Skenario: Perbedaan konfigurasi

    Instans ENAEkspres Diaktifkan UDPmenggunakan ENA Express
    Instans 1 Ya Ya
    Instans 2 Ya Tidak

    Dalam hal ini, TCP lalu lintas antara dua instance dapat menggunakan ENA Express, karena kedua instance telah mengaktifkannya. Namun, karena salah satu contoh tidak menggunakan ENA Express untuk UDP lalu lintas, komunikasi antara kedua instance ini UDP menggunakan transmisi standarENA.

  • Instans pengiriman dan penerimaan harus berjalan di Availability Zone yang sama.

  • Jalur jaringan antara instans tidak boleh menyertakan kotak perangkat lunak perantara (middleware). ENAExpress saat ini tidak mendukung kotak middleware.

  • (Hanya instance Linux) Untuk memanfaatkan potensi bandwidth penuh, gunakan driver versi 2.2.9 atau lebih tinggi.

  • (Hanya instance Linux) Untuk menghasilkan metrik, gunakan driver versi 2.8 atau lebih tinggi.

Jika ada persyaratan yang tidak terpenuhi, instance menggunakan UDP protokol TCP standar/tetapi tanpa SRD untuk berkomunikasi.

Untuk memastikan bahwa driver jaringan instans Anda dikonfigurasi untuk kinerja optimal, tinjau praktik terbaik yang disarankan untuk ENA driver. Praktik terbaik ini juga berlaku untuk ENA Express. Untuk informasi selengkapnya, lihat Panduan Praktik Terbaik dan Pengoptimalan Kinerja Driver ENA Linux di GitHub situs web.

catatan

Amazon EC2 mengacu pada hubungan antara instance dan antarmuka jaringan yang melekat padanya sebagai lampiran. ENAPengaturan ekspres berlaku untuk lampiran. Jika antarmuka jaringan terlepas dari instance, lampiran tidak ada lagi, dan pengaturan ENA Express yang diterapkan padanya tidak lagi berlaku. Hal yang sama berlaku ketika sebuah instans diakhiri, bahkan jika antarmuka jaringan tetap ada.

Setelah mengaktifkan ENA Express untuk lampiran antarmuka jaringan pada instans pengirim dan instans penerima, Anda dapat menggunakan metrik ENA Express untuk membantu memastikan bahwa instans Anda memanfaatkan sepenuhnya peningkatan kinerja yang SRD disediakan teknologi. Untuk informasi selengkapnya tentang metrik ENA Express, lihatMetrik untuk Express ENA.

Jenis instans yang didukung untuk ENA Express

Tab berikut menunjukkan jenis instance yang mendukung ENA Express.

General purpose
Jenis instans Arsitektur
m6a.12xlarge x86_64
m6a.16xlarge x86_64
m6a.24xlarge x86_64
m6a.32xlarge x86_64
m6a.48xlarge x86_64
m6a.metal x86_64
m6i.8xlarge x86_64
m6i.12xlarge x86_64
m6i.16xlarge x86_64
m6i.24xlarge x86_64
m6i.32xlarge x86_64
m6i.metal x86_64
m6id.8xlarge x86_64
m6id.12xlarge x86_64
m6id.16xlarge x86_64
m6id.24xlarge x86_64
m6id.32xlarge x86_64
m6id.metal x86_64
m7a.12xlarge x86_64
m7a.16xlarge x86_64
m7a.24xlarge x86_64
m7a.32xlarge x86_64
m7a.48xlarge x86_64
m7a.metal-48xl x86_64
m7g.12xlarge arm64
m7g.16xlarge arm64
m7g.metal arm64
m7gd.12xlarge arm64
m7gd.16xlarge arm64
m7gd.metal arm64
m7i.12xlarge x86_64
m7i.16xlarge x86_64
m7i.24xlarge x86_64
m7i.48xlarge x86_64
m7i.metal-24xl x86_64
m7i.metal-48xl x86_64
m8g.12xlarge arm64
m8g.16xlarge arm64
m8g.24xlarge arm64
m8g.48xlarge arm64
m8g.metal-24xl arm64
m8g.metal-48xl arm64
Compute optimized
Jenis instans Arsitektur
c6a.12xlarge x86_64
c6a.16xlarge x86_64
c6a.24xlarge x86_64
c6a.32xlarge x86_64
c6a.48xlarge x86_64
c6a.metal x86_64
c6gn.16xlarge arm64
c6i.8xlarge x86_64
c6i.12xlarge x86_64
c6i.16xlarge x86_64
c6i.24xlarge x86_64
c6i.32xlarge x86_64
c6i.metal x86_64
c6id.8xlarge x86_64
c6id.12xlarge x86_64
c6id.16xlarge x86_64
c6id.24xlarge x86_64
c6id.32xlarge x86_64
c6id.metal x86_64
c7a.12xlarge x86_64
c7a.16xlarge x86_64
c7a.24xlarge x86_64
c7a.32xlarge x86_64
c7a.48xlarge x86_64
c7a.metal-48xl x86_64
c7g.12xlarge arm64
c7g.16xlarge arm64
c7g.metal arm64
c7gd.12xlarge arm64
c7gd.16xlarge arm64
c7gd.metal arm64
c7i.12xlarge x86_64
c7i.16xlarge x86_64
c7i.24xlarge x86_64
c7i.48xlarge x86_64
c7i.metal-24xl x86_64
c7i.metal-48xl x86_64
c8g.12xlarge arm64
c8g.16xlarge arm64
c8g.24xlarge arm64
c8g.48xlarge arm64
c8g.metal-24xl arm64
c8g.metal-48xl arm64
Memory optimized
Jenis instans Arsitektur
r6a.12xlarge x86_64
r6a.16xlarge x86_64
r6a.24xlarge x86_64
r6a.32xlarge x86_64
r6a.48xlarge x86_64
r6a.metal x86_64
r6i.8xlarge x86_64
r6i.12xlarge x86_64
r6i.16xlarge x86_64
r6i.24xlarge x86_64
r6i.32xlarge x86_64
r6i.metal x86_64
r6id.8xlarge x86_64
r6id.12xlarge x86_64
r6id.16xlarge x86_64
r6id.24xlarge x86_64
r6id.32xlarge x86_64
r6id.metal x86_64
r7a.12xlarge x86_64
r7a.16xlarge x86_64
r7a.24xlarge x86_64
r7a.32xlarge x86_64
r7a.48xlarge x86_64
r7a.metal-48xl x86_64
r7g.12xlarge arm64
r7g.16xlarge arm64
r7g.metal arm64
r7gd.12xlarge arm64
r7gd.16xlarge arm64
r7gd.metal arm64
r7i.12xlarge x86_64
r7i.16xlarge x86_64
r7i.24xlarge x86_64
r7i.48xlarge x86_64
r7i.metal-24xl x86_64
r7i.metal-48xl x86_64
r8g.12xlarge arm64
r8g.16xlarge arm64
r8g.24xlarge arm64
r8g.48xlarge arm64
r8g.metal-24xl arm64
r8g.metal-48xl arm64
u7i-12tb.224xlarge x86_64
u7in-16tb.224xlarge x86_64
u7in-24tb.224xlarge x86_64
u7in-32tb.224xlarge x86_64
x2idn.16xlarge x86_64
x2idn.24xlarge x86_64
x2idn.32xlarge x86_64
x2idn.metal x86_64
x2iedn.8xlarge x86_64
x2iedn.16xlarge x86_64
x2iedn.24xlarge x86_64
x2iedn.32xlarge x86_64
x2iedn.metal x86_64
x8g.12xlarge arm64
x8g.16xlarge arm64
x8g.24xlarge arm64
x8g.48xlarge arm64
x8g.metal-24xl arm64
x8g.metal-48xl arm64
Accelerated computing
Jenis instans Arsitektur
g6.48xlarge x86_64
g6e.12xlarge x86_64
g6e.24xlarge x86_64
g6e.48xlarge x86_64
Storage optimized
Jenis instans Arsitektur
i4g.4xlarge arm64
i4g.8xlarge arm64
i4g.16xlarge arm64
i4i.8xlarge x86_64
i4i.12xlarge x86_64
i4i.16xlarge x86_64
i4i.24xlarge x86_64
i4i.32xlarge x86_64
i4i.metal x86_64
im4gn.4xlarge arm64
im4gn.8xlarge arm64
im4gn.16xlarge arm64

Prasyarat untuk instans Linux

Untuk memastikan bahwa ENA Express dapat beroperasi secara efektif, perbarui pengaturan untuk instance Linux Anda sebagai berikut.

  • Jika instans Anda menggunakan bingkai jumbo, jalankan perintah berikut untuk menyetel unit transmisi maksimum (MTU) ke8900.

    [ec2-user ~]$ sudo ip link set dev eth0 mtu 8900
  • Tingkatkan ukuran cincin penerima (Rx), sebagai berikut:

    [ec2-user ~]$ ethtool -G device rx 8192
  • Untuk memaksimalkan bandwidth ENA Express, konfigurasikan batas TCP antrian Anda sebagai berikut:

    1. Tetapkan batas antrian TCP kecil ke 1MB atau lebih tinggi. Ini meningkatkan jumlah data yang antri untuk transmisi pada soket.

      sudo sh -c 'echo 1048576 > /proc/sys/net/ipv4/tcp_limit_output_bytes'
    2. Nonaktifkan batas antrean byte pada perangkat eth jika diaktifkan untuk distribusi Linux Anda. Ini meningkatkan antrean data untuk transmisi untuk antrian perangkat.

      sudo sh -c 'for txq in /sys/class/net/eth0/queues/tx-*; do echo max > ${txq}/byte_queue_limits/limit_min; done'
      catatan

      ENADriver untuk distribusi Amazon Linux menonaktifkan batas antrian byte secara default.

Menyetel kinerja untuk pengaturan ENA Express pada instance Linux

Untuk memeriksa konfigurasi instans Linux Anda untuk kinerja ENA Express yang optimal, Anda dapat menjalankan skrip berikut yang tersedia di GitHub repositori Amazon:

https://github.com/amzn/amzn-ec2-ena- - .sh utilities/blob/main/ena-express/check ena-express-settings

Skrip menjalankan serangkaian tes dan menyarankan perubahan konfigurasi yang direkomendasikan dan yang diperlukan.