Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for SelectDB:İş yükü grubu

Son Güncelleme:Oct 08, 2026

ApsaraDB for SelectDB ile iş yükü grubu özelliğini kullanarak bir kümedeki hesaplama kaynaklarını yazılımsal olarak izole edebilirsiniz. Bu konuda, ApsaraDB for SelectDB iş yükü grubu özelliği ve bu özelliği kullanarak hesaplama kaynaklarının nasıl yönetileceği açıklanmaktadır.

Genel bakış

İş yükü grubu, tek bir hesaplama düğümünde gruptaki görevlerin kullandığı hesaplama ve bellek kaynaklarını sınırlayarak bir hesaplama kümesindeki görevlerin kaynak kullanımını kısıtlar.

Yüksek yük altında çalışan sorgu ve içe aktarma görevlerinin ne zaman çalıştırılacağını kontrol edebildiğiniz ve bir hesaplama kümesinin kaynaklarından en üst düzeyde yararlanmak istediğiniz iş senaryolarında, söz konusu görevleri ayrı iş yükü gruplarıyla ilişkilendirebilirsiniz. Örneğin, SelectDB planlı çevrimdışı hesaplama görevlerini ayrı bir iş yükü grubuyla ilişkilendirebilirsiniz. Ayrıca, işinizin düzenli yoğun saatleri varsa kaynakları iş görevleri için izole etmek üzere iş yükü gruplarından da yararlanabilirsiniz.

İş senaryolarınıza göre kaynakları aşağıdaki boyutlarda izole etmek için iş yükü gruplarını kullanabilirsiniz:

  • Büyük ve küçük sorgular için kaynakları izole edin.

  • Uzun ve kısa süren sorgular için kaynakları izole edin.

  • Soğuk ve sıcak veriler üzerindeki sorgular için kaynakları izole edin.

  • Çevrimdışı ve gerçek zamanlı içe aktarma görevleri için kaynakları izole edin.

İş yükü gruplarını kullanma

Bu bölümde iş yükü gruplarının nasıl oluşturulacağı, silineceği, değiştirileceği ve görüntüleneceği açıklanmaktadır.

Not

İş yükü gruplarında işlem yapmak için tam izinlere sahip yönetici hesabını kullanmanızı öneririz.

İş yükü grubu oluşturma

Bir iş yükü grubu oluşturmak için aşağıdaki ifadeyi çalıştırın. İş yükü grupları, bir hesaplama kümesinde CPU ve bellek kaynaklarını izole etmek için kullanılır.

Sözdizimi

CREATE WORKLOAD GROUP [IF NOT EXISTS] 'rg_name'
PROPERTIES (
    property_list
);

Parametreler


Parametre


Gerekli


Açıklama


rg_name


Evet


İş yükü grubunun adı.

Aşağıdaki tabloda PROPERTIES içindeki parametreler açıklanmaktadır.

Parametre

Gerekli

Açıklama

cpu_share

Evet

İş yükü grubu için kullanılabilen CPU süresi. Bu parametre, CPU kaynaklarının yazılımsal izolasyonunu uygulamak için kullanılır. cpu_share parametresinin değeri, iş yükü grubunun elde edebileceği CPU kaynaklarının ağırlığını gösteren göreli bir değerdir.

Örneğin, aşağıdaki iş yükü grupları oluşturulur: rg-a, rg-b ve rg-c. İş yükü grupları için cpu_share parametresi sırasıyla 10, 30 ve 40 olarak ayarlanır. Belirli bir zamanda rg-a ve rg-b içinde görevler çalışır ancak rg-c içinde hiçbir görev çalışmaz. Bu durumda rg-a CPU kaynaklarının %25'ini (10/(10 + 30)) elde ederken rg-b CPU kaynaklarının %75'ini elde eder.

Sistemde yalnızca bir çalışan iş yükü grubu varsa, cpu_share parametresinin değerinden bağımsız olarak bu iş yükü grubu tüm CPU kaynaklarını elde edebilir.

memory_limit

Evet

İş yükü grubunun kullanabileceği hesaplama kümesi belleğinin yüzdesi.

İş yükü grubu için bellek sınırının mutlak değeri şu formülle hesaplanır: Fiziksel bellek × mem_limit × memory_limit. Formüldeki mem_limit parametresi, hesaplama kümesinin bir yapılandırma öğesidir. Bu yapılandırma öğesinin nasıl değiştirileceği hakkında daha fazla bilgi için bkz. Parametreleri yönetme.

