Optimalkan parameter pengurasan koneksi penyeimbang beban untuk Amazon ECS - Amazon Elastic Container Service

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

Optimalkan parameter pengurasan koneksi penyeimbang beban untuk Amazon ECS

Untuk memungkinkan pengoptimalan, klien mempertahankan koneksi tetap hidup ke layanan kontainer. Ini memungkinkan permintaan berikutnya dari klien tersebut untuk menggunakan kembali koneksi yang ada. Saat Anda ingin menghentikan lalu lintas ke kontainer, Anda memberi tahu penyeimbang beban. Penyeimbang beban secara berkala memeriksa untuk melihat apakah klien menutup koneksi tetap hidup. ECSAgen Amazon memantau penyeimbang beban, dan menunggu penyeimbang beban melaporkan bahwa koneksi tetap hidup ditutup (target dalam keadaan). UNUSED

Jumlah waktu yang menunggu penyeimbang beban untuk memindahkan target ke UNUSED status adalah penundaan deregistrasi. Anda dapat mengonfigurasi parameter penyeimbang beban berikut untuk mempercepat penerapan Anda.

  • deregistration_delay.timeout_seconds: 300 (default)

Ketika Anda memiliki layanan dengan waktu respons di bawah 1 detik, atur parameter ke nilai berikut agar penyeimbang beban hanya menunggu 5 detik sebelum memutuskan koneksi antara klien dan layanan back-end:

  • deregistration_delay.timeout_seconds: 5

catatan

Jangan atur nilainya menjadi 5 detik saat Anda memiliki layanan dengan permintaan yang berumur panjang, seperti unggahan file yang lambat atau koneksi streaming.

SIGTERMresponsif

Amazon ECS pertama-tama mengirimkan SIGTERM sinyal ke tugas untuk memberi tahu aplikasi harus selesai dan dimatikan. Kemudian, Amazon ECS mengirim SIGKILL pesan. Ketika aplikasi mengabaikanSIGTERM, ECS layanan Amazon harus menunggu untuk mengirim SIGKILL sinyal untuk menghentikan proses.

Jumlah waktu Amazon ECS menunggu untuk mengirim SIGKILL pesan ditentukan oleh opsi ECS agen Amazon berikut:

  • ECS_CONTAINER_STOP_TIMEOUT: 30 (default)

    Untuk informasi selengkapnya tentang parameter agen kontainer, lihat Amazon ECS Container Agent di GitHub.

Untuk mempercepat masa tunggu, atur parameter ECS agen Amazon ke nilai berikut:

  • ECS_CONTAINER_STOP_TIMEOUT: 2

    Jika aplikasi Anda membutuhkan waktu lebih dari 1 detik, kalikan nilainya dengan 2 dan gunakan angka itu sebagai nilainya.

Dalam hal ini, Amazon ECS menunggu 2 detik hingga wadah dimatikan, dan kemudian Amazon ECS mengirim SIGKILL pesan ketika aplikasi tidak berhenti.

Anda juga dapat memodifikasi kode aplikasi untuk menjebak SIGTERM sinyal dan bereaksi terhadapnya. Berikut ini adalah contoh di JavaScript:

process.on('SIGTERM', function() { server.close(); })

Kode ini menyebabkan HTTP server berhenti mendengarkan permintaan baru, menyelesaikan menjawab permintaan dalam penerbangan, dan kemudian proses Node.js berakhir karena loop peristiwa tidak ada hubungannya. Mengingat hal ini, jika dibutuhkan proses hanya 500 ms untuk menyelesaikan permintaan dalam penerbangannya, itu berakhir lebih awal tanpa harus menunggu batas waktu berhenti dan dikirim a. SIGKILL