

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

# Memecahkan masalah penskalaan
<a name="troubleshooting-v3-scaling-issues"></a>

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](configuration-of-multiple-queues-v3.md)

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-name mycluster \
   --status STOP_REQUESTED
```

Anda dapat membuat daftar aliran log yang tersedia dari node cluster dengan menggunakan [`pcluster list-cluster-log-streams`](pcluster.list-cluster-log-streams-v3.md) perintah dan pemfilteran dengan menggunakan `private-dns-name` salah satu node yang gagal atau node kepala:

```
$ pcluster list-cluster-log-streams --cluster-name mycluster --region eu-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`](pcluster.get-cluster-log-events-v3.md) perintah dan meneruskan `--log-stream-name` yang sesuai dengan salah satu log kunci yang disebutkan di bagian berikut:

```
$ pcluster get-cluster-log-events --cluster-name mycluster \
--region eu-west-1 --log-stream-name ip-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](cloudwatch-logs-v3.md) dan [CloudWatch Dasbor Amazon](cloudwatch-dashboard-v3.md).

**Topics**
+ [Log kunci untuk debugging](#troubleshooting-v3-key-logs)
+ [Melihat `InsufficientInstanceCapacity` kesalahan `slurm_resume.log` ketika saya gagal menjalankan pekerjaan, atau `clustermgtd.log` ketika saya gagal membuat cluster](#compute-node-initialization-ice-failure-v3-c2)
+ [Memecahkan masalah inisialisasi node](#troubleshooting-v3-node-init)
+ [**Memecahkan masalah penggantian dan penghentian node yang tidak terduga**](#troubleshooting-v3-unexpected-node-replacements-and-terminations)
+ [**Mengganti, mengakhiri, atau mematikan instance dan node yang bermasalah**](#replacing-terminating-or-powering-down-problematic-instances-and-nodes-v3)
+ [Status antrian (partisi) `Inactive`](#troubleshooting-v3-queues)
+ [Memecahkan masalah node dan pekerjaan lain yang diketahui](#troubleshooting-v3-other-node-job-issues)

## Log kunci untuk debugging
<a name="troubleshooting-v3-key-logs"></a>

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 adalah `ResumeProgram` log. Ini meluncurkan instance untuk node dinamis. Gunakan untuk memecahkan masalah peluncuran node dinamis.
+  `/var/log/parallelcluster/slurm_suspend.log`- Ini `SuspendProgram` log. Ini disebut ketika instance dihentikan untuk node dinamis. Gunakan untuk memecahkan masalah penghentian node dinamis. Saat Anda memeriksa log ini, Anda juga harus memeriksa `clustermgtd` log.
+  `/var/log/parallelcluster/clustermgtd`- Ini `clustermgtd` log. 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. CloudWatch `compute_console_output log`Konten yang Anda terima sama saat Anda menggunakan konsol Amazon EC2 atau AWS CLI untuk mengambil output konsol instans.

Ini adalah log kunci untuk node komputasi:
+  `/var/log/cloud-init-output.log`- Ini adalah log [cloud-init](https://cloudinit.readthedocs.io/). Ini berisi semua perintah yang dijalankan ketika sebuah instance disiapkan. Gunakan untuk memecahkan masalah inisialisasi.
+  `/var/log/parallelcluster/computemgtd`- Ini `computemgtd` log. Ini berjalan pada setiap node komputasi untuk memantau node dalam peristiwa yang tidak biasa bahwa `clustermgtd` daemon 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
<a name="compute-node-initialization-ice-failure-v3-c2"></a>

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](troubleshooting-v3-placemment-groups.md).
+ Cadangan kapasitas untuk instans dan luncurkan dengan ODCR (Pemesanan Kapasitas Sesuai Permintaan). Untuk informasi selengkapnya, lihat [Luncurkan instans dengan Pemesanan Kapasitas Sesuai Permintaan (ODCR)](launch-instances-odcr-v3.md).
+ 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](slurm-short-capacity-fail-mode-v3.md).
+ 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](slurm-multiple-instance-allocation-v3.md) dan [`Scheduling`](Scheduling-v3.md)//[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`ComputeResources`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-ComputeResources). [`Instances`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Instances)
+ Pindahkan antrian ke Availability Zone yang berbeda dengan mengubah subnet ID dalam konfigurasi cluster [`Scheduling`](Scheduling-v3.md)//[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking). [`SubnetIds`](Scheduling-v3.md#yaml-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`](Scheduling-v3.md)//[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues)/[`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking). [`SubnetIds`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-Networking-SubnetIds)

## Memecahkan masalah inisialisasi node
<a name="troubleshooting-v3-node-init"></a>

Bagian ini mencakup bagaimana Anda dapat memecahkan masalah inisialisasi node. Ini termasuk masalah di mana node gagal diluncurkan, dinyalakan, atau bergabung dengan cluster.

**Topics**
+ [Node kepala](#troubleshooting-v3-node-init.head-node)
+ [Hitung node](#troubleshooting-v3-node-init.compute-node)

### Node kepala
<a name="troubleshooting-v3-node-init.head-node"></a>

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
<a name="troubleshooting-v3-node-init.compute-node"></a>
+ 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 harus berisi log pengaturan yang mirip dengan `/var/log/chef-client.log` log pada node kepala. Sebagian besar kesalahan yang terjadi selama pengaturan harus memiliki pesan kesalahan yang terletak di `/var/log/cloud-init-output.log` log. 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 `ResumeProgram` log (`/var/log/parallelcluster/slurm_resume.log`) untuk nama node komputasi Anda untuk melihat apakah pernah `ResumeProgram` dipanggil dengan node. (Jika `ResumeProgram` tidak pernah dipanggil, Anda dapat memeriksa `slurmctld` log (`/var/log/slurmctld.log`) untuk menentukan apakah Slurm pernah mencoba memanggil `ResumeProgram` dengan node).
+ Perhatikan bahwa izin yang salah untuk `ResumeProgram` dapat menyebabkan kegagalan `ResumeProgram` secara diam-diam. Jika Anda menggunakan AMI kustom dengan modifikasi untuk `ResumeProgram` penyiapan, periksa apakah AMI dimiliki oleh `slurm` pengguna dan memiliki izin `744` (`rwxr--r--`). `ResumeProgram`
+ Jika `ResumeProgram` dipanggil, 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 `ResumeProgram` log. 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 `ResumeProgram` log. 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.log` file 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 `AWSServiceRoleForEC2Spot` terkait 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
  ```

  Untuk informasi selengkapnya, lihat [Berkeja dengan Instans Spot](spot-v3.md) di Panduan AWS ParallelCluster Pengguna dan [peran terkait Layanan untuk permintaan Instans Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests) di Panduan Pengguna *Amazon EC2*.

## **Memecahkan masalah penggantian dan penghentian node yang tidak terduga**
<a name="troubleshooting-v3-unexpected-node-replacements-and-terminations"></a>

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 `clustermgtd` log (`/var/log/parallelcluster/clustermgtd`) untuk melihat apakah `clustermgtd` diganti atau dihentikan node. Perhatikan bahwa `clustermgtd` menangani semua tindakan pemeliharaan node normal.
+  Jika `clustermgtd` diganti atau dihentikan node, harus ada pesan yang merinci mengapa tindakan ini diambil pada node. Jika alasannya terkait penjadwal (misalnya, karena node masuk`DOWN`), periksa `slurmctld` log untuk informasi lebih lanjut. Jika alasannya terkait Amazon EC2, harus ada pesan informatif yang merinci masalah terkait Amazon EC2 yang memerlukan penggantian. 
+  Jika `clustermgtd` tidak menghentikan node, periksa terlebih dahulu apakah ini merupakan penghentian yang diharapkan oleh Amazon EC2, lebih khusus lagi penghentian spot. `computemgtd`, berjalan pada node komputasi, juga dapat mengakhiri node jika `clustermgtd` ditentukan sebagai tidak sehat. Periksa `computemgtd` log (`/var/log/parallelcluster/computemgtd`) untuk melihat apakah node `computemgtd` dihentikan.

 **Node gagal** 
+ Periksa `slurmctld` log (`/var/log/slurmctld.log`) untuk melihat mengapa pekerjaan atau node gagal. Perhatikan bahwa pekerjaan secara otomatis diantrian ulang jika node gagal.
+ Jika `slurm_resume` melaporkan bahwa node diluncurkan dan `clustermgtd` melaporkan 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-id i-1234567890abcdef0 \
        --instance-initiated-shutdown-behavior "{\"Value\": \"stop\"}"
    ```
  + Aktifkan perlindungan penghentian

    ```
    $ aws ec2 modify-instance-attribute \
        --instance-id i-1234567890abcdef0 \
        --disable-api-termination
    ```
  + Tandai node agar mudah diidentifikasi.

    ```
    $ aws ec2 create-tags \
        --resources i-1234567890abcdef0 \
        --tags Key=Name,Value=QUARANTINED-Compute
    ```
  + Lepaskan node dari cluster dengan mengubah `parallelcluster:cluster-name` tag.

    ```
    $ aws ec2 create-tags \
        --resources i-1234567890abcdef0 \
        --tags Key=parallelcluster:clustername,Value=QUARANTINED-ClusterName
    ```
  + Ambil output konsol dari node dengan perintah ini.

    ```
    $ aws ec2 get-console-output --instance-id i-1234567890abcdef0 --output text
    ```

## **Mengganti, mengakhiri, atau mematikan instance dan node yang bermasalah**
<a name="replacing-terminating-or-powering-down-problematic-instances-and-nodes-v3"></a>
+ **Log yang berlaku:**
  + `/var/log/parallelcluster/clustermgtd`(simpul kepala)
  + `/var/log/parallelcluster/slurm_suspend.log`(simpul kepala)
+ Dalam kebanyakan kasus, `clustermgtd` menangani semua tindakan penghentian instance yang diharapkan. Periksa di `clustermgtd` log untuk melihat mengapa gagal mengganti atau mengakhiri node.
+ Untuk node dinamis gagal[`SlurmSettings`Properti](Scheduling-v3.md#Scheduling-v3-SlurmSettings.properties), periksa `SuspendProgram` log untuk melihat apakah `SuspendProgram` dipanggil `slurmctld` dengan node tertentu sebagai argumen. Perhatikan bahwa `SuspendProgram` tidak benar-benar melakukan tindakan apa pun. Sebaliknya, itu hanya log ketika dipanggil. Semua penghentian dan `NodeAddr` reset instance dilakukan oleh`clustermgtd`. Slurmmenempatkan node kembali ke `POWER_SAVING` keadaan setelah `SuspendTimeout` secara otomatis.
+ Jika node komputasi gagal terus menerus karena kegagalan bootstrap, verifikasi apakah node tersebut diluncurkan dengan [Slurm mode terlindungi cluster](slurm-protected-mode-v3.md) diaktifkan. Jika mode terlindungi tidak diaktifkan, ubah pengaturan mode terlindungi untuk mengaktifkan mode terlindungi. Memecahkan masalah dan memperbaiki skrip bootstrap.

## Status antrian (partisi) `Inactive`
<a name="troubleshooting-v3-queues"></a>

Jika Anda menjalankan `sinfo` dan output menunjukkan antrian dengan `AVAIL` status`inact`, klaster Anda mungkin telah [Slurm mode terlindungi cluster](slurm-protected-mode-v3.md) diaktifkan dan antrian telah disetel ke `INACTIVE` status untuk jangka waktu yang telah ditentukan sebelumnya.

## Memecahkan masalah node dan pekerjaan lain yang diketahui
<a name="troubleshooting-v3-other-node-job-issues"></a>

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.