Pekerjaan terjebak dalam RUNNABLE status - AWS Batch

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

Pekerjaan terjebak dalam RUNNABLE status

Misalkan lingkungan komputasi Anda berisi sumber daya komputasi, tetapi pekerjaan Anda tidak berkembang melampaui status. RUNNABLE Kemudian, kemungkinan ada sesuatu yang mencegah pekerjaan ditempatkan pada sumber daya komputasi dan menyebabkan antrian pekerjaan Anda diblokir. Berikut cara mengetahui apakah pekerjaan Anda sedang menunggu giliran atau macet dan memblokir antrian.

Jika AWS Batch mendeteksi bahwa Anda memiliki RUNNABLE pekerjaan di kepala dan memblokir antrian, Anda akan menerima Sumber daya: Acara yang diblokir antrian pekerjaan acara dari Amazon CloudWatch Events dengan alasannya. Alasan yang sama juga diperbarui ke statusReason bidang sebagai bagian dari ListJobs dan DescribeJobs API panggilan.

Secara opsional, Anda dapat mengkonfigurasi jobStateTimeLimitActions parameter melalui CreateJobQueue dan UpdateJobQueueAPItindakan.

catatan

Saat ini, satu-satunya tindakan yang dapat Anda gunakan jobStateLimitActions.action adalah membatalkan pekerjaan.

jobStateTimeLimitActionsParameter ini digunakan untuk menentukan serangkaian tindakan yang AWS Batch dilakukan pada pekerjaan dalam keadaan tertentu. Anda dapat mengatur ambang waktu dalam hitungan detik melalui maxTimeSeconds bidang.

Ketika pekerjaan telah dalam RUNNABLE keadaan dengan yang ditentukanstatusReason, AWS Batch melakukan tindakan yang ditentukan setelah maxTimeSeconds telah berlalu.

Misalnya, Anda dapat mengatur jobStateTimeLimitActions parameter untuk menunggu hingga 4 jam untuk pekerjaan apa pun di RUNNABLE negara bagian yang menunggu kapasitas yang cukup tersedia. Anda dapat melakukan ini dengan mengatur statusReason ke CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY dan maxTimeSeconds ke 144000 sebelum membatalkan pekerjaan dan memungkinkan pekerjaan berikutnya untuk maju ke kepala antrian pekerjaan.

