Core dump terjadi ketika suatu program berhenti secara tidak normal atau mengalami crash. Sistem operasi menyimpan konten memori program ke dalam sebuah file untuk keperluan debugging dan analisis selanjutnya. Topik ini menjelaskan cara mengaktifkan coredump untuk Elastic Container Instance (ECI). Ketika sebuah kontainer berhenti secara tidak normal, Anda dapat melihat dan menganalisis file core yang dihasilkan untuk menemukan penyebab masalah dan memperbaiki program tersebut.
Informasi latar belakang
Di Linux, jika suatu program berhenti secara tak terduga atau mengalami crash, sistem operasi mencatat status memori program pada saat itu dan menyimpannya ke dalam sebuah file. Tindakan ini disebut core dump. Anda kemudian dapat melihat dan menganalisis file core yang dihasilkan untuk menentukan penyebab masalah tersebut.
Gambar berikut menunjukkan sinyal-sinyal yang mendukung coredump di Linux. Aksi untuk sinyal-sinyal ini adalah Core.
Untuk informasi lebih lanjut, lihat file coredump.
Tinjauan fungsi
Secara default, coredump dinonaktifkan untuk instans ECI guna mencegah ketidaktersediaan layanan akibat penggunaan disk berlebihan. Anda dapat mengaktifkan coredump dengan salah satu cara berikut sesuai kebutuhan:
Metode 1: Aktifkan tugas O&M coredump
Setelah Anda mengaktifkan coredump secara manual, sebuah tugas O&M akan dibuat. Ketika sebuah kontainer berhenti secara tidak normal atau keluar, coredump yang dipicu secara otomatis menyimpan file core yang dihasilkan ke Object Storage Service (OSS).
Metode 2: Sesuaikan path penyimpanan file core
Anda dapat menyimpan file core ke penyimpanan eksternal. Setelah Anda menetapkan path penyimpanan, coredump akan diaktifkan secara otomatis. Ketika sebuah kontainer berhenti secara tidak normal atau keluar, coredump yang dipicu menyimpan file core yang dihasilkan ke path yang ditentukan dalam penyimpanan eksternal.
Metode 1 mudah digunakan tetapi memiliki batasan terkait periode validitas dan wilayah ketersediaannya. Metode ini cocok untuk debugging dan diagnostik program sementara.
Tugas O&M yang dihasilkan merupakan tugas satu kali. Setelah tugas berhasil dijalankan dan mengambil file core, coredump akan dinonaktifkan. Tugas O&M ini berlaku selama 12 jam. Setelah periode tersebut, tugas menjadi tidak valid.
Metode ini tidak didukung di wilayah-wilayah berikut: Tiongkok (Ulanqab), Tiongkok (Heyuan), Tiongkok (Guangzhou), Tiongkok (Nanjing - Local Region) (decommissioning), Filipina (Manila), Korea Selatan (Seoul), dan Thailand (Bangkok).
Metode 2 mengharuskan Anda mengonfigurasi penyimpanan eksternal. Jika suatu program tidak stabil, metode ini memastikan file core dapat diambil. Namun, jika program bermasalah, restart berulang dapat menghasilkan banyak file core.
Metode 1: Aktifkan tugas O&M coredump
Konsol
Masuk ke Konsol Elastic Container Instance.
Aktifkan coredump untuk instans ECI.
Klik ID instans target untuk membuka halaman detail instans.
Klik tab O&M, pilih tab Coredump, lalu klik Enable.
Setelah coredump diaktifkan, sebuah tugas O&M akan dibuat. Jika coredump tidak dipicu, status tugas adalah Pending.