Çoğu durumda iş yükü grubundaki görevler memory_limit parametresiyle belirtilen belleği kullanabilir. İş yükü grubunun bellek kullanımı bellek sınırını aşarsa gruptaki en yüksek bellek kullanımına sahip görevler, fazla belleği serbest bırakmak için iptal edilebilir.

Not

Sistemdeki tüm iş yükü grupları için memory_limit değerlerinin toplamı %100'ü aşamaz. Aksi takdirde hata bildirilir.

enable_memory_overcommit

Hayır

İş yükü grubu için yazılımsal bellek izolasyonunun etkinleştirilip etkinleştirilmeyeceğini belirtir. Varsayılan değer: false.

Bu parametreyi false olarak ayarlarsanız iş yükü grubu için donanımsal bellek izolasyonu etkinleştirilir. Sistem, iş yükü grubunun bellek kullanımının sınırı aştığını algılarsa gruptaki en yüksek bellek kullanımına sahip görevleri hemen iptal ederek fazla belleği serbest bırakır.

Bu parametreyi true olarak ayarlarsanız iş yükü grubu için yazılımsal bellek izolasyonu etkinleştirilir. Sistemde boş bellek kaynağı varsa iş yükü grubu, bellek kullanımı memory_limit parametresiyle belirtilen sınırı aşsa bile daha fazla sistem belleği elde edebilir. Toplam sistem belleği yetersiz kalırsa sistem, bazı fazla belleği serbest bırakmak için en yüksek bellek kullanımına sahip görevleri iptal eder. Bu sayede toplam sistem belleği kullanımı azaltılır.

Bu parametreyi birkaç iş yükü grubu için true olarak ayarlarsanız memory_limit parametresini, tüm iş yükü gruplarındaki memory_limit değerlerinin toplamı %100'den az olacak şekilde yapılandırmanızı öneririz. Bu yaklaşım, belleği aşırı taahhüt edebilen iş yükü grupları için yedek bellek ayrılmasını sağlar.

max_concurrency

Hayır

İş yükü grubu için izin verilen eşzamanlı sorgu sayısının üst sınırını denetleyen değişken. Varsayılan olarak eşzamanlı sorgu sayısı için üst sınır yoktur.

ApsaraDB for SelectDB içinde eşzamanlı sorgu sayısının üst sınırı şu formülle hesaplanır: max_concurrency × 2. Eşzamanlı sorgu sayısı üst sınırı aşılırsa yeni sorgular kuyruğa alınır.

max_queue_size

Hayır

Sorgu kuyruğunun maksimum uzunluğunu denetleyen değişken. Varsayılan olarak sorgu kuyruğunun maksimum uzunluğu için üst sınır yoktur.

ApsaraDB for SelectDB içinde sorgu kuyruğunun maksimum uzunluğu şu formülle hesaplanır: max_queue_size × 2. Kuyruk doluysa yeni sorgular reddedilir.

queue_timeout

Hayır

Bir sorgunun kuyrukta bekleyebileceği maksimum süreyi milisaniye cinsinden denetleyen değişken. Varsayılan olarak bir sorgunun kuyrukta bekleyebileceği maksimum süre için üst sınır yoktur.

ApsaraDB for SelectDB içinde maksimum süre şu formülle hesaplanır: queue_timeout × 2. Bir sorgunun bekleme süresi bu değeri aşarsa sorgu reddedilir.

Örnek

g1 adlı bir iş yükü grubu oluşturun.

 CREATE WORKLOAD GROUP IF NOT EXISTS g1
 PROPERTIES (
     "cpu_share"="10",
     "memory_limit"="30%",
     "enable_memory_overcommit"="true"
 );

İş yükü grubu silme

Bir iş yükü grubunu silmek için aşağıdaki ifadeyi çalıştırın.

Sözdizimi

DROP WORKLOAD GROUP [IF EXISTS] 'rg_name'

Örnek

g1 adlı iş yükü grubunu silin.

DROP WORKLOAD GROUP IF EXISTS g1;

İş yükü grubunu değiştirme

Bir iş yükü grubunu değiştirmek için aşağıdaki ifadeyi çalıştırın.

Sözdizimi

ALTER WORKLOAD GROUP  "rg_name"
PROPERTIES (
    property_list
);

Parametreler

PROPERTIES içindeki parametreler hakkında daha fazla bilgi için bu konudaki Parametreler bölümüne bakın.

Örnek

g1 adlı iş yükü grubunu değiştirin.

ALTER WORKLOAD GROUP g1
PROPERTIES (
    "cpu_share"="30",
    "memory_limit"="30%"
);
Not
  • memory_limit parametresini değiştirirken tüm iş yükü grupları için memory_limit değerlerinin toplamının %100'ü aşmadığından emin olun.

  • Yalnızca bazı parametreleri değiştirebilirsiniz. Örneğin, yalnızca cpu_share parametresini değiştirebilirsiniz. Bu durumda PROPERTIES içinde yalnızca cpu_share parametresini belirtmeniz yeterlidir.

