Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:Group identity feature

Son Güncelleme:Oct 08, 2026

Çekirdek sürümü 4.19.91-24.al7 ve üzeri olan Alibaba Cloud Linux 2 ile çekirdek sürümü 5.10.46-7.al8 ve üzeri olan Alibaba Cloud Linux 3, grup kimliği özelliğini destekler. Grup kimliği özelliğini kullanarak CPU kontrol grupları (cgroup) için farklı kimlikler yapılandırabilir ve bu gruplardaki işlemlerin (görevlerin) önceliklerini tanımlayabilirsiniz.

Arka plan bilgileri

Gecikmeye duyarlı görevleri ve hesaplama görevlerini aynı örnek üzerinde dağıttığınızda, Linux çekirdek zamanlayıcısı yüksek öncelikli görevlere daha fazla zamanlama fırsatı sunarak zamanlama gecikmesini en aza indirmeli ve düşük öncelikli görevlerin çekirdek zamanlaması üzerindeki etkilerini azaltmalıdır. Bu senaryoda Alibaba Cloud Linux, grup kimliği özelliğini sağlayarak CPU cgroup'ları için zamanlama önceliklerini yapılandırmanıza olanak tanıyan arayüzler ekler. Farklı önceliklere sahip görevler aşağıdaki özellikleri gösterir:

  • Yüksek öncelikli görevler minimum uyanma gecikmesine sahiptir.

  • Düşük öncelikli görevler, yüksek öncelikli görevlerin performansını etkilemez.

    • Düşük öncelikli görevlerin uyanması, yüksek öncelikli görevlerin performansını etkilemez.

    • Düşük öncelikli görevler donanım birimlerini paylaşmaz ve yüksek öncelikli görevlerin performansı üzerinde olumsuz etki yaratmaz.

Ön koşullar

Not
  • Çekirdek sürümü 4.19.91-26, 4.19.91-26.1, 4.19.91-26.2 veya 4.19.91-26.3 olan Alibaba Cloud Linux 2'de grup kimliği özelliği çekirdek düzeyinde devre dışıdır. Alibaba Cloud Linux 2'nin çekirdek sürümünü sorgulamak için uname -r komutunu çalıştırabilirsiniz.

  • Çekirdek sürümü 5.10.112-11.al8, 5.10.112-11.1.al8, 5.10.112-11.2.al8, 5.10.134-12.al8, 5.10.134-12.1.al8 veya 5.10.134-12.2.al8 olan Alibaba Cloud Linux 3'te grup kimliği özelliği çekirdek düzeyinde devre dışıdır.

  • Çekirdek sürümü 4.19.91-25.1.al7 ile 4.19.91-25.5.al7 aralığında olan Alibaba Cloud Linux 2'de grup kimliği özelliğini kullanmanız durumunda kesinti yaşanır. Bu durumda çekirdek sürümünü 4.19.91-25.6.al7 veya üzerine yükseltin. Daha fazla bilgi için "Change the kernel version" konusundaki Çekirdeği yükseltme bölümüne bakın.

  • x86_64 mimarisine sahip ve çekirdek sürümü 5.10.134-12.2.al8 olan Alibaba Cloud Linux 3'te grup kimliği özelliğini etkinleştirmek için aşağıdaki komutları çalıştırın:

    yum makecache
    sudo yum install scheduler-group-identity.x86_64 -y
  • Alibaba Cloud Linux 2'de çekirdek sürümü 4.19.91-26.4 ve üzeri ile Alibaba Cloud Linux 3'te çekirdek sürümü 5.10.134-13.al8 ve üzeri için, grup kimliği özelliğini etkinleştirmenize olanak tanımak amacıyla /proc/sys/kernel/sched_group_identity_enabled arayüzü eklenmiştir. Grup kimliği özelliğini kullanmadan önce sudo sh -c 'echo 1 > /proc/sys/kernel/sched_group_identity_enabled' komutunu çalıştırarak özelliği etkinleştirmeniz gerekir.

Grup kimliği özelliğinin çalışma mekanizması