Picu coredump.
Sambungkan ke instans ECI. Di dalam kontainer, jalankan perintah
sleep 100lalu tekanCtrl+\untuk memicu coredump. File core yang dihasilkan akan disimpan secara otomatis ke OSS.
Unduh file core.
Setelah coredump dipicu dan file core dihasilkan, status tugas O&M berubah menjadi Successful. Klik Download di kolom Hasil untuk menyimpan file core ke komputer lokal Anda.
CatatanJika unduhan tidak dimulai, periksa pengaturan izin situs web di browser Anda.
OpenAPI
Aktifkan coredump untuk instans ECI.
Panggil operasi CreateInstanceOpsTask untuk membuat tugas O&M. Tentukan instans ECI target, atur parameter `OpsType` menjadi
coredump, dan atur parameter `OpsValue` menjadienable. Hal ini akan mengaktifkan coredump. Untuk informasi lebih lanjut, lihat CreateInstanceOpsTask.CatatanPastikan parameter `CorePattern` tidak diatur saat instans dibuat.
Picu coredump.
Sambungkan ke instans ECI. Di dalam kontainer, jalankan perintah
sleep 100lalu tekanCtrl+\untuk memicu coredump. File core yang dihasilkan akan disimpan secara otomatis ke OSS.
Unduh file core.
Panggil operasi DescribeInstanceOpsRecords untuk melihat hasil tugas O&M. `ResultContent` dalam tanggapan berisi URL file core di OSS. Anda dapat mengakses URL ini untuk mengunduh file core tersebut.
Metode 2: Sesuaikan path penyimpanan file core
File core biasanya digunakan untuk analisis masalah offline. Oleh karena itu, Anda harus menetapkan path penyimpanan file core ke penyimpanan eksternal, bukan ke path lokal dalam kontainer. Hal ini mencegah hilangnya file core jika kontainer keluar. ECI memungkinkan Anda menyesuaikan path penyimpanan file core. Setelah Anda menetapkan path tersebut, coredump akan diaktifkan secara otomatis.
Saat Anda memanggil operasi CreateContainerGroup untuk membuat instans ECI, Anda dapat meneruskan parameter `CorePattern` untuk menetapkan path penyimpanan file core. Tabel berikut menjelaskan parameter terkait. Untuk informasi lebih lanjut, lihat CreateContainerGroup.
Contoh ini menggunakan `NFSVolume`. Anda harus mengonfigurasi parameter `Volume` sesuai dengan jenis volume aktual Anda.
Nama | Tipe | Contoh | Deskripsi |
CorePattern | String | /data/dump-a/core | Direktori kustom untuk menyimpan file core dump. Penting Path tidak boleh diawali dengan tanda pipa ( |
Volume.N.Name | String | volume1 | Nama volume. |
Volume.N.Type | String | NFSVolume | Tipe volume. Topik ini menggunakan NFSVolume sebagai contoh. |
Volume.N.NFSVolume.Path | String | /dump | Path volume NFS. |
Volume.N.NFSVolume.Server | String | 143b24****-gfn3.cn-beijing.nas.aliyuncs.com | Alamat server NFS. Jika Anda menggunakan Alibaba Cloud File Storage NAS, ini adalah alamat titik pemasangan dari sistem file NAS. |
Container.N.VolumeMount.N.Name | String | volume1 | Nama volume yang dipasang ke kontainer. Nilainya harus sama dengan nilai `Volume.N.Name`. |
Container.N.VolumeMount.N.MountPath | String | /data/dump-a/ | Direktori pemasangan. Konten dalam direktori ini akan ditimpa oleh konten volume. Pastikan Anda memasukkan direktori yang benar. |
Contoh berikut menunjukkan cara menggunakan sistem file NAS sebagai penyimpanan eksternal:
Buat instans ECI bernama Instans A, pasang sistem file NAS, dan tetapkan path penyimpanan file core.
Saat Anda memanggil operasi CreateContainerGroup untuk membuat Instans A, teruskan parameter berikut untuk memasang direktori
/dump/dari sistem file NAS ke direktori/data/dump-a/kontainer dan tetapkan path penyimpanan file core menjadi/data/dump-a/core.ContainerGroupName=test-a SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Deklarasikan sebuah volume Volume.1.Name=volume1 Volume.1.Type=NFSVolume Volume.1.NFSVolume.Path=/dump/ Volume.1.NFSVolume.Server=143b24****-gfn3.cn-beijing.nas.aliyuncs.com # Pasang volume ke kontainer Container.1.Name=nginx Container.1.Image=registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=volume1 Container.1.VolumeMount.1.MountPath=/data/dump-a/ # Tetapkan path penyimpanan file core CorePattern=/data/dump-a/corePicu coredump di direktori mana pun dalam kontainer pada Instans A.
Sebagaimana ditunjukkan pada contoh berikut, jalankan perintah
sleep 100di dalam kontainer lalu tekan tombolCtrldan\secara bersamaan untuk memicu coredump. File core disimpan ke path/data/dump-a/dalam kontainer.
Lepaskan instans ECI A.
Pasang sistem file NAS yang sama ke instans ECI lain, yaitu Instans B.
Saat Anda memanggil operasi CreateContainerGroup untuk membuat Instans B, teruskan parameter berikut untuk memasang direktori
/dump/dari sistem file NAS yang sama ke direktori/data/dump-b/kontainer.ContainerGroupName=test-nas-b SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Deklarasikan sebuah volume Volume.1.Name=volume1 Volume.1.Type=NFSVolume Volume.1.NFSVolume.Path=/dump/ Volume.1.NFSVolume.Server=143b24****-gfn3.cn-beijing.nas.aliyuncs.com # Pasang volume ke kontainer Container.1.Name=nginx Container.1.Image=registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=volume1 Container.1.VolumeMount.1.MountPath=/data/dump-b/Lihat file core di kontainer Instans B.
Sebagaimana ditunjukkan pada contoh berikut, Anda dapat menemukan file core di path
/data/dump-b/kontainer. Karena file core disimpan ke penyimpanan eksternal, file tersebut tidak hilang saat Instans A dilepas. Anda masih dapat melihat dan menganalisis file core tersebut.
FAQ
Setelah saya memicu coredump, unduhan tidak dimulai saat saya mengklik Download di konsol. Apa yang harus saya lakukan?
Jika unduhan tidak dimulai, periksa pengaturan izin situs web di browser Anda. Misalnya, jika Anda menggunakan browser Chrome, Anda dapat memberikan izin dengan cara berikut:
Buka Konsol Elastic Container Instance. Di bilah alamat browser Anda, klik ikon
dan pilih Site Settings.
Atur Insecure Content menjadi Allow.
