Aracılığıyla paylaş


AKS kümelerinde bellek doygunluğu sorunlarını giderme

Bu makalede bellek doygunluğu sorunlarını giderme yöntemleri ele alınmaktadır. Bellek doygunluğu, en az bir uygulama veya işlem bir kapsayıcı konağı tarafından sağlanabilir bellekten daha fazla belleğe ihtiyaç duyuyorsa veya konak kullanılabilir belleği tüketiyorsa oluşur.

Önkoşullar

Belirtiler

Aşağıdaki tabloda, bellek doygunluğunun yaygın belirtileri özetlenmiştir.

Belirti Açıklama
Zamanlanamayan podlar Düğüm ayarlanan bellek sınırına yakınsa ek podlar zamanlanamaz.
Pod çıkarma Bir düğümün belleği tükeniyorsa kubelet podları çıkarabilir. Denetim düzlemi, kaynakları olan diğer düğümlerde çıkarılan podları yeniden zamanlamaya çalışsa da, diğer düğümlerin bu podları çalıştırmak için yeterli belleğe sahip olduğunu garanti etmemektedir.
Düğüm hazır değil Bellek doygunluğu yanıt vermemeye ve kubeletcontainerd sonuç olarak düğüm hazırlığı sorunlarına neden olabilir.
Yetersiz bellek (OOM) sonlandırma Pod çıkarma işlemi bir düğüm sorununu önleyemediğinde bir OOM sorunu oluşur.

Sorun giderme denetim listesi

Bellek doygunluğunu azaltmak için etkili izleme araçlarını kullanın ve en iyi yöntemleri uygulayın.

1. Adım: Bellek doygunluğu olan düğümleri tanımlama

Bellek doygunluğu olan düğümleri tanımlamak için aşağıdaki yöntemlerden birini kullanın:

  • Web tarayıcısında, Azure portal AKS'nin Container Insights özelliğini kullanın.

  • Konsolda Kubernetes komut satırı aracını (kubectl) kullanın.

Container Insights, AKS'de kapsayıcı iş yükü performansını izleyen bir özelliktir. Daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) kümesi için Kapsayıcı içgörülerini etkinleştirme.

  1. Azure portalKubernetes hizmetleri'ni arayın ve seçin.

  2. Kubernetes hizmetleri listesinde kümenizin adını seçin.

  3. Kümenizin gezinti bölmesinde İzleme başlığını bulun ve İçgörüler'i seçin.

  4. Uygun Zaman Aralığı değerini ayarlayın.

  5. Düğümler sekmesini seçin.

  6. Ölçüm listesinde Bellek çalışma kümesi (Allocatable'dan hesaplanır) öğesini seçin.

  7. Yüzdebirlik dilim seçicisinde örneği En Fazla olarak ayarlayın ve ardından En Fazla % sütun etiketini iki kez seçin. Bu eylem, tablo düğümlerini en yüksekten en düşüke kadar kullanılan bellek yüzdesi üst sınırına göre sıralar.

    Azure Kubernetes Service (AKS) kümesindeki Container Insights'ta Düğümler görünümünün ekran görüntüsü Azure portal.

  8. İlk düğüm en yüksek bellek kullanımına sahip olduğundan, düğümde çalışan podların bellek kullanımını araştırmak için bu düğümü seçin.

    Azure Kubernetes Service (AKS) kümesindeki Container Insights'ta Düğümler görünümü altında düğümün kapsayıcılarının ekran görüntüsü Azure portal.

    Not

    Podlar için CPU veya bellek kullanımı yüzdesi, kapsayıcı için belirtilen CPU isteğini temel alır. Düğüm için CPU veya bellek kullanımı yüzdesini temsil etmez. Bu nedenle, podlar için CPU veya bellek kullanımı yüzdesi yerine gerçek CPU veya bellek kullanımına bakın.

Artık yüksek bellek kullanan podları tanımladığınıza göre, pod üzerinde çalışan uygulamaları tanımlayabilirsiniz.

2. Adım: Bellek doygunluğunu önlemek için en iyi yöntemleri gözden geçirin

Bellek doygunluğunu önlemeye yönelik en iyi yöntemleri nasıl uygulayacağınızı öğrenmek için aşağıdaki tabloyu gözden geçirin.

En iyi yöntem Açıklama
Bellek isteklerini ve sınırlarını kullanma Kubernetes, bir kapsayıcı için en düşük bellek boyutunu (istek) ve en yüksek bellek boyutunu (sınırı) belirtme seçenekleri sağlar. Podlarda sınırları yapılandırarak düğümdeki bellek baskısını önleyebilirsiniz. Çalışan tüm podların toplam sınırlarının düğümün kullanılabilir belleğini aşmadığından emin olun. Bu duruma fazla uygunluk denir. Kubernetes zamanlayıcı, Hizmet Kalitesi (QoS) aracılığıyla kaynakları belirli isteklere ve sınırlara göre ayırır. Uygun sınırlar olmadan zamanlayıcı tek bir düğümde çok fazla pod zamanlayabilir. Bu işlem sonunda düğümü düşürebilir. Ayrıca kubelet podları çıkartırken bellek kullanımının tanımlı isteklerini aştığı podların önceliklerini belirler. Bellek isteğini gerçek kullanıma yakın ayarlamanızı öneririz.
Yatay pod otomatik ölçeklendiricisini etkinleştirme Kümeyi ölçeklendirerek, bellek doygunluğunu önlemek için istekleri birçok pod arasında dengeleyebilirsiniz. Bu teknik, belirli bir düğümdeki bellek ayak izini azaltabilir.
Benzeşim önleme etiketlerini kullanma Belleğin tasarım gereği ilişkisiz olduğu senaryolar için, iş yükünü belirli düğümlerle yalıtabilen düğüm seçicileri ve benzeşim veya benzeşim karşıtı etiketleri kullanabilirsiniz. Benzeşim karşıtı etiketleri kullanarak, diğer iş yüklerinin bu düğümlerde pod zamanlamasını engelleyebilirsiniz. Bu, bellek doygunluğu sorununu azaltır.
Daha yüksek SKU VM'leri seçme Daha fazla rastgele erişim belleğine (RAM) sahip sanal makineler (VM'ler), yüksek bellek kullanımını işlemek için daha uygundur. Bu seçeneği kullanmak için yeni bir düğüm havuzu oluşturmanız, düğümleri kordonlu hale getirmeniz (zamanlanamayan hale getirmeniz) ve mevcut düğüm havuzunu boşaltmanız gerekir.
Sistem ve kullanıcı iş yüklerini yalıtma Uygulamalarınızı bir kullanıcı düğümü havuzunda çalıştırmanızı öneririz. Bu yapılandırma, Kubernetes'e özgü podları sistem düğümü havuzuna yalıtmanızı ve küme performansını koruyabilmenizi sağlar.

Daha fazla bilgi

Üçüncü taraf bilgileri hakkında yasal uyarı

Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.

Üçüncü tarafla iletişim sorumluluk reddi

Microsoft, bu konu hakkında ek bilgi bulmanıza yardımcı olmak için üçüncü taraf iletişim bilgileri sağlar. Bu iletişim bilgileri önceden haber verilmeksizin değiştirilebilir. Microsoft, üçüncü taraf iletişim bilgilerinin doğruluğunu garanti etmez.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.