Pengoptimalan sistem operasi - Amazon Elastic Compute Cloud

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

Pengoptimalan sistem operasi

Untuk mencapai performa jaringan maksimum pada instans dengan jaringan yang ditingkatkan, Anda mungkin perlu memodifikasi konfigurasi sistem operasi default. Kami merekomendasikan perubahan konfigurasi berikut untuk aplikasi yang memerlukan performa jaringan tinggi. Pengoptimalan lain (seperti mengaktifkan checksum offloading dan mengaktifkan RSS, contohnya) sudah ada di AMI Windows resmi.

catatan

TCP chimney offloading harus dinonaktifkan di sebagian besar kasus penggunaan, dan sudah tidak digunakan lagi mulai Windows Server 2016.

Selain pengoptimalan sistem operasi ini, Anda juga harus mempertimbangkan unit transmisi maksimum (MTU) lalu lintas jaringan Anda, dan menyesuaikannya dengan beban kerja dan arsitektur jaringan Anda. Untuk informasi selengkapnya, lihat Maximum transmission unit (MTU) jaringan untuk instans EC2 Anda.

AWS secara teratur mengukur latensi pulang-pergi rata-rata antara instance yang diluncurkan dalam kelompok penempatan cluster 50us dan latensi ekor 200us pada persentil 99,9. Jika aplikasi Anda membutuhkan latensi rendah secara konsisten, kami merekomendasikan menggunakan driver ENA versi terbaru pada instans berbasis Nitro dengan performa tetap.

Mengonfigurasi afinitas CPU RSS

Receive side scaling (RSS) digunakan untuk mendistribusikan beban CPU lalu lintas jaringan ke beberapa prosesor. Secara default, Amazon Windows AMI yang resmi dikonfigurasi dengan mengaktifkan RSS. ENA ENI menyediakan hingga delapan antrean RSS. Dengan menentukan afinitas CPU untuk antrean RSS, serta untuk proses sistem lainnya, dimungkinkan untuk menyebarkan beban CPU melalui sistem multi-core, yang memungkinkan lebih banyak lalu lintas jaringan untuk diproses. Pada jenis instans dengan lebih dari 16 vCPU, kami sarankan Anda menggunakan Set-NetAdapterRSS PowerShell cmdlet, yang secara manual mengecualikan prosesor boot (prosesor logis 0 dan 1 ketika hyper-threading diaktifkan) dari konfigurasi RSS untuk semua ENI, untuk mencegah pertengkaran dengan berbagai komponen sistem.

Windows memahami fungsi hyper-thread dan akan memastikan antrean RSS dari NIC tunggal selalu ditempatkan pada core fisik yang berbeda. Oleh karena itu, kecuali hyper-threading dinonaktifkan, untuk sepenuhnya mencegah konflik dengan NIC yang lain, sebarkan konfigurasi RSS dari tiap-tiap NIC di antara rentang 16 prosesor logical. Set-NetAdapterRssCmdlet memungkinkan Anda untuk menentukan rentang per-NIC prosesor logis yang valid dengan mendefinisikan nilai BaseProcessorGroup,,, BaseProcessorNumber MaxProcessingGroup MaxProcessorNumber, dan (opsional). NumaNode Jika tidak ada cukup core fisik menghilangkan konflik antar-NIC sepenuhnya, minimalkan rentang yang tumpang tindih atau kurangi jumlah prosesor logical dalam rentang ENI sesuai dengan beban kerja yang diharapkan dari ENI (dengan kata lain, jaringan admin volume rendah tidak memerlukan banyak antrean RSS yang ditetapkan). Selain itu, seperti disebutkan sebelumnya, berbagai komponen harus dijalankan pada CPU 0, oleh karena itu kami menyarankan untuk mengecualikannya dari semua konfigurasi RSS jika vCPU cukup tersedia.

Misalnya, jika ada tiga ENI di instans 72 vCPU dengan 2 simpul NUMA yang mengaktifkan hyper-threading, perintah berikut menyebarkan beban jaringan di antara kedua CPU tanpa tumpang tindih serta mencegah penggunaan core 0 sepenuhnya.

Set-NetAdapterRss -Name NIC1 -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessorNumber 16 Set-NetAdapterRss -Name NIC2 -BaseProcessorGroup 1 -BaseProcessorNumber 0 -MaxProcessorNumber 14 Set-NetAdapterRss -Name NIC3 -BaseProcessorGroup 1 -BaseProcessorNumber 16 -MaxProcessorNumber 30

Perhatikan bahwa pengaturan ini tetap ada untuk setiap adaptor jaringan. Jika instans diubah ukurannya menjadi instans dengan jumlah vCPU yang berbeda, Anda harus mengevaluasi ulang konfigurasi RSS untuk setiap ENI yang diaktifkan. Dokumentasi Microsoft lengkap untuk cmdlt Set-NetAdapterRss dapat ditemukan di sini: https://docs.microsoft.com/en-us/powershell/module/netadapter/set-netadapterrss.

Catatan khusus untuk beban kerja SQL: Kami juga menyarankan Anda meninjau pengaturan afinitas thread I/O Anda beserta konfigurasi RSS ENI Anda untuk meminimalkan konflik I/O dan jaringan CPU yang sama. Lihat affinity mask Server Configuration Option.