Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memesan memori instans kontainer Amazon ECS Linux
Saat agen penampung Amazon ECS mendaftarkan instance kontainer ke klaster, agen harus menentukan berapa banyak memori yang tersedia untuk dicadangkan oleh instans penampung untuk tugas Anda. Karena overhead memori platform dan memori yang ditempati oleh kernel sistem, jumlah ini berbeda dari jumlah memori yang diinstal yang diiklankan untuk instans Amazon EC2 . Contohnya, instans m4.large memiliki memori terinstal sebesar 8 GiB. Namun, ini tidak selalu diterjemahkan ke tepat 8192 MiB memori yang tersedia untuk tugas saat instance container mendaftar.
ECS Managed Instances penentuan sumber daya memori
Instans Terkelola Amazon ECS menggunakan pendekatan hierarkis untuk menentukan persyaratan sumber daya memori untuk tugas. Tidak seperti ECS EC2 yang bergantung pada introspeksi memori Docker, Instans Terkelola ECS menghitung persyaratan memori langsung dari muatan tugas selama keputusan penjadwalan.
Ketika agen Instans Terkelola ECS menerima tugas, ia menghitung kebutuhan memori menggunakan urutan prioritas berikut:
-
Memori tingkat tugas (prioritas tertinggi) - Jika memori tingkat tugas ditentukan dalam definisi tugas, agen menggunakan nilai ini secara langsung. Ini lebih diutamakan daripada semua pengaturan memori tingkat kontainer.
-
Jumlah memori tingkat kontainer (fallback) - Jika memori tingkat tugas tidak ditentukan (atau 0), agen menjumlahkan persyaratan memori dari semua wadah dalam tugas. Untuk setiap wadah, ia menggunakan:
-
Reservasi memori (batas lunak) - Jika kontainer menentukan
memoryReservationdalam konfigurasinya, agen menggunakan nilai ini. -
Memori kontainer (batas keras) - Jika
memoryReservationtidak ditentukan, agen menggunakanmemorybidang wadah.
-
contoh Memori tingkat tugas ditentukan
Ketika memori tingkat tugas ditentukan, itu lebih diutamakan daripada pengaturan tingkat kontainer:
{ "family": "my-task", "memory": "2048", "containerDefinitions": [ { "name": "container1", "memory": 1024, "memoryReservation": 512 } ] }
Agen cadangan 2048 MiB (memori tingkat tugas diutamakan).
contoh Memori tingkat kontainer dengan reservasi
Ketika memori tingkat tugas tidak ditentukan, agen menjumlahkan persyaratan memori kontainer:
{ "family": "my-task", "containerDefinitions": [ { "name": "container1", "memory": 1024, "memoryReservation": 512 }, { "name": "container2", "memory": 512 } ] }
Agen mencadangkan 512 MiB (reservasi kontainer1) +512 MiB (memori kontainer2) = total 1024 MiB.
Agen Instans Terkelola ECS melakukan perhitungan memori dalam tiga fase:
-
Penerimaan tugas - Ketika muatan tugas tiba dari bidang kontrol ECS, agen segera menghitung memori yang diperlukan.
-
Penyimpanan sumber daya - Persyaratan memori yang dihitung disimpan dalam model tugas untuk digunakan nanti dalam operasi akuntansi sumber daya.
-
Keputusan penjadwalan - Sebelum menerima tugas, agen memeriksa apakah memori yang cukup tersedia. Jika memori tidak cukup tersedia, tugas ditolak dan tetap dalam antrian layanan ECS sampai sumber daya tersedia.
catatan
Tidak seperti ECS aktif EC2, Instans Terkelola ECS tidak menggunakan variabel konfigurasi. ECS_RESERVED_MEMORY Reservasi memori untuk proses sistem ditangani melalui manajemen sumber daya platform yang mendasarinya, dan agen melakukan akuntansi sumber daya yang akurat berdasarkan definisi tugas.
Untuk ECS aktif EC2, agen penampung Amazon ECS menyediakan variabel konfigurasi yang disebutECS_RESERVED_MEMORY, yang dapat Anda gunakan untuk menghapus sejumlah memori MiB tertentu dari kumpulan yang dialokasikan untuk tugas Anda. Ini secara efektif menyimpan memori untuk proses sistem yang penting.
Jika Anda menempati semua memori pada instance kontainer dengan tugas Anda, maka ada kemungkinan bahwa tugas Anda akan bersaing dengan proses sistem penting untuk memori dan mungkin memulai kegagalan sistem.
Misalnya, jika Anda menentukan ECS_RESERVED_MEMORY=256 dalam file konfigurasi agen kontainer Anda, agen akan mendaftarkan memori total dikurangi 256 MiB untuk instans tersebut, dan 256 MiB memori tidak dapat dialokasikan untuk tugas ECS. Untuk informasi lebih lanjut tentang variabel konfigurasi agen dan cara mengaturnya, lihat Konfigurasi agen kontainer Amazon ECS dan Bootstrapping instans penampung Amazon ECS Linux untuk meneruskan data.
Jika Anda menentukan 8192 MiB untuk tugas tersebut, dan tidak ada instance kontainer Anda yang memiliki 8192 MiB atau lebih besar memori yang tersedia untuk memenuhi persyaratan ini, maka tugas tersebut tidak dapat ditempatkan di cluster Anda. Jika Anda menggunakan lingkungan komputasi terkelola, maka AWS Batch harus meluncurkan jenis instans yang lebih besar untuk mengakomodasi permintaan.
Agen kontainer Amazon ECS menggunakan fungsi ReadMemInfo() Docker untuk kueri total memori yang tersedia untuk sistem operasi. Baik Linux dan Windows menyediakan utilitas baris perintah untuk menentukan total memori.
contoh - Menentukan memori total Linux
Perintah free menampilkan memori total yang diakui oleh sistem operasi.
$free -b
Contoh output untuk instans m4.large yang menjalankan AMI Amazon Linux yang dioptimalkan untuk Amazon ECS.
total used free shared buffers cached Mem:8373026816348180480 8024846336 90112 25534464 205418496 -/+ buffers/cache: 117227520 8255799296
Instans ini memiliki 8373026816 byte memori total, yang diterjemahkan menjadi 7985 MiB yang tersedia untuk tugas.
contoh - Menentukan memori total Windows
Perintah wmic menampilkan memori total yang diakui oleh sistem operasi.
C:\>wmic ComputerSystem get TotalPhysicalMemory
Contoh keluaran untuk m4.large instance yang menjalankan AMI Windows Server Amazon ECS yang dioptimalkan.
TotalPhysicalMemory8589524992
Instans ini memiliki 8589524992 byte memori total, yang diterjemahkan menjadi 8191 MiB yang tersedia untuk tugas.
Melihat memori instance kontainer
Anda dapat melihat berapa banyak memori yang didaftarkan oleh instans kontainer di konsol Amazon ECS (atau dengan operasi DescribeContainerInstancesAPI). Jika Anda mencoba memaksimalkan pemanfaatan sumber daya Anda dengan menyediakan tugas Anda sebanyak mungkin memori untuk jenis instance tertentu, Anda dapat mengamati memori yang tersedia untuk instance kontainer itu dan kemudian menetapkan tugas Anda sebanyak itu memori.
Untuk melihat memori instance kontainer
Buka konsol di https://console.aws.amazon.com/ecs/v2
. -
Di panel navigasi, pilih Clusters, lalu pilih cluster yang menghosting instance container Anda.
-
Pilih Infrastruktur, dan kemudian di bawah Instance Container, pilih instance container.
-
Bagian Resources menunjukkan memori terdaftar dan tersedia untuk instance container.
Nilai memori Terdaftar adalah contoh kontainer; terdaftar dengan Amazon ECS saat pertama kali diluncurkan, dan nilai memori yang tersedia adalah apa yang belum dialokasikan untuk tugas.