Coredump adalah file yang berisi status memori aplikasi saat mengalami crash atau dihentikan secara tidak terduga. Sistem operasi membuat file ini untuk keperluan debugging dan analisis lebih lanjut. Topik ini menjelaskan cara mengaktifkan coredump pada instans Elastic Container Instance (ECI), sehingga Anda dapat menganalisis file core dari terminasi kontainer yang tidak terduga untuk mengidentifikasi penyebab masalah dan memperbaiki aplikasi.
Informasi latar belakang
Di Linux, ketika aplikasi dihentikan secara tidak terduga atau mengalami crash, sistem operasi merekam status memorinya dan menyimpannya ke dalam sebuah file—proses ini dikenal sebagai coredump. File core tersebut kemudian dapat dianalisis untuk mengidentifikasi akar permasalahan.
Gambar berikut menunjukkan sinyal Linux yang memicu coredump. Untuk sinyal-sinyal ini, aksi default-nya adalah Core.
Untuk informasi lebih lanjut, lihat coredump file.
Ikhtisar
Secara default, coredump dinonaktifkan pada instans ECI untuk mencegah penggunaan disk berlebihan yang dapat mengganggu layanan. Anda dapat mengaktifkan coredump dengan salah satu metode berikut:
-
Metode 1: Aktifkan task O&M coredump
Setelah Anda mengaktifkan coredump secara manual, sistem akan membuat task O&M. Saat kontainer dihentikan secara abnormal atau keluar, file core yang dihasilkan akan secara otomatis disimpan ke OSS.
-
Metode 2: Sesuaikan path penyimpanan file core
Anda dapat menyimpan file core di penyimpanan eksternal dengan menentukan path penyimpanan khusus. Setelah path ditetapkan, coredump akan diaktifkan secara otomatis. Saat kontainer mengalami crash atau keluar secara tidak terduga, file core yang dihasilkan akan disimpan ke path yang ditentukan.
-
Metode 1 mudah digunakan tetapi memiliki batasan waktu dan wilayah. Metode ini cocok untuk debugging dan diagnostik sementara.
-
Task O&M yang dihasilkan merupakan task satu kali pakai. Setelah file core berhasil ditangkap, coredump akan secara otomatis dinonaktifkan. Task O&M berlaku selama 12 jam dan kedaluwarsa jika tidak dipicu dalam periode tersebut.
-
Metode ini tidak didukung di wilayah berikut: Tiongkok (Ulanqab), Tiongkok (Heyuan), Tiongkok (Guangzhou), Tiongkok (Nanjing), Filipina (Manila), Korea Selatan (Seoul), dan Thailand (Bangkok).
-
-
Metode 2 mengharuskan Anda mengonfigurasi penyimpanan eksternal. Jika aplikasi Anda tidak stabil, metode ini dapat memastikan file core tertangkap. Namun, jika aplikasi bermasalah terus-menerus restart, sejumlah besar file core dapat dihasilkan.
Metode 1: Aktifkan task 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 Anda mengaktifkan coredump, sistem akan menghasilkan task O&M. Jika coredump belum dipicu, status task-nya adalah Pending.
-
-
Picu coredump.
Sambungkan ke instans ECI. Di dalam kontainer, jalankan perintah
sleep 100, lalu tekanCtrl+\untuk memicu coredump. File core yang dihasilkan akan secara otomatis disimpan ke OSS.# sleep 100 ^\Quit (core dumped) -
Unduh file core.
Setelah coredump dipicu dan file core dihasilkan, status task O&M berubah menjadi Successful. Klik Download di kolom Result untuk mengunduh file core.
CatatanJika unduhan tidak dimulai, periksa pengaturan izin situs di browser Anda.
API
-
Aktifkan coredump untuk instans ECI.
Panggil operasi CreateInstanceOpsTask untuk membuat task O&M. Tentukan instans ECI target, atur parameter OpsType ke
coredump, dan atur parameter OpsValue keenable. Untuk informasi lebih lanjut, lihat CreateInstanceOpsTask.CatatanSaat menentukan instans ECI, pastikan parameter CorePattern tidak diatur saat pembuatan instans.
-
Picu coredump.
Sambungkan ke instans ECI. Di dalam kontainer, jalankan perintah
sleep 100, lalu tekanCtrl+\untuk memicu coredump. File core yang dihasilkan akan secara otomatis disimpan ke OSS. -
Unduh file core.
Panggil operasi DescribeInstanceOpsRecords untuk melihat hasil task O&M. Di dalam respons, bidang ResultContent berisi URL file core di OSS. Anda dapat mengakses URL tersebut untuk mengunduh file core.
Metode 2: Sesuaikan path penyimpanan
File core biasanya digunakan untuk analisis offline. Oleh karena itu, kami menyarankan agar Anda menyimpannya ke penyimpanan eksternal, bukan ke path lokal di dalam kontainer, guna mencegah hilangnya file core saat kontainer keluar. ECI memungkinkan Anda menentukan path penyimpanan khusus untuk file core. Setelah path tersebut ditetapkan, coredump akan diaktifkan secara otomatis.
Saat Anda memanggil operasi CreateContainerGroup untuk membuat instans ECI, Anda dapat meneruskan parameter CorePattern untuk mengatur path penyimpanan file core. Tabel berikut menjelaskan parameter terkait. Untuk informasi lebih lanjut, lihat CreateContainerGroup.
Konfigurasikan parameter volume sesuai dengan jenis volume Anda.
|
Parameter |
Tipe |
Contoh |
Deskripsi |
|
CorePattern |
String |
/data/dump-a/core |
Path penyimpanan file core. Path ini harus berada di dalam volume yang dimount. Penting
Path tidak boleh diawali dengan karakter pipe ( |
|
Volume.N.Name |
String |
volume1 |
Nama volume. |
|
Volume.N.Type |
String |
NFSVolume |
Jenis volume. Pada contoh ini, NFSVolume digunakan. |
|
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 Penyimpanan File NAS Alibaba Cloud, ini adalah alamat mount point dari sistem file NAS. |
|
Container.N.VolumeMount.N.Name |
String |
volume1 |
Nama volume yang akan dimount. Nilai ini harus sesuai dengan nilai Volume.N.Name. |
|
Container.N.VolumeMount.N.MountPath |
String |
/data/dump-a/ |
Path mount. Konten volume akan menimpa konten apa pun yang sudah ada di path mount di dalam kontainer. Pastikan path-nya benar. |
Contoh berikut menunjukkan cara menggunakan sistem file Penyimpanan File NAS Alibaba Cloud sebagai penyimpanan eksternal:
-
Buat instans ECI bernama instance A, mount sistem file NAS, dan atur path penyimpanan file core.
Panggil operasi CreateContainerGroup untuk membuat instance A. Atur parameter berikut untuk mount direktori
/dump/dari sistem file NAS ke/data/dump-a/di dalam kontainer, dan atur path penyimpanan file core ke/data/dump-a/core.ContainerGroupName=test-a SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Declare a 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 # Mount the volume to the container 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/ # Set the save path for core files CorePattern=/data/dump-a/core -
Picu coredump di direktori mana pun di dalam kontainer instance A.
Di dalam kontainer, jalankan perintah
sleep 100, lalu tekanCtrl+\untuk memicu coredump. File core disimpan ke/data/dump-a/coredi dalam kontainer.# ls bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # cd /data/dump-a/ # ls # sleep 100 ^\Quit (core dumped) # ls core.17 -
Lepaskan instance A.
-
Mount sistem file NAS yang sama ke instans ECI lain bernama instance B.
Panggil operasi CreateContainerGroup untuk membuat instance B. Teruskan parameter berikut untuk mount direktori
/dump/yang sama dari sistem file NAS ke direktori/data/dump-b/di dalam kontainer.ContainerGroupName=test-nas-b SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Declare a 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 # Mount the volume to the container 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 dalam kontainer instance B.
Anda dapat melihat file core di direktori
/data/dump-bdi dalam kontainer. Karena file core disimpan di penyimpanan eksternal, file tersebut tidak hilang setelah instance A dilepaskan dan tetap tersedia untuk analisis.# ls bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # cd /data/dump-b/ # ls core.17
FAQ
Unduhan tidak dimulai saat saya mengklik Download di konsol. Apa yang harus saya lakukan?
Jika unduhan tidak dimulai, periksa pengaturan izin situs di browser Anda. Misalnya, di Chrome, ikuti langkah-langkah berikut untuk memberikan izin yang diperlukan:
-
Klik ikon gembok di sebelah kiri bilah alamat browser Chrome, lalu di panel popup, klik Site settings.
-
Di daftar izin situs, temukan Insecure content dan atur izinnya ke Allow.