全部产品
Search
文档中心

Elastic Container Instance:Gunakan coredump untuk menganalisis pengecualian program instans

更新时间:Nov 11, 2025

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.

Catatan
  • 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

  1. Masuk ke Konsol Elastic Container Instance.

  2. Aktifkan coredump untuk instans ECI.

    1. Klik ID instans target untuk membuka halaman detail instans.

    2. 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.

      coredump-1

  3. Picu coredump.

    Sambungkan ke instans ECI. Di dalam kontainer, jalankan perintah sleep 100 lalu tekan Ctrl+\ untuk memicu coredump. File core yang dihasilkan akan disimpan secara otomatis ke OSS.coredump2

  4. 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.

    coredump-2

    Catatan

    Jika unduhan tidak dimulai, periksa pengaturan izin situs web di browser Anda.

OpenAPI

  1. 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` menjadi enable. Hal ini akan mengaktifkan coredump. Untuk informasi lebih lanjut, lihat CreateInstanceOpsTask.

    Catatan

    Pastikan parameter `CorePattern` tidak diatur saat instans dibuat.

  2. Picu coredump.

    Sambungkan ke instans ECI. Di dalam kontainer, jalankan perintah sleep 100 lalu tekan Ctrl+\ untuk memicu coredump. File core yang dihasilkan akan disimpan secara otomatis ke OSS.coredump2

  3. 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.

Catatan

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 (|). Anda tidak dapat menggunakan coredump untuk mengonfigurasi program yang dapat dieksekusi.

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:

  1. 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/core
  2. Picu coredump di direktori mana pun dalam kontainer pada Instans A.

    Sebagaimana ditunjukkan pada contoh berikut, jalankan perintah sleep 100 di dalam kontainer lalu tekan tombol Ctrl dan \ secara bersamaan untuk memicu coredump. File core disimpan ke path /data/dump-a/ dalam kontainer.

    coredump4

  3. Lepaskan instans ECI A.

  4. 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/
  5. 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.

    coredump5

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:

  1. Buka Konsol Elastic Container Instance. Di bilah alamat browser Anda, klik ikon 浏览器图标 dan pilih Site Settings.浏览器设置1

  2. Atur Insecure Content menjadi Allow.浏览器设置2