Tüm Ürünler
Search
Belge Merkezi

Elastic Container Instance:Analyze application exceptions by using coredump

Son Güncelleme:Oct 06, 2026

Coredump, bir uygulama çöktüğünde veya beklenmedik şekilde sonlandığında uygulamanın bellek durumunu içeren bir dosyadır. İşletim sistemi, hata ayıklama ve analiz amacıyla bu dosyayı oluşturur. Bu konuda, Elastic Container Instance (ECI) örneği için coredump özelliğinin nasıl etkinleştirileceği açıklanmaktadır. Bu sayede, beklenmedik konteyner sonlandırmalarından kaynaklanan çekirdek dosyalarını analiz ederek sorunun nedenini belirleyebilir ve uygulamayı düzeltebilirsiniz.

Genel bilgiler

Linux'ta bir uygulama beklenmedik şekilde sonlandığında veya çöktüğünde işletim sistemi, uygulamanın bellek durumunu kaydeder ve bir dosyaya yazar. Bu işleme coredump adı verilir. Daha sonra çekirdek dosyasını analiz ederek sorunun nedenini belirleyebilirsiniz.

Aşağıdaki şekilde coredump işlemini tetikleyen Linux sinyalleri gösterilmektedir. Bu sinyaller için varsayılan eylem Core'dur.

Daha fazla bilgi için bkz. coredump dosyası.

Genel bakış

ECI örneğinde aşırı disk kullanımını önlemek ve hizmet kesintilerine yol açmamak için coredump varsayılan olarak devre dışı bırakılır. Coredump özelliğini aşağıdaki yöntemlerden birini kullanarak etkinleştirebilirsiniz:

  • Yöntem 1: Bir coredump O&M görevi etkinleştirin

    Coredump özelliğini manuel olarak etkinleştirdiğinizde sistem bir O&M görevi oluşturur. Bir konteyner anormal şekilde sonlandığında veya çıktığında oluşan çekirdek dosyası otomatik olarak OSS'e kaydedilir.

  • Yöntem 2: Çekirdek dosyaları için özel bir kaydetme yolu belirtin

    Özel bir kaydetme yolu belirterek çekirdek dosyalarını harici depolamada saklayabilirsiniz. Kaydetme yolunu ayarladıktan sonra coredump otomatik olarak etkinleşir. Bir konteyner çöktüğünde veya beklenmedik şekilde çıktığında oluşan çekirdek dosyası belirtilen yola kaydedilir.

Not
  • Yöntem 1 kullanımı kolaydır ancak zaman ve bölge sınırlamaları vardır. Geçici hata ayıklama ve tanılama senaryoları için uygundur.

    • Oluşturulan O&M görevi tek seferlik bir görevdir. Bir çekirdek dosyası başarıyla yakalandığında coredump otomatik olarak devre dışı bırakılır. O&M görevi 12 saat boyunca geçerlidir ve bu süre içinde tetiklenmezse süresi dolar.

    • Bu yöntem aşağıdaki bölgelerde desteklenmez: Çin (Ulanqab), Çin (Heyuan), Çin (Guangzhou), Çin (Nanjing), Filipinler (Manila), Güney Kore (Seul) ve Tayland (Bangkok).

  • Yöntem 2 harici depolama yapılandırmanızı gerektirir. Uygulamanız kararsızsa çekirdek dosyalarının yakalandığından emin olmak için bu yöntemi kullanabilirsiniz. Ancak hatalı bir uygulama tekrar tekrar yeniden başlatılırsa çok sayıda çekirdek dosyası oluşabilir.

Yöntem 1: Bir coredump O&M görevi etkinleştirin

Konsol

  1. Elastic Container Instance konsoluna giriş yapın.

  2. ECI örneği için coredump özelliğini etkinleştirin.

    1. Hedef örneğin ID değerine tıklayarak örnek ayrıntıları sayfasını açın.

    2. O&M sekmesine tıklayın, Coredump sekmesini seçin ve ardından Enable seçeneğine tıklayın.

      Coredump özelliğini etkinleştirdikten sonra sistem bir O&M görevi oluşturur. Coredump henüz tetiklenmediyse görev durumu Pending olarak görünür.

  3. Bir coredump tetikleyin.

    ECI örneğine bağlanın. Konteynerde sleep 100 komutunu çalıştırın ve ardından coredump tetiklemek için Ctrl+\ tuşlarına basın. Oluşturulan çekirdek dosyası otomatik olarak OSS'e kaydedilir.

    # sleep 100
    ^\Quit (core dumped)
  4. Çekirdek dosyasını indirin.

    Coredump tetiklendikten ve çekirdek dosyası oluşturulduktan sonra O&M görevinin durumu Successful olarak değişir. Çekirdek dosyasını indirmek için Result sütunundaki Download seçeneğine tıklayın.

    Not

    İndirme işlemi başlamazsa tarayıcınızdaki site izin ayarlarını kontrol edin.