Grup kimliği özelliği, CPU cgroup'ları için kimlikler yapılandırmanıza ve bu gruplardaki görevlerin önceliklerini tanımlamanıza olanak tanır. Bu özellik çift kırmızı-siyah ağaç mimarisine dayanır. Completely Fair Scheduler (CFS) zamanlama kuyruğunun kırmızı-siyah ağacına dayalı olarak, düşük öncelikli görevleri depolamak üzere ikinci bir düşük öncelikli kırmızı-siyah ağaç eklenir.

Çekirdek, kimlik yapılandırılmış görevleri zamanlarken bu görevleri önceliklerine göre işler. Aşağıdaki tabloda kimlikler öncelik sırasına göre (yüksekten düşüğe) açıklanmıştır.

Kimlik

Açıklama

ID_HIGHCLASS

Yüksek öncelikli bir görevi tanımlar. Yüksek öncelikli bir görev, normal veya düşük öncelikli bir göreve kıyasla kaynakları ele geçirme konusunda daha fazla fırsata sahiptir.

CFS yüksek öncelikli görevleri zamanlarken aşağıdaki senaryolar gerçekleşebilir:

  • Düşük öncelikli bir görev çalışırken yüksek öncelikli bir görev uyanırsa, yüksek öncelikli görev düşük öncelikli görevden kaynakları koşulsuz olarak ele geçirebilir.

  • Normal öncelikli bir görev çalışırken yüksek öncelikli bir görev uyanırsa ve yüksek öncelikli görevin sanal çalışma süresi (vruntime), normal öncelikli görevin vruntime değerinden kısaysa yüksek öncelikli görev orijinal zamanlama ilkesini yok sayarak kaynakları ele geçirebilir. Orijinal zamanlama ilkesine göre, bir görevin CPU üzerindeki çalışma süresi minimum çalışma süresinden kısa olduğunda kaynak ele geçiremez.

  • Görevler çalışmak üzere kuyruğa alındığında düşük veya normal öncelikli bir görev çalışıyorsa, vruntime değeri çalışan görevinkinden kısa olan yüksek öncelikli bir görev orijinal zamanlama ilkesini yok sayarak kaynakları ele geçirebilir. Orijinal zamanlama ilkesine göre, bir görevin CPU üzerindeki çalışma süresi minimum çalışma süresinden kısa olduğunda kaynak ele geçiremez.

ID_NORMAL

Normal öncelikli bir görevi tanımlar. Normal öncelikli bir görev, düşük öncelikli bir göreve kıyasla kaynakları ele geçirme konusunda daha fazla fırsata sahiptir.

CFS normal öncelikli görevleri zamanlarken aşağıdaki senaryolar gerçekleşebilir:

  • Düşük öncelikli bir görev çalışırken normal öncelikli bir görev uyanırsa, normal öncelikli görev düşük öncelikli görevden kaynakları koşulsuz olarak ele geçirebilir.

  • Görevler çalışmak üzere kuyruğa alındığında düşük öncelikli bir görev çalışıyorsa, vruntime değeri çalışan görevinkinden kısa olan normal öncelikli bir görev orijinal zamanlama ilkesini yok sayarak kaynakları ele geçirebilir. Orijinal zamanlama ilkesine göre, bir görevin CPU üzerindeki çalışma süresi minimum çalışma süresinden kısa olduğunda kaynak ele geçiremez.

ID_UNDERCLASS

Düşük öncelikli bir görevi tanımlar.

CFS düşük öncelikli görevleri zamanlarken aşağıdaki senaryolar gerçekleşebilir:

Eş zamanlı çoklu iş parçacığı (SMT) CPU'sunda bir ID_SMT_EXPELLER görevi çalışıyorsa, düşük öncelikli görevler mevcut CPU'dan çıkarılır.

Yukarıdaki kimlikler, CPU cgroup'larının kaynak yönetimi ilkelerine göre uygulanır.

  • Aynı seviyedeki CPU cgroup'larında bulunan görevler için kimlik öncelikleri geçerlidir.

  • Farklı seviyelerdeki CPU cgroup'larında bulunan görevler için kimlik öncelikleri üst cgroup'lardaki görevlerde geçerli olmaz ancak alt cgroup'lardaki görevlerde geçerli olur.

  • Aynı kimlik önceliğine sahip görevler arasında kaynaklar CFS ilkelerine uygun şekilde yarışılır. ID_UNDERCLASS veya ID_NORMAL kimliğiyle tanımlanan görevlerin çalışma süresinin minimum değere ulaşmayabileceğini unutmayın.

Diğer kimlikler


Kimlik


Açıklama


ID_SMT_EXPELLER


Bir SMT kovucu görevini tanımlar. Bir SMT kovucu görev bir SMT CPU üzerinde çalıştığında, bu görev eş CPU'daki ID_UNDERCLASS kimliğiyle tanımlanan görevleri çıkarır.


ID_IDLE_SEEKER


Bir görev uyandığında, zamanlayıcı ilkeleri sınırları dahilinde boşta olan CPU'ları bulmaya çalıştığını belirtir.


ID_IDLE_SAVER


sched_idle_saver_wmark çekirdek parametresi ile birlikte kullanılır. sched_idle_saver_wmark kullanarak CPU boşta kalma süresi için bir su işareti yapılandırabilirsiniz. ID_IDLE_SAVER kimliğiyle tanımlanan bir görev uyandığında, boşta kalma süresi belirtilen su işaretini aşan bir CPU bulmaya çalışır.

Arayüzler

  • Kimlikleri yapılandırmak için kullanılan arayüzler

    Grup kimliği özelliği, görev kimliklerini yapılandırmanıza olanak tanımak için aşağıdaki arayüzleri sağlar: /sys/fs/cgroup/cpu/$cg/cpu.identity ve /sys/fs/cgroup/cpu/$cg/cpu.bvt_warp_ns. $cg değişkeni, bir görevin çalıştığı alt cgroup dizin düğümünü belirtir. Arayüzleri kullanmadan önce aşağıdaki hususları dikkate alın:

    • cpu.bvt_warp_ns arayüzü hızlı bir yapılandırma arayüzüdür. Arayüze yazılan değer kimlik değerlerine dönüştürülür.

    • cpu.identity ve cpu.bvt_warp_ns arayüzlerini kullanarak cgroup'ların kimliklerini değiştirebilirsiniz.

    • cpu.identity arayüzü kullanılarak yazılan kimlik değeri, cpu.bvt_warp_ns arayüzü kullanılarak daha önce yazılan kimlik değerinin üzerine yazar ancak cpu.bvt_warp_ns arayüzünün değeri değişmez.

    • cpu.bvt_warp_ns arayüzü kullanılarak yazılan kimlik değeri, cpu.identity arayüzü kullanılarak daha önce yazılan kimlik değerinin üzerine yazar ancak cpu.identity arayüzünün değeri değişmez.

    • Görev kimliklerini yapılandırmak için arayüzlerden birini kullanabilirsiniz. Arayüzleri aynı anda kullanmamanız önerilir.

    • İşletim sistemi çekirdeğiyle ilgili işlemlere aşina değilseniz cpu.identity arayüzünü kullanmamanız önerilir.

    Aşağıdaki tabloda arayüzler açıklanmıştır.

    Arayüz

    Açıklama

    cpu.identity

    Varsayılan değer 0'dır ve bu değer ID_NORMAL kimliğini belirtir.

    Arayüz 5 bitlik bir alandır. Her bit için geçerli değerler: 0 ve 1. 0 değeri kimliğin üstlenilmediğini, 1 değeri ise kimliğin üstlenildiğini belirtir. Her bitin açıklaması:

    • Arayüz boş bırakılırsa ID_NORMAL kimliği kullanılır.

    • Bit 0: ID_UNDERCLASS kimliğini belirtir.

    • Bit 1: ID_HIGHCLASS kimliğini belirtir.

    • Bit 2: ID_SMT_EXPELLER kimliğini belirtir.

    • Bit 3: ID_IDLE_SAVER kimliğini belirtir.

    • Bit 4: ID_IDLE_SEEKER kimliğini belirtir.

    Örneğin, bir cgroup'un kimliğini ID_HIGHCLASS ve ID_IDLE_SEEKER olarak ayarlamak istiyorsanız bit 1 ve bit 4'ü 1, diğer bitleri 0 olarak ayarlayarak 10010 ikilik değerini elde edin; bu değer ondalık olarak 18'e karşılık gelir. Ardından cpu.identity arayüzüne 18 yazmak için echo 18 > /sys/fs/cgroup/cpu/$cg/cpu.identity komutunu çalıştırın.

    cpu.bvt_warp_ns

    Varsayılan değer 0'dır ve bu değer ID_NORMAL kimliğini belirtir. Geçerli değerler:

    • 2: ID_SMT_EXPELLER, ID_IDLE_SEEKER ve ID_HIGHCLASS kimliklerini belirtir. cpu.identity arayüzündeki karşılık gelen değer 22'dir.

    • 1: ID_HIGHCLASS ve ID_IDLE_SEEKER kimliklerini belirtir. cpu.identity arayüzündeki karşılık gelen değer 18'dir.

    • 0: ID_NORMAL kimliğini belirtir. cpu.identity arayüzündeki karşılık gelen değer 0'dır.

    • -1: ID_UNDERCLASS ve ID_IDLE_SAVER kimliklerini belirtir. cpu.identity arayüzündeki karşılık gelen değer 9'dur.

    • -2: ID_UNDERCLASS ve ID_IDLE_SAVER kimliklerini belirtir. cpu.identity arayüzündeki karşılık gelen değer 9'dur.

    Not

    Alibaba Cloud varsayılan olarak cgroup v1 arayüzlerini destekler. 5.10 çekirdek serisindeki çekirdek sürümü 5.10.134-13 ve üzeri olan Alibaba Cloud Linux 3, grup kimliği özelliği için aşağıdaki cgroup v2 arayüzlerini de destekler:

    /sys/fs/cgroup/$cg/cpu.identity ve /sys/fs/cgroup/$cg/cpu.bvt_warp_ns. $cg değişkeni, bir görevin çalıştığı alt cgroup dizin düğümünü belirtir.

  • Çekirdek zamanlama özelliklerini etkinleştirmek veya devre dışı bırakmak için kullanılan arayüzler

    sched_features arayüzünü kullanarak çekirdek zamanlama özelliklerinin varsayılan ayarlarını görüntülemek için aşağıdaki komutu çalıştırabilirsiniz:

    sudo cat /sys/kernel/debug/sched_features

    Aşağıdaki tabloda çekirdek zamanlama özellikleri açıklanmıştır.

    Çekirdek zamanlama özelliği

    Açıklama

    Varsayılan değer

    ID_IDLE_AVG

    Bu özellik, ID_IDLE_SAVER kimliği ile birlikte kullanılarak ID_UNDERCLASS görevlerinin çalışma süresini boşta kalma süresine dahil eder. Bu sayede yalnızca ID_UNDERCLASS görevleri çalışırken CPU'ların boşta kalması önlenir ve kaynak israfının oluşması engellenir.

    ID_IDLE_AVG: özelliğin etkin olduğunu gösterir.

    ID_RESCUE_EXPELLEE

    Bu özellik yük dengeleme senaryolarında kullanılır. Görevler kullanılabilir CPU kaynakları bulamadığında, ID_UNDERCLASS görevlerini çıkaran CPU'lar yükleri dengelemek için kullanılır. Bu özellik, ID_UNDERCLASS görevlerinin çıkarılmış durumundan mümkün olan en kısa sürede çıkmasına yardımcı olur.

    ID_RESCUE_EXPELLEE: özelliğin etkin olduğunu gösterir.

    ID_EXPELLEE_NEVER_HOT

    Bu özellik etkinleştirildikten sonra, çıkarılmakta olan bir görevin başka bir CPU'ya taşınması isteği başlatıldığında sıcak önbellek taşıma isteğinin reddedilmesine neden olmaz. Bu özellik, ID_UNDERCLASS görevlerinin çıkarılmış durumundan mümkün olan en kısa sürede çıkmasına yardımcı olur.

    NO_ID_EXPELLEE_NEVER_HOT: özelliğin devre dışı olduğunu gösterir.

    ID_LOOSE_EXPEL

    Bu özellik etkinleştirildikten sonra CPU'lar görev seçerken çıkarma durumunu her seferinde güncellemez; bunun yerine durumu sched_expel_update_interval çekirdek parametresiyle belirtilen zamana göre otomatik olarak günceller. Bu özelliğin yapılandırması yalnızca CPU'ların görev seçmesi sırasındaki durum güncellemelerini etkiler. İşlemci arası kesmeler (IPI) için yapılan güncellemeler etkilenmez.

    NO_ID_LOOSE_EXPEL: özelliğin devre dışı olduğunu gösterir.

    ID_LAST_HIGHCLASS_STAY

    Bu özellik etkinleştirildikten sonra, bir CPU üzerinde çalışan son ID_HIGHCLASS görevi başka bir CPU'ya taşınamaz.

    ID_LAST_HIGHCLASS_STAY: özelliğin etkin olduğunu gösterir.

    ID_EXPELLER_SHARE_CORE

    • Bu özellik etkinse, ID_SMT_EXPELLER görevleri zaten ID_SMT_EXPELLER görevlerinin çalıştığı fiziksel çekirdeklerde öncelikli olarak çalışabilir.

    • Bu özellik devre dışıysa, ID_SMT_EXPELLER görevleri fiziksel çekirdekler arasında dağıtılır. Bu sayede ID_SMT_EXPELLER görevleri birbirleriyle çakışmaz.

    ID_EXPELLER_SHARE_CORE: özelliğin etkin olduğunu gösterir.

    ID_ABSOLUTE_EXPEL

    Alibaba Cloud Linux 3'te bu özellik çekirdek sürümü 5.10.134-16.3 ile tanıtılmıştır ve 5.10 çekirdek serisindeki 5.10.134-16.3 ve üzeri çekirdek sürümlerinde kullanılabilir. Bu özellik etkinleştirildikten sonra, çalışmak üzere görev kuyruklarında ID_NORMAL veya ID_HIGHCLASS görevleri varsa ID_UNDERCLASS görevleri kesinlikle baskılanır ve zamanlanamaz. En kötü durum senaryolarında ID_UNDERCLASS görevleri açlık yaşayabilir. Hibrit dağıtım senaryolarında özelliği etkinleştirmeden önce farklı kimliklere sahip görevlerin yüklerini değerlendirin.

    NO_ID_ABSOLUTE_EXPEL: özelliğin devre dışı olduğunu gösterir.

    ID_LOAD_BALANCE

    Alibaba Cloud Linux 3'te bu özellik çekirdek sürümü 5.10.134-16.3 ile tanıtılmıştır ve 5.10 çekirdek serisindeki 5.10.134-16.3 ve üzeri çekirdek sürümlerinde kullanılabilir. Bu özellik etkinleştirildikten sonra, zamanlayıcı yalnızca ID_UNDERCLASS görevlerinin çalıştığı CPU'ları boşta olarak kabul eder ve yükleri dengelerken ID_HIGHCLASS görevlerini boşta olan CPU'lara taşımaya çalışır. Taşıma sırasında zamanlayıcı ID_HIGHCLASS görevlerini CPU'lar arasında dağıtmaya çalışır. Bu durum, ID_HIGHCLASS görevleri arasında CPU kaynak çakışmasını ve Hyper-Threading (HT) girişimini önler ve her bir ID_HIGHCLASS görevinin yeterli CPU kaynağı almasını sağlar.

    NO_ID_LOAD_BALANCE: özelliğin devre dışı olduğunu gösterir.

  • Çekirdek parametrelerini yapılandırmak için sysctl tarafından kullanılan arayüzler

    Grup kimliği özelliğinin belirli yetenekleri çekirdek parametrelerinin değerlerine bağlıdır. Aşağıdaki tabloda çekirdek parametreleri açıklanmıştır.

    Çekirdek parametresi

    Açıklama

    Birim

    Varsayılan değer

    /proc/sys/kernel/sched_expel_update_interval

    Bir CPU görev seçerken çıkarma durumunun otomatik olarak güncellendiği aralık. Bu çekirdek parametresi yalnızca ID_LOOSE_EXPEL özelliği etkinse geçerli olur.

    ms

    10

    /proc/sys/kernel/sched_expel_idle_balance_delay

    Bir CPU görevleri çıkarırken geçerli olan minimum idle balance aralığı. -1 değeri idle balance işleminin izin verilmediğini belirtir.

    Bir CPU'da yalnızca ID_UNDERCLASS görevleri varsa ve bu görevler çıkarılıyorsa CPU boşta kalır. Yük dengeleme etkilerini iyileştirmek için CPU üzerinde Idle balance işlemi gerçekleştirilir. Ancak bu durum ID_UNDERCLASS görevlerine zarar verebilir. sched_expel_idle_balance_delay parametresini belirterek bu sorunu hafifletebilirsiniz.

    ms

    -1

    /proc/sys/kernel/sched_idle_saver_wmark

    CPU boşta kalma süresi için su işareti. Bir ID_IDLE_SAVER görevi uyandığında, boşta kalma süresi belirtilen su işaretini aşan boşta bir CPU bulmaya çalışır.

    ns

    0

    /proc/sys/kernel/sched_group_identity_enabled

    Çekirdek sürümü 4.19.91-26.4 itibariyle grup kimliği özelliğini etkinleştirmenize olanak tanımak üzere /proc/sys/kernel/sched_group_identity_enabled arayüzü eklenmiştir. Grup kimliği özelliğini kullanmadan önce echo 1 > /proc/sys/kernel/sched_group_identity_enabled komutunu çalıştırarak özelliği etkinleştirmeniz gerekir.

    Grup kimliği özelliği etkinleştirildikten sonra, cgroup'un cpu.bvt_warp_ns veya cpu.identity arayüzünün değeri sıfır değilse /proc/sys/kernel/sched_group_identity_enabled arayüzüne veri yazılamaz.

    Not

    Çekirdek sürümünüz 4.19.91-26.4.al7, 4.19.91-26.5.al7 veya 4.19.91-26.6.al7 ise sched_group_identity_enabled arayüzü 1 olarak ayarlanır ve cgroup'un cpu.bvt_warp_ns arayüzünün değeri sıfır değilse /proc/sys/kernel/sched_group_identity_enabled ayarlarını okurken hatalar oluşur. Bu, arayüzün normal kullanımını etkilemeyen bir okuma hatasıdır. Bu hata çekirdek sürümü 4.19.91-27.al7 ve sonraki sürümlerde düzeltilmiştir.

    Yok

    0

Bilgi çıktısı

Grup kimliği özelliğini kullanırken çeşitli parametreleri görüntülemek için aşağıdaki komutu çalıştırabilirsiniz:

cat /proc/sched_debug

Aşağıdaki tabloda çıktı parametreleri açıklanmıştır.


Parametre


Açıklama


nr_high_running


Mevcut CPU üzerinde çalışan ID_HIGHCLASS görevlerinin sayısı.


nr_under_running


Mevcut CPU üzerinde çalışan ID_UNDERCLASS görevlerinin sayısı.


nr_expel_immune


Mevcut CPU üzerinde çalışan ID_UNDERCLASS dışındaki görevlerin sayısı.


smt_expeller


Mevcut CPU üzerinde ID_SMT_EXPELLER görevlerinin çalışıp çalışmadığını gösterir. 1 değeri mevcut CPU üzerinde ID_SMT_EXPELLER görevlerinin çalıştığını, 0 değeri ise mevcut CPU üzerinde ID_SMT_EXPELLER görevlerinin çalışmadığını gösterir.


on_expel


Eş SMT CPU üzerinde ID_SMT_EXPELLER görevlerinin çalışıp çalışmadığını gösterir. 1 değeri eş SMT CPU üzerinde ID_SMT_EXPELLER görevlerinin çalıştığını, 0 değeri ise eş SMT CPU üzerinde ID_SMT_EXPELLER görevlerinin çalışmadığını gösterir.


high_exec_sum


Mevcut CPU üzerinde ID_HIGHCLASS görevlerinin kümülatif çalışma süresi.


under_exec_sum


Mevcut CPU üzerinde ID_UNDERCLASS görevlerinin kümülatif çalışma süresi.


h_nr_expel_immune


cfs_rq üzerinde çalışan ID_UNDERCLASS dışındaki görevlerin sayısı.


expel_start


CPU görevleri çıkarmaya başladığında iki kırmızı-siyah ağacın minimum vruntime değerleri arasındaki fark.


expel_spread


CPU çıkarma durumu nedeniyle iki kırmızı-siyah ağacın minimum vruntime değerleri arasındaki kümülatif fark.


min_under_vruntime


Düşük öncelikli kırmızı-siyah ağacın minimum vruntime değeri.