Berikut ini adalah alasan yang AWS Batch memberikan ketika mendeteksi bahwa antrian pekerjaan diblokir. Daftar ini menyediakan pesan yang dikembalikan dari ListJobs dan DescribeJobs API tindakan. Ini juga merupakan nilai yang sama yang dapat Anda tentukan untuk jobStateLimitActions.statusReason parameter.

  1. Alasan: Semua lingkungan komputasi yang terhubung memiliki kesalahan kapasitas yang tidak mencukupi. Saat diminta, AWS Batch mendeteksi EC2 instans Amazon yang mengalami kesalahan kapasitas tidak mencukupi. Membatalkan pekerjaan secara manual akan memungkinkan pekerjaan berikutnya pindah ke kepala antrian tetapi tanpa menyelesaikan masalah peran layanan, kemungkinan pekerjaan berikutnya juga akan diblokir juga. Yang terbaik adalah menyelidiki dan menyelesaikan masalah ini secara manual.

    • statusReasonpesan saat pekerjaan macet: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY - Service cannot fulfill the capacity requested for instance type [instanceTypeName]

    • reasondigunakan untukjobStateTimeLimitActions: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY

    • statusReasonpesan setelah pekerjaan dibatalkan: Canceled by JobStateTimeLimit action due to reason: CAPACITY:INSUFFICIENT_INSTANCE_CAPACITY

    Catatan:

    1. Peran AWS Batch layanan memerlukan autoscaling:DescribeScalingActivities izin agar deteksi ini berfungsi. Jika Anda menggunakan peran Izin peran terkait layanan untuk AWS Batch terkait layanan (SLR) atau kebijakan AWS kebijakan terkelola: AWSBatchServiceRolekebijakan terkelola, Anda tidak perlu mengambil tindakan apa pun karena kebijakan izin mereka diperbarui.

    2. Jika Anda menggunakan SLR atau kebijakan terkelola, Anda harus menambahkan ec2:DescribeSpotFleetRequestHistory izin autoscaling:DescribeScalingActivities dan agar Anda dapat menerima peristiwa antrian pekerjaan yang diblokir dan status pekerjaan yang diperbarui saat masuk. RUNNABLE Selain itu, AWS Batch perlu izin ini untuk melakukan cancellation tindakan melalui jobStateTimeLimitActions parameter bahkan jika mereka dikonfigurasi pada antrian pekerjaan.

    3. Dalam kasus pekerjaan paralel (MNP) multi-node, jika lingkungan EC2 komputasi Amazon prioritas tinggi yang dilampirkan mengalami insufficient capacity kesalahan, itu memblokir antrian meskipun lingkungan komputasi prioritas rendah mengalami kesalahan ini.

  2. Alasan: Semua lingkungan komputasi memiliki maxvCpusparameter yang lebih kecil dari persyaratan pekerjaan. Membatalkan pekerjaan, baik secara manual atau dengan mengatur jobStateTimeLimitActions parameterstatusReason, memungkinkan pekerjaan berikutnya untuk pindah ke kepala antrian. Secara opsional, Anda dapat meningkatkan maxvCpus parameter lingkungan komputasi utama untuk memenuhi kebutuhan pekerjaan yang diblokir.

    • statusReasonpesan saat pekerjaan macet: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE - CE(s) associated with the job queue cannot meet the CPU requirement of the job.

    • reasondigunakan untukjobStateTimeLimitActions: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE

    • statusReasonpesan setelah pekerjaan dibatalkan: Canceled by JobStateTimeLimit action due to reason: MISCONFIGURATION:COMPUTE_ENVIRONMENT_MAX_RESOURCE

  3. Alasan: Tidak ada lingkungan komputasi yang memiliki instance yang memenuhi persyaratan pekerjaan. Ketika pekerjaan meminta sumber daya, AWS Batch mendeteksi bahwa tidak ada lingkungan komputasi terlampir yang dapat mengakomodasi pekerjaan yang masuk. Membatalkan pekerjaan, baik secara manual atau dengan mengatur jobStateTimeLimitActions parameterstatusReason, memungkinkan pekerjaan berikutnya untuk pindah ke kepala antrian. Secara opsional, Anda dapat mendefinisikan ulang jenis instans yang diizinkan lingkungan komputasi untuk menambahkan sumber daya pekerjaan yang diperlukan.

    • statusReasonpesan saat pekerjaan macet: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT - The job resource requirement (vCPU/memory/GPU) is higher than that can be met by the CE(s) attached to the job queue.

    • reasondigunakan untukjobStateTimeLimitActions: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT

    • statusReasonpesan setelah pekerjaan dibatalkan: Canceled by JobStateTimeLimit action due to reason: MISCONFIGURATION:JOB_RESOURCE_REQUIREMENT

  4. Alasan: Semua lingkungan komputasi memiliki masalah peran layanan. Untuk mengatasinya, bandingkan izin peran layanan Anda dengan AWS kebijakan terkelola untuk AWS Batch dan atasi celah apa pun. Catatan:Anda tidak dapat mengonfigurasi tindakan yang dapat diprogram melalui jobStateTimeLimitActions parameter untuk mengatasi kesalahan ini.

    Ini adalah praktik terbaik untuk menggunakan Izin peran terkait layanan untuk AWS Batch untuk menghindari kesalahan serupa.

    Membatalkan pekerjaan, baik secara manual atau dengan mengatur jobStateTimeLimitActions parameterstatusReason, memungkinkan pekerjaan berikutnya untuk pindah ke kepala antrian. Tanpa menyelesaikan masalah peran layanan, kemungkinan pekerjaan berikutnya juga akan diblokir. Yang terbaik adalah menyelidiki dan menyelesaikan masalah ini secara manual.

    • statusReasonpesan saat pekerjaan macet: MISCONFIGURATION:SERVICE_ROLE_PERMISSIONS – Batch service role has a permission issue.

  5. Alasan: Semua lingkungan komputasi tidak valid. Untuk informasi selengkapnya, lihat INVALIDlingkungan komputasi. Catatan: Anda tidak dapat mengonfigurasi tindakan yang dapat diprogram melalui jobStateTimeLimitActions parameter untuk mengatasi kesalahan ini.

    • statusReasonpesan saat pekerjaan macet: ACTION_REQUIRED - CE(s) associated with the job queue are invalid.

  6. Alasan: AWS Batch telah mendeteksi antrian yang diblokir, tetapi tidak dapat menentukan alasannya. Catatan: Anda tidak dapat mengonfigurasi tindakan yang dapat diprogram melalui jobStateTimeLimitActions parameter untuk mengatasi kesalahan ini. Untuk informasi selengkapnya tentang pemecahan masalah, lihat Mengapa AWS Batch pekerjaan saya macet RUNNABLE AWS di re:Post.

    • statusReasonpesan saat pekerjaan macet: UNDETERMINED - Batch job is blocked, root cause is undetermined.