API

  1. ECI örneği için coredump özelliğini etkinleştirin.

    Bir O&M görevi oluşturmak için CreateInstanceOpsTask işlemini çağırın. Hedef ECI örneğini belirtin, OpsType parametresini coredump olarak ve OpsValue parametresini enable olarak ayarlayın. Daha fazla bilgi için bkz. CreateInstanceOpsTask.

    Not

    ECI örneğini belirtirken örnek oluşturma sırasında CorePattern parametresinin ayarlanmadığından emin olun.

  2. Bir coredump tetikleyin.

    ECI örneğine bağlanın. Konteynerde sleep 100 komutunu çalıştırın ve ardından coredump tetiklemek için Ctrl+\ tuşlarına basın. Oluşturulan çekirdek dosyası otomatik olarak OSS'e kaydedilir.

  3. Çekirdek dosyasını indirin.

    O&M görevinin sonucunu görüntülemek için DescribeInstanceOpsRecords işlemini çağırın. Yanıtta ResultContent alanı OSS'teki çekirdek dosyasının URL'sini içerir. Çekirdek dosyasını indirmek için bu URL'ye erişebilirsiniz.

Yöntem 2: Özel bir kaydetme yolu belirtin

Çekirdek dosyaları genellikle çevrimdışı analiz için kullanılır. Bu nedenle, bu dosyaları konteyner içindeki yerel bir yol yerine harici depolamaya kaydetmenizi öneririz. Bu yaklaşım, konteyner çıktığında çekirdek dosyalarının kaybolmasını engeller. ECI, çekirdek dosyaları için özel bir kaydetme yolu belirtmenize olanak tanır. Yolu ayarladıktan sonra coredump otomatik olarak etkinleşir.

Bir ECI örneği oluşturmak için CreateContainerGroup işlemini çağırdığınızda çekirdek dosyalarının kaydedileceği yolu ayarlamak üzere CorePattern parametresini iletebilirsiniz. İlgili parametreler aşağıdaki tabloda açıklanmıştır. Daha fazla bilgi için bkz. CreateContainerGroup.

Not

Birim türünüze göre volume parametrelerini yapılandırın.

Parametre

Tür

Örnek

Açıklama

CorePattern

String

/data/dump-a/core

Çekirdek dosyalarının kaydedileceği yol. Bu yol, bağlanmış bir birim içinde olmalıdır.

Önemli

Yol boru karakteri (|) ile başlayamaz. Bu, coredump kullanarak yürütülebilir bir program yapılandıramayacağınız anlamına gelir.

Volume.N.Name

String

volume1

Birim adı.

Volume.N.Type

String

NFSVolume

Birim türü. Bu örnekte NFSVolume kullanılmıştır.

Volume.N.NFSVolume.Path

String

/dump

NFS biriminin yolu.

Volume.N.NFSVolume.Server

String

143b24****-gfn3.cn-beijing.nas.aliyuncs.com

NFS sunucusunun adresi.

Alibaba Cloud File Storage NAS kullanıyorsanız bu, NAS dosya sisteminin bağlama noktasının adresidir.

Container.N.VolumeMount.N.Name

String

volume1

Bağlanacak birimin adı. Bu değer Volume.N.Name değeriyle eşleşmelidir.

Container.N.VolumeMount.N.MountPath

String

/data/dump-a/

Bağlama yolu.

Birim içeriği, konteyner içindeki bağlama yolundaki mevcut tüm içeriğin üzerine yazar. Yolun doğru olduğundan emin olun.

Aşağıdaki örnekte harici depolama olarak Alibaba Cloud File Storage NAS dosya sisteminin nasıl kullanılacağı gösterilmektedir:

  1. A örneği adında bir ECI örneği oluşturun, NAS dosya sistemini bağlayın ve çekirdek dosyaları için kaydetme yolunu ayarlayın.

    A örneğini oluşturmak için CreateContainerGroup işlemini çağırın. NAS dosya sistemindeki /dump/ dizinini konteynerdeki /data/dump-a/ dizinine bağlamak ve çekirdek dosyası kaydetme yolunu /data/dump-a/core olarak ayarlamak için aşağıdaki parametreleri belirtin.

    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
  2. A örneğinin konteynerindeki herhangi bir dizinde bir coredump tetikleyin.

    Konteynerde sleep 100 komutunu çalıştırın ve ardından coredump tetiklemek için Ctrl+\ tuşlarına basın. Çekirdek dosyası konteynerdeki /data/dump-a/core yoluna kaydedilir.

    # 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
  3. A örneğini serbest bırakın.

  4. Aynı NAS dosya sistemini B örneği adlı başka bir ECI örneğine bağlayın.

    B örneğini oluşturmak için CreateContainerGroup işlemini çağırın. NAS dosya sisteminin aynı /dump/ dizinini konteynerdeki /data/dump-b/ dizinine bağlamak için aşağıdaki parametreleri iletin.

    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/
  5. B örneğinin konteynerindeki çekirdek dosyasını görüntüleyin.

    Çekirdek dosyasını konteynerin /data/dump-b dizininde görüntüleyebilirsiniz. Çekirdek dosyası harici depolamaya kaydedildiği için A örneği serbest bırakıldıktan sonra kaybolmaz ve analiz için kullanılabilir durumda kalır.

    # 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

SSS

Konsolda Download seçeneğine tıkladığımda indirme işlemi başlamıyor. Ne yapmalıyım?

İndirme işlemi başlamazsa tarayıcınızdaki site izin ayarlarını kontrol edin. Örneğin Chrome'da gerekli izni vermek için aşağıdaki adımları izleyin:

  1. Chrome tarayıcı adres çubuğunun solundaki kilit simgesine tıklayın ve açılan panelde Site settings seçeneğine tıklayın.

  2. Site izinleri listesinde Insecure content öğesini bulun ve iznini Allow olarak ayarlayın.