İş yükü gruplarını görüntüleme

Geçerli kullanıcının USAGE-PRIV iznine sahip olduğu iş yükü gruplarını görüntülemek için aşağıdaki ifadeyi çalıştırın.

Sözdizimi

SHOW WORKLOAD GROUPS;

Örnek

Tüm iş yükü gruplarını görüntüleyin.

mysql> SHOW WORKLOAD GROUPS;
+----------+--------+--------------------------+---------+
| Id       | Name   | Item                     | Value   |
+----------+--------+--------------------------+---------+
| 10343386 | normal | cpu_share                | 10      |
| 10343386 | normal | memory_limit             | 30%     |
| 10343386 | normal | enable_memory_overcommit | true    |
| 10352416 | g1     | memory_limit             | 20%     |
| 10352416 | g1     | cpu_share                | 10      |
+----------+--------+--------------------------+---------+

Tam örnek

Aşağıdaki örnekte, bir SelectDB kümesinde iş yükü grubu özelliğinin nasıl etkinleştirileceği ve iş yükü gruplarının nasıl kullanılacağı gösterilmektedir.

  1. FE yapılandırma öğesi enable_workload_group değerini true olarak ayarlayın.

enable_workload_group=true
Not
  • Bu yapılandırma öğesi doğrudan belirtilemez. Söz konusu öğeyi belirtmek istiyorsanız destek talebi açın.

  • Bu yapılandırma öğesi dinamik bir yapılandırma öğesidir. Bu öğeyi değiştirip örneğinizi yeniden başlatırsanız sistem otomatik olarak normal adlı varsayılan bir iş yükü grubu oluşturur. Bu yapılandırma öğesini değiştirip örneğinizi yeniden başlatmazsanız varsayılan iş yükü grubu oluşturulmaz. Bu yapılandırma öğesinin nasıl değiştirileceği hakkında daha fazla bilgi için destek talebi açın.

  1. Bir iş yükü grubu oluşturun.

CREATE WORKLOAD GROUP IF NOT EXISTS g1
properties (
    "cpu_share"="10",
    "memory_limit"="30%",
    "enable_memory_overcommit"="true"
);
  1. Pipeline execution engine'i etkinleştirmek için experimental_enable_pipeline_engine oturum değişkenini true olarak ayarlayın. Bir iş yükü grubu için CPU izolasyonu, pipeline execution engine temel alınarak uygulanır.

set experimental_enable_pipeline_engine = true;
  1. Sorguları iş yükü grubuyla ilişkilendirin; böylece iş yükü grubu için belirtilen kaynak sınırı etkili olur. Sorguları iş yükü grubuyla ilişkilendirmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • Varsayılan iş yükü grubunu belirtmek için default_workload_group kullanıcı özelliğini yapılandırın. Varsayılan iş yükü grubu sistem tarafından otomatik olarak oluşturulursa bu özelliğin varsayılan değeri normal olur.

    set property 'default_workload_group' = 'g1';

    Önceki ifade, geçerli kullanıcının sorguları tarafından kullanılacak varsayılan iş yükü grubu olarak g1 değerini belirtir.

  • Kullanmak istediğiniz iş yükü grubunu belirtmek için workload_group oturum değişkenini yapılandırın. Bu değişken varsayılan olarak boştur.

    set workload_group = 'g1';

    workload_group oturum değişkeninin önceliği default_workload_group kullanıcı özelliğinden daha yüksektir. workload_group değişkeni boşsa sorgular default_workload_group özelliğiyle belirtilen iş yükü grubuyla ilişkilendirilir. workload_group değişkeni boş değilse sorgular workload_group değişkeniyle belirtilen iş yükü grubuyla ilişkilendirilir.

    Yönetici değilseniz önce SHOW WORKLOAD GROUPS ifadesini çalıştırarak kullanmak istediğiniz iş yükü grubunu görüntüleyip görüntüleyemediğinizi kontrol edin. İş yükü grubu görüntülenmiyorsa söz konusu grup mevcut olmayabilir veya bu grubu kullanma izniniz bulunmayabilir. Bu durumda sorguları çalıştırdığınızda hata bildirilir.

  1. Bir sorgu çalıştırın. Sorgu, belirtilen iş yükü grubuyla ilişkilendirilir. Bu durumda iş yükü grubu için belirtilen kaynak sınırı etkili olur.