Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah penskalaan
Bagian ini relevan dengan cluster yang diinstal menggunakan AWS ParallelCluster versi 3.0.0 dan yang lebih baru dengan penjadwal pekerjaan. Slurm Untuk informasi selengkapnya tentang mengonfigurasi beberapa antrian, lihat. Konfigurasi beberapa antrian
Jika salah satu cluster yang sedang berjalan mengalami masalah, tempatkan klaster dalam STOPPED status dengan menjalankan perintah berikut sebelum Anda mulai memecahkan masalah. Ini mencegah timbulnya biaya tak terduga.
$pcluster update-compute-fleet --cluster-namemycluster\ --status STOP_REQUESTED
Anda dapat membuat daftar aliran log yang tersedia dari node cluster dengan menggunakan pcluster list-cluster-log-streams perintah dan pemfilteran dengan menggunakan private-dns-name salah satu node yang gagal atau node kepala:
$pcluster list-cluster-log-streams --cluster-namemycluster--regioneu-west-1\ --filters 'Name=private-dns-name,Values=ip-10-0-0-101'
Kemudian, Anda dapat mengambil konten aliran log untuk menganalisisnya dengan menggunakan pcluster get-cluster-log-events perintah dan meneruskan --log-stream-name yang sesuai dengan salah satu log kunci yang disebutkan di bagian berikut:
$pcluster get-cluster-log-events --cluster-namemycluster\ --regioneu-west-1--log-stream-nameip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init
AWS ParallelCluster membuat aliran CloudWatch log cluster di grup log. Anda dapat melihat log ini di CloudWatch konsol Dasbor Kustom atau grup Log. Untuk informasi selengkapnya, lihat Integrasi dengan Amazon CloudWatch Logs dan CloudWatch Dasbor Amazon.
Topik
Log kunci untuk debugging
Tabel berikut memberikan ikhtisar log kunci untuk node kepala:
-
/var/log/cfn-init.log- Ini adalah log CloudFormation init. Ini berisi semua perintah yang dijalankan ketika sebuah instance disiapkan. Gunakan untuk memecahkan masalah inisialisasi. -
/var/log/chef-client.log- Ini adalah log klien Chef. Ini berisi semua perintah yang dijalankan melalui chef/CINC. Gunakan untuk memecahkan masalah inisialisasi. -
/var/log/parallelcluster/slurm_resume.log- Ini adalahResumeProgramlog. Ini meluncurkan instance untuk node dinamis. Gunakan untuk memecahkan masalah peluncuran node dinamis. -
/var/log/parallelcluster/slurm_suspend.log- IniSuspendProgramlog. Ini disebut ketika instance dihentikan untuk node dinamis. Gunakan untuk memecahkan masalah penghentian node dinamis. Saat Anda memeriksa log ini, Anda juga harus memeriksaclustermgtdlog. -
/var/log/parallelcluster/clustermgtd- Iniclustermgtdlog. Ini berjalan sebagai daemon terpusat yang mengelola sebagian besar tindakan operasi cluster. Gunakan untuk memecahkan masalah peluncuran, penghentian, atau operasi klaster apa pun. -
/var/log/slurmctld.log- Ini adalah log daemon Slurm kontrol. AWS ParallelCluster tidak membuat keputusan penskalaan. Sebaliknya, ia hanya mencoba meluncurkan sumber daya untuk memenuhi Slurm persyaratan. Ini berguna untuk masalah penskalaan dan alokasi, masalah terkait pekerjaan, dan masalah peluncuran dan penghentian terkait penjadwal. -
/var/log/parallelcluster/compute_console_output- Log ini merekam output konsol dari subset sampel node komputasi statis yang tiba-tiba dihentikan. Gunakan log ini jika node komputasi statis berakhir dan log node komputasi tidak tersedia di. CloudWatchcompute_console_output logKonten yang Anda terima sama saat Anda menggunakan EC2 konsol Amazon atau AWS CLI untuk mengambil keluaran konsol instance.
Ini adalah log kunci untuk node komputasi:
-
/var/log/cloud-init-output.log- Ini adalah log cloud-init. Ini berisi semua perintah yang dijalankan ketika sebuah instance disiapkan. Gunakan untuk memecahkan masalah inisialisasi. -
/var/log/parallelcluster/computemgtd- Inicomputemgtdlog. Ini berjalan pada setiap node komputasi untuk memantau node dalam peristiwa yang tidak biasa bahwaclustermgtddaemon pada node kepala sedang offline. Gunakan untuk memecahkan masalah penghentian yang tidak terduga. -
/var/log/slurmd.log- Ini adalah log Slurm daemon komputasi. Gunakan untuk memecahkan masalah inisialisasi dan kegagalan komputasi.
Melihat InsufficientInstanceCapacity kesalahan slurm_resume.log ketika saya gagal menjalankan pekerjaan, atau clustermgtd.log ketika saya gagal membuat cluster
Jika cluster menggunakan Slurm penjadwal, Anda mengalami masalah kapasitas yang tidak mencukupi. Jika tidak ada cukup instance yang tersedia saat permintaan peluncuran instance dibuat, InsufficientInstanceCapacity kesalahan akan dikembalikan.
Untuk kapasitas instance statis, Anda dapat menemukan kesalahan dalam clustermgtd log di/var/log/parallelcluster/clustermgtd.
Untuk kapasitas instance dinamis, Anda dapat menemukan kesalahan di ResumeProgram log di/var/log/parallelcluster/slurm_resume.log.
Pesannya terlihat mirip dengan contoh berikut:
An error occurred (InsufficientInstanceCapacity) when calling the RunInstances/CreateFleet operation...
Berdasarkan kasus penggunaan Anda, pertimbangkan untuk menggunakan salah satu metode berikut untuk menghindari jenis pesan kesalahan ini:
-
Nonaktifkan grup penempatan jika diaktifkan. Untuk informasi selengkapnya, lihat Grup penempatan dan masalah peluncuran instance.
-
Cadangan kapasitas untuk instans dan luncurkan dengan ODCR (Pemesanan Kapasitas Sesuai Permintaan). Untuk informasi selengkapnya, lihat Luncurkan instans dengan Reservasi Kapasitas Sesuai Permintaan (ODCR).
-
Konfigurasikan beberapa sumber daya komputasi dengan tipe instans yang berbeda. Jika beban kerja Anda tidak memerlukan jenis instans tertentu, Anda dapat memanfaatkan kegagalan kapasitas yang tidak mencukupi dengan beberapa sumber daya komputasi. Untuk informasi selengkapnya, lihat Slurmcluster cepat tidak mencukupi kapasitas fail-over.
-
Konfigurasikan beberapa tipe instans dalam sumber daya komputasi yang sama, dan manfaatkan alokasi tipe instans ganda. Untuk informasi selengkapnya tentang mengonfigurasi beberapa instance, lihat Beberapa alokasi tipe instans dengan Slurm dan Scheduling//SlurmQueues/ComputeResources. Instances
-
Pindahkan antrian ke Availability Zone yang berbeda dengan mengubah subnet ID dalam konfigurasi cluster Scheduling//SlurmQueues/Networking. SubnetIds
-
Jika beban kerja Anda tidak digabungkan dengan erat, rentangkan antrian di berbagai Availability Zone. Untuk informasi selengkapnya tentang mengonfigurasi beberapa subnet, lihat Scheduling//SlurmQueues/Networking. SubnetIds
Memecahkan masalah inisialisasi node
Bagian ini mencakup bagaimana Anda dapat memecahkan masalah inisialisasi node. Ini termasuk masalah di mana node gagal diluncurkan, dinyalakan, atau bergabung dengan cluster.
Simpul kepala
Log yang berlaku:
-
/var/log/cfn-init.log -
/var/log/chef-client.log -
/var/log/parallelcluster/clustermgtd -
/var/log/parallelcluster/slurm_resume.log -
/var/log/slurmctld.log
Periksa /var/log/cfn-init.log dan /var/log/chef-client.log log atau aliran log yang sesuai. Log ini berisi semua tindakan yang dijalankan saat node kepala disiapkan. Sebagian besar kesalahan yang terjadi selama pengaturan harus memiliki pesan kesalahan yang terletak di /var/log/chef-client.log log. Jika OnNodeStart atau OnNodeConfigured skrip ditentukan dalam konfigurasi cluster, periksa kembali apakah skrip berjalan dengan sukses melalui pesan log.
Ketika sebuah cluster dibuat, node kepala harus menunggu node komputasi untuk bergabung dengan cluster sebelum dapat bergabung dengan cluster. Karena itu, jika node komputasi gagal bergabung dengan cluster, maka node kepala juga gagal. Anda dapat mengikuti salah satu dari rangkaian prosedur ini, tergantung pada jenis catatan komputasi yang Anda gunakan, untuk memecahkan masalah jenis ini:
Hitung node
-
Log yang berlaku:
-
/var/log/cloud-init-output.log -
/var/log/slurmd.log
-
-
Jika node komputasi diluncurkan, periksa terlebih dahulu
/var/log/cloud-init-output.log, yang seharusnya berisi log penyiapan yang mirip dengan/var/log/chef-client.loglog pada node kepala. Sebagian besar kesalahan yang terjadi selama pengaturan harus memiliki pesan kesalahan yang terletak di/var/log/cloud-init-output.loglog. Jika skrip pra-instal atau pasca-instal ditentukan dalam konfigurasi cluster, periksa apakah skrip tersebut berhasil dijalankan. -
Jika Anda menggunakan AMI kustom dengan modifikasi Slurm konfigurasi, maka mungkin ada kesalahan Slurm terkait yang mencegah node komputasi bergabung dengan cluster. Untuk kesalahan terkait penjadwal, periksa log.
/var/log/slurmd.log
Node komputasi dinamis:
-
Cari
ResumeProgramlog (/var/log/parallelcluster/slurm_resume.log) untuk nama node komputasi Anda untuk melihat apakah pernahResumeProgramdipanggil dengan node. (JikaResumeProgramtidak pernah dipanggil, Anda dapat memeriksaslurmctldlog (/var/log/slurmctld.log) untuk menentukan apakah Slurm pernah mencoba memanggilResumeProgramdengan node). -
Perhatikan bahwa izin yang salah untuk
ResumeProgramdapat menyebabkan kegagalanResumeProgramsecara diam-diam. Jika Anda menggunakan AMI kustom dengan modifikasi untukResumeProgrampenyiapan, periksa apakah AMI dimiliki olehslurmpengguna dan memiliki izin744(rwxr--r--).ResumeProgram -
Jika
ResumeProgramdipanggil, periksa untuk melihat apakah sebuah instance diluncurkan untuk node. Jika tidak ada instance yang diluncurkan, Anda dapat melihat pesan kesalahan yang menjelaskan kegagalan peluncuran. -
Jika instance diluncurkan, maka mungkin ada masalah selama proses penyiapan. Anda akan melihat alamat IP pribadi dan ID instance yang sesuai dari
ResumeProgramlog. Selain itu, Anda dapat melihat log pengaturan yang sesuai untuk contoh tertentu. Untuk informasi selengkapnya tentang pemecahan masalah kesalahan penyiapan dengan node komputasi, lihat bagian selanjutnya.
Node komputasi statis:
-
Periksa log
clustermgtd(/var/log/parallelcluster/clustermgtd) untuk melihat apakah instance diluncurkan untuk node. Jika tidak diluncurkan, harus ada pesan kesalahan yang jelas yang merinci kegagalan peluncuran. -
Jika instance diluncurkan, ada beberapa masalah selama proses penyiapan. Anda akan melihat alamat IP pribadi dan ID instance yang sesuai dari
ResumeProgramlog. Selain itu, Anda dapat melihat log pengaturan yang sesuai untuk instance tertentu.
Node komputasi yang didukung oleh Instans Spot:
-
Jika ini pertama kalinya Anda menggunakan Instans Spot dan pekerjaan tetap dalam PD (status tertunda), periksa kembali
/var/log/parallelcluster/slurm_resume.logfile tersebut. Anda mungkin akan menemukan kesalahan seperti berikut:2022-05-20 13:06:24,796 - [slurm_plugin.common:add_instances_for_nodes] - ERROR - Encountered exception when launching instances for nodes (x1) ['spot-dy-t2micro-2']: An error occurred (AuthFailure.ServiceLinkedRoleCreationNotPermitted) when calling the RunInstances operation: The provided credentials do not have permission to create the service-linked role for Amazon EC2 Spot Instances.Saat menggunakan Instans Spot, peran
AWSServiceRoleForEC2Spotterkait layanan harus ada di akun Anda. Untuk membuat peran ini di akun Anda menggunakan AWS CLI, jalankan perintah berikut:$aws iam create-service-linked-role --aws-service-name spot.amazonaws.com.rproxy.govskope.caUntuk informasi selengkapnya, lihat Berkeja dengan Instans Spot di Panduan AWS ParallelCluster Pengguna dan peran terkait Layanan untuk permintaan Instans Spot di Panduan EC2 Pengguna Amazon.
Memecahkan masalah penggantian dan penghentian node yang tidak terduga
Bagian ini terus mengeksplorasi bagaimana Anda dapat memecahkan masalah terkait node, khususnya ketika node diganti atau dihentikan secara tidak terduga.
-
Log yang berlaku:
-
/var/log/parallelcluster/clustermgtd(simpul kepala) -
/var/log/slurmctld.log(simpul kepala) -
/var/log/parallelcluster/computemgtd(simpul komputasi)
-
Node diganti atau dihentikan secara tak terduga
-
Periksa
clustermgtdlog (/var/log/parallelcluster/clustermgtd) untuk melihat apakahclustermgtddiganti atau dihentikan node. Perhatikan bahwaclustermgtdmenangani semua tindakan pemeliharaan node normal. -
Jika
clustermgtddiganti atau dihentikan node, harus ada pesan yang merinci mengapa tindakan ini diambil pada node. Jika alasannya terkait penjadwal (misalnya, karena node masukDOWN), periksaslurmctldlog untuk informasi lebih lanjut. Jika alasannya EC2 terkait Amazon, harus ada pesan informatif yang merinci masalah EC2 terkait Amazon yang memerlukan penggantian. -
Jika
clustermgtdtidak menghentikan node, periksa terlebih dahulu apakah ini adalah penghentian yang diharapkan oleh Amazon EC2 , lebih khusus lagi penghentian spot.computemgtd, berjalan pada node komputasi, juga dapat mengakhiri node jikaclustermgtdditentukan sebagai tidak sehat. Periksacomputemgtdlog (/var/log/parallelcluster/computemgtd) untuk melihat apakah nodecomputemgtddihentikan.
Node gagal
-
Periksa
slurmctldlog (/var/log/slurmctld.log) untuk melihat mengapa pekerjaan atau node gagal. Perhatikan bahwa pekerjaan secara otomatis diantrian ulang jika node gagal. -
Jika
slurm_resumemelaporkan bahwa node diluncurkan danclustermgtdmelaporkan setelah beberapa menit bahwa tidak ada instance yang sesuai di Amazon EC2 untuk node tersebut, node mungkin gagal selama penyiapan. Untuk mengambil log dari compute (/var/log/cloud-init-output.log), lakukan langkah-langkah berikut:-
Kirim pekerjaan untuk membiarkan Slurm putaran node baru.
-
Tunggu node komputasi dimulai.
-
Ubah perilaku shutdown yang dimulai instance sehingga node komputasi yang gagal akan dihentikan daripada dihentikan.
$aws ec2 modify-instance-attribute \ --instance-idi-1234567890abcdef0\ --instance-initiated-shutdown-behavior "{\"Value\": \"stop\"}" -
Aktifkan perlindungan penghentian
$aws ec2 modify-instance-attribute \ --instance-idi-1234567890abcdef0\ --disable-api-termination -
Tandai node agar mudah diidentifikasi.
$aws ec2 create-tags \ --resourcesi-1234567890abcdef0\ --tags Key=Name,Value=QUARANTINED-Compute -
Lepaskan node dari cluster dengan mengubah
parallelcluster:cluster-nametag.$aws ec2 create-tags \ --resourcesi-1234567890abcdef0\ --tags Key=parallelcluster:clustername,Value=QUARANTINED-ClusterName -
Ambil output konsol dari node dengan perintah ini.
$aws ec2 get-console-output --instance-idi-1234567890abcdef0--output text
-
Mengganti, mengakhiri, atau mematikan instance dan node yang bermasalah
-
Log yang berlaku:
-
/var/log/parallelcluster/clustermgtd(simpul kepala) -
/var/log/parallelcluster/slurm_suspend.log(simpul kepala)
-
-
Dalam kebanyakan kasus,
clustermgtdmenangani semua tindakan penghentian instance yang diharapkan. Periksa diclustermgtdlog untuk melihat mengapa gagal mengganti atau mengakhiri node. -
Untuk node dinamis gagalSlurmSettingsProperti, periksa
SuspendProgramlog untuk melihat apakahSuspendProgramdipanggilslurmctlddengan node tertentu sebagai argumen. Perhatikan bahwaSuspendProgramtidak benar-benar melakukan tindakan apa pun. Sebaliknya, itu hanya log ketika dipanggil. Semua penghentian danNodeAddrreset instance dilakukan olehclustermgtd. Slurmmenempatkan node kembali kePOWER_SAVINGkeadaan setelahSuspendTimeoutsecara otomatis. -
Jika node komputasi gagal terus menerus karena kegagalan bootstrap, verifikasi apakah node tersebut diluncurkan dengan Slurm mode terlindungi cluster diaktifkan. Jika mode terlindungi tidak diaktifkan, ubah pengaturan mode terlindungi untuk mengaktifkan mode terlindungi. Memecahkan masalah dan memperbaiki skrip bootstrap.
Status antrian (partisi) Inactive
Jika Anda menjalankan sinfo dan output menunjukkan antrian dengan AVAIL statusinact, klaster Anda mungkin telah Slurm mode terlindungi cluster diaktifkan dan antrian telah disetel ke INACTIVE status untuk jangka waktu yang telah ditentukan sebelumnya.
Memecahkan masalah node dan pekerjaan lain yang diketahui
Jenis lain dari masalah yang diketahui adalah yang AWS ParallelCluster mungkin gagal mengalokasikan pekerjaan atau membuat keputusan penskalaan. Dengan jenis masalah ini, AWS ParallelCluster hanya meluncurkan, mengakhiri, atau memelihara sumber daya sesuai dengan instruksi. Slurm Untuk masalah ini, periksa slurmctld log untuk memecahkan masalah mereka.