Jika Anda tidak menerima acara dari Acara atau Anda menerima CloudWatch peristiwa alasan yang tidak diketahui, berikut adalah beberapa penyebab umum untuk masalah ini.

Driver awslogs log tidak dikonfigurasi pada sumber daya komputasi Anda

AWS Batch pekerjaan mengirim informasi log mereka ke CloudWatch Log. Untuk mengaktifkan ini, Anda harus mengonfigurasi sumber daya komputasi Anda untuk menggunakan driver log awslogs. Misalkan Anda mendasarkan sumber daya komputasi Anda AMI dari Amazon yang ECS dioptimalkan AMI (atau Amazon Linux). Kemudian, driver ini terdaftar secara default dengan ecs-init paket. Sekarang anggaplah Anda menggunakan basis yang berbedaAMI. Kemudian, Anda harus memverifikasi bahwa driver awslogs log ditentukan sebagai driver log yang tersedia dengan variabel ECS_AVAILABLE_LOGGING_DRIVERS lingkungan saat agen ECS penampung Amazon dimulai. Untuk informasi selengkapnya, silakan lihat Menghitung spesifikasi sumber daya AMI dan Tutorial: Buat sumber daya komputasi AMI.

Sumber daya tidak mencukupi

Jika definisi pekerjaan Anda menentukan lebih banyak CPU atau sumber daya memori daripada sumber daya komputasi Anda dapat mengalokasikan, maka pekerjaan Anda tidak pernah ditempatkan. Misalnya, pekerjaan Anda menentukan 4 GiB memori, dan sumber daya komputasi Anda memiliki kurang dari yang tersedia. Maka itu adalah kasus bahwa pekerjaan tidak dapat ditempatkan pada sumber daya komputasi tersebut. Dalam hal ini, Anda harus mengurangi memori yang ditentukan dalam ketentuan tugas Anda atau menambahkan sumber daya komputasi yang lebih besar ke lingkungan Anda. Beberapa memori disediakan untuk agen ECS kontainer Amazon dan proses sistem penting lainnya. Untuk informasi selengkapnya, lihat Menghitung manajemen memori sumber daya.

Tidak ada akses internet untuk sumber daya komputasi

Sumber daya komputasi memerlukan akses untuk berkomunikasi dengan titik akhir ECS layanan Amazon. Ini bisa melalui VPC titik akhir antarmuka atau melalui Anda menghitung sumber daya yang memiliki alamat IP publik.

Untuk informasi selengkapnya tentang VPC titik akhir antarmuka, lihat Amazon ECS Interface VPC Endpoints (AWS PrivateLink) di Panduan Pengembang Layanan Amazon Elastic Container.

Jika Anda tidak memiliki VPC titik akhir antarmuka yang dikonfigurasi dan sumber daya komputasi Anda tidak memiliki alamat IP publik, maka mereka harus menggunakan terjemahan alamat jaringan (NAT) untuk menyediakan akses ini. Untuk informasi selengkapnya, lihat NATgateway di Panduan VPC Pengguna Amazon dan di panduan . Untuk informasi selengkapnya, lihat Tutorial: Buat VPC.

Batas EC2 instans Amazon tercapai

Jumlah EC2 instans Amazon yang dapat diluncurkan akun Anda Wilayah AWS ditentukan oleh kuota EC2 instans Anda. Jenis instance tertentu juga memiliki per-instance-type kuota. Untuk informasi selengkapnya tentang kuota EC2 instans Amazon akun Anda termasuk cara meminta peningkatan batas, lihat Batas EC2 Layanan Amazon di Panduan EC2 Pengguna Amazon.

Agen ECS kontainer Amazon tidak diinstal

Agen ECS penampung Amazon harus diinstal pada Amazon Machine Image (AMI) untuk membiarkan pekerjaan AWS Batch berjalan. Agen ECS penampung Amazon diinstal secara default di Amazon yang ECS dioptimalkanAMIs. Untuk informasi selengkapnya tentang agen ECS kontainer Amazon, lihat Agen ECS kontainer Amazon di Panduan Pengembang Layanan Kontainer Elastis Amazon.

Untuk informasi selengkapnya, lihat Mengapa AWS Batch pekerjaan saya terjebak dalam RUNNABLE status? di re:post.