Aracılığıyla paylaş


CLI (az veya kubectl) kullanarak bir PostgreSQL için Azure Veritabanı sunucusunun ölçeğini artırma ve azaltma

Bir sunucunun özelliklerini veya tanımını değiştirmeniz gerekebilecek zamanlar olabilir. Örneğin:

  • Sunucunun kullandığı sanal çekirdek sayısının ölçeğini artırma veya azaltma
  • Sunucunun kullandığı belleğin ölçeğini artırma veya azaltma

Bu kılavuzda sanal çekirdek ve/veya belleği ölçeklendirme işlemi açıklanmaktadır.

Sunucunuzun sanal çekirdek veya bellek ayarlarının ölçeğini artırma veya azaltma, sanal çekirdek ve bellek ayarlarının her biri için en düşük ve/veya en yüksek değeri ayarlama olanağınız olduğu anlamına gelir. Sunucunuzu belirli sayıda sanal çekirdek veya belirli bir bellek miktarı kullanacak şekilde yapılandırmak istiyorsanız, en düşük ayarları en yüksek ayarlara eşit olarak ayarlarsınız. Sanal çekirdekler ve Bellek için ayarlanan değeri artırmadan önce,

  • dağıtımınızı barındıran fiziksel altyapıda yeterli kaynağınız var ve
  • aynı sistemde birlikte bulunan iş yükleri aynı sanal çekirdekler veya Bellek için rekabet etmemektedir.

Not

Önizleme özelliği olarak, bu makalede sunulan teknoloji Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'na tabidir.

En son güncelleştirmeler sürüm notlarında bulunur.

Sunucunun geçerli tanımını göster

Sunucunuzun geçerli tanımını göstermek ve geçerli sanal çekirdek ve Bellek ayarlarının ne olduğunu görmek için aşağıdaki komutlardan birini çalıştırın:

Azure CLI ile (az)

az postgres server-arc show -n <server name> --k8s-namespace <namespace> --use-k8s

kubectl ile CLI

kubectl describe postgresql/<server name> -n <namespace name>

Sunucu grubunuzun yapılandırmasını döndürür. Sunucuyu varsayılan ayarlarla oluşturduysanız tanımı aşağıdaki gibi görmeniz gerekir:

Spec:
  Dev:  false
  Scheduling:
    Default:
      Resources:
        Requests:
          Memory:  256Mi
...

Sunucunun tanımını yorumlama

Sunucu tanımında, düğüm başına en düşük veya en fazla sanal çekirdek ve düğüm başına en düşük veya en fazla bellek ayarlarını taşıyan bölüm "zamanlama" bölümüdür. Bu bölümde, en yüksek ayarlar "limits" adlı bir alt bölümde kalıcı hale gelir ve en düşük ayarlar "istekler" adlı alt bölümde kalıcı hale gelir.

Maksimum ayarlardan farklı en düşük ayarları ayarlarsanız yapılandırma, gerekirse sunucunuza istenen kaynakların atandığını garanti eder. Belirlediğiniz sınırları aşmaz.

Sunucunuz tarafından gerçekten kullanılacak kaynaklar (sanal çekirdekler ve bellek) en fazla ayara kadardır ve iş yüklerine ve kümede kullanılabilir kaynaklara bağlıdır. Ayarları üst sınırlamayacaksanız, sunucunuz Kubernetes kümesinin sunucunuzun zamanlandığı Kubernetes düğümlerine ayırdığı tüm kaynakları kullanabilir.

Varsayılan yapılandırmada, PostgreSQL sunucusunu çalıştırmak için önerilen en düşük bellek miktarı olduğundan yalnızca en düşük bellek 256Mi olarak ayarlanır.

Not

Minimum ayar, sunucunun mutlaka bu minimum değeri kullanacağı anlamına gelmez. Bu, sunucuya ihtiyaç duyarsa en azından bu minimumda ayrılmasının garanti olduğu anlamına gelir. Örneğin, ayarlamayı --minCpu 2göz önünde bulunduralım. Bu, sunucunun her zaman en az 2 sanal çekirdek kullanacağı anlamına gelmez. Bunun yerine, bu kadar çok gerekli değilse, sunucu 2'den az sanal çekirdek kullanmaya başlayabilir ve daha sonra ihtiyaç duyması durumunda en az 2 sanal çekirdek ayrılması garanti edilir. Kubernetes kümesinin kaynakları başka iş yüklerine ihtiyaç duyduğunda sunucuya 2 sanal çekirdek ayıracak şekilde ayırdığını gösterir. Ayrıca ölçeği artırma ve azaltma işlemi, kubernetes podlarının yeniden başlatılmasını gerektirdiğinden çevrimiçi bir işlem değildir.

Not

Sisteminizin yapılandırmasını değiştirmeden önce lütfen burada Kubernetes kaynak modeli hakkında bilgi sahibi olduğunuzdan emin olun

Sunucunun ölçeğini artırma ve azaltma

Ölçeği artırma, sunucunuzun sanal çekirdek ve/veya bellek ayarlarının değerlerini artırmayı ifade eder. Ölçeği azaltma, sunucunuzun sanal çekirdek ve/veya bellek ayarlarının değerlerini azaltmayı ifade eder.

Ayarlamak üzere olduğunuz ayarların Kubernetes kümeniz için ayarladığınız yapılandırmada dikkate alınması gerekir. Kubernetes kümenizin karşılayamayacağı değerleri ayarlamadığınızdan emin olun. Bu hatalara veya veritabanı örneğinin kullanılamama durumu gibi öngörülemeyen davranışlara yol açabilir. Örneğin, yapılandırmayı değiştirdikten sonra sunucunuzun durumu uzun süre güncelleştirmesi durumunda kalırsa, aşağıdaki parametreleri Kubernetes kümenizin karşılayamayacağı değerlere ayarladığınızın bir göstergesi olabilir. Bu durumda değişikliği geri alın veya _troubleshooting_section okuyun.

Hangi ayarları yapmalısınız?

  • En düşük sanal çekirdeği ayarlamak için değerini ayarlayın --cores-request.
  • Sanal çekirdek üst sınırını ayarlamak için değerini ayarlayın --cores-limit.
  • En düşük belleği ayarlamak için --memory-request
  • En fazla belleği ayarlamak için --memory-limit

Dikkat

Kubernetes ile ilgili istek ayarını yapılandırmadan bir sınır ayarı yapılandırmak, istek değerini sınırla aynı değere zorlar. Yeterli kaynakla kullanılabilir bir Kubernetes düğümü yoksa podları yeniden zamanlanmayabileceği için bu durum sunucunuzun kullanılamamasına neden olabilir. Bu nedenle, bu durumu önlemek için aşağıdaki örneklerde hem isteğin hem de sınır ayarlarının nasıl ayarlanacağı gösterilmektedir.

Genel söz dizimi şöyledir:

az postgres server-arc edit -n <server name> --memory-limit/memory-request/cores-request/cores-limit <val> --k8s-namespace <namespace> --use-k8s

Bellek ayarı için belirttiğiniz değer bir sayıdır ve ardından birim birimi eklenir. Örneğin, 1 Gb'ı belirtmek için 1024Mi veya 1Gi değerini belirtirsiniz. Bir dizi çekirdeği belirtmek için, birim olmadan bir sayı geçirmeniz gerekir.

Azure CLI'yi kullanan örnekler

Sunucuyu 2 çekirdeği aşmamak üzere yapılandırın:

 az postgres server-arc edit -n postgres01 --cores-request 1, --cores-limit 2  --k8s-namespace arc --use-k8s

Not

Bu parametrelerle ilgili ayrıntılar için komutunu çalıştırın az postgres server-arc update --help.

Gibi Kubernetes yerel araçlarını kullanma örneği kubectl

Komutu çalıştırın.

kubectl edit postgresql/<server name> -n <namespace name>

Böylece düzenleyicide vi gezinebilir ve yapılandırmayı değiştirebilirsiniz. İstenen ayarı belirtimdeki alanın adıyla eşlemek için aşağıdakileri kullanın:

Dikkat

Aşağıda, yapılandırmayı nasıl düzenleyebildiğinizi gösteren bir örnek verilmiştir. Yapılandırmayı güncelleştirmeden önce, parametreleri Kubernetes kümesinin gerçekleştirebileceği değerlere ayarladığınızdan emin olun.

Örneğin, hem koordinatör hem de çalışan rolleri için aşağıdaki ayarları aşağıdaki değerlere ayarlamak istiyorsanız:

  • En düşük sanal çekirdek = 2
  • Maksimum sanal çekirdek = 4
  • En düşük bellek = 512Mb
  • En Fazla Bellek = 1Gb

Sunucu grubunuzun tanımını aşağıdaki yapılandırmayla eşleşeceği şekilde ayarlarsınız:

...
  spec:
  dev: false
  scheduling:
    default:
      resources:
        requests:
          cpu: "2"
          memory: 256Mi
        limits:
          cpu: "4"
          memory: 1Gi
...

Düzenleyiciyi vi bilmiyorsanız, burada ihtiyacınız olabilecek komutların açıklamasına bakın:

  • Düzenleme modu: i
  • Oklarla gezinme
  • Düzenlemeyi durdur: esc
  • Kaydetmeden çık: :qa!
  • Kaydettikten sonra çıkış: :qw!

Varsayılan değerlere sıfırla

Çekirdek/bellek sınırlarını/istek parametrelerini varsayılan değerlerine sıfırlamak için, bunları düzenleyin ve gerçek değer yerine boş bir dize geçirin. Örneğin, çekirdek sınırı parametresini sıfırlamak istiyorsanız aşağıdaki komutları çalıştırın:

az postgres server-arc edit -n postgres01 --cores-request '' --k8s-namespace arc --use-k8s
az postgres server-arc edit -n postgres01 --cores-limit '' --k8s-namespace arc --use-k8s

veya

az postgres server-arc edit -n postgres01 --cores-request '' --cores-limit '' --k8s-namespace arc --use-k8s