全部产品
Search
文档中心

Container Service for Kubernetes:Konfigurasikan Prioritas Antrian Slurm

更新时间:Jun 26, 2025

Antrian merupakan elemen konfigurasi penting dalam penjadwalan tugas untuk manajemen sumber daya dan alokasi yang efektif, pengoptimalan penjadwalan pekerjaan, peningkatan utilisasi sistem, serta memenuhi berbagai persyaratan pekerjaan. Konfigurasi antrian yang tepat memastikan tugas prioritas tinggi menerima sumber daya yang diperlukan terlebih dahulu, memaksimalkan efisiensi pemanfaatan sumber daya. Topik ini menjelaskan cara mengimplementasikan strategi konfigurasi antrian yang sesuai dalam lingkungan Slurm untuk memproses sebanyak mungkin tugas saat pekerjaan dikirimkan atau status pekerjaan berubah, mencapai kinerja optimal.

1. Fitur inti Slurm

  • Alokasi sumber daya: Mengalokasikan sumber daya CPU/memori/GPU sesuai kebutuhan, menghindari konflik dan pemborosan.

  • Penjadwalan pekerjaan: Menjadwalkan antrian pekerjaan secara dinamis, mengeksekusi sesuai prioritas, dan memantau status tugas secara keseluruhan.

  • Kontrol prioritas: Tugas antrian prioritas tinggi dijadwalkan pertama.

  • Alat pemantauan: Memantau penggunaan sumber daya dan status pekerjaan melalui scontrol/sacct.

  • Dukungan penyesuaian: Beberapa antrian menyesuaikan dengan berbagai persyaratan (seperti tugas intensif CPU/memori/GPU).

  • Optimasi sistem: Meningkatkan pemanfaatan sumber daya, mengurangi waktu idle, dan meningkatkan efisiensi komputasi.

Catatan

Topik ini didasarkan pada versi Slurm 24.05. Versi lainnya mungkin memiliki perbedaan.

2. Jenis antrian Slurm

Tugas Slurm dieksekusi berdasarkan urutan prioritas. Jika partisi memiliki tugas yang tidak dapat dijadwalkan, tugas berikutnya akan dijeda. Tugas prioritas tinggi dapat merebut sumber daya dari tugas prioritas rendah. Tugas yang direbut dapat dibatalkan, direset, atau ditangguhkan. Jika Anda mengaktifkan penjadwalan backfill (default), sistem menghitung apakah tugas prioritas rendah dapat berjalan tanpa menunda tugas prioritas tinggi berdasarkan siklus bf_interval. Ini memerlukan pendudukan seluruh mesin dan dapat memicu preemption di tingkat mesin. Konfigurasi penjadwalan ditentukan melalui SchedulerType (plugin default sched/backfill) dan parameter detail SchedulerParameters di slurm.conf. Untuk konfigurasi parameter spesifik, lihat dokumentasi resmi.

Selama penjadwalan, semua tugas diintegrasikan ke dalam satu daftar, dan urutan eksekusinya ditentukan melalui algoritma prioritas yang berbeda. Slurm mendukung dua jenis antrian berikut:

  • Antrian First In, First Out (FIFO), di mana tugas diurutkan berdasarkan urutan waktu pengiriman mereka.

  • Antrian MultiFactors, yang merupakan mekanisme penjadwalan tugas yang lebih canggih dan diaktifkan secara default. Ini dapat menghitung prioritas pekerjaan berdasarkan beberapa faktor.

2.1 Antrian First In, First Out

Secara default, Slurm menggunakan FIFO sebagai dasar untuk mengalokasikan prioritas pekerjaan. File konfigurasi untuk penjadwalan prioritas disimpan di slurm.conf. Anda dapat mengonfigurasi prioritas dengan memodifikasi parameter PriorityType.

# 1. Temukan dan edit file slurm.conf
sudo nano /etc/slurm-llnl/slurm.conf

# 2. Aktifkan mode preemption dan tentukan strategi preemption berdasarkan prioritas first in, first out
PriorityType=priority/basic 
Penting

Anda disarankan untuk mencadangkan file slurm.conf asli sebelum melakukan perubahan, sehingga Anda dapat mengembalikannya jika terjadi masalah. Selain itu, untuk perubahan besar dalam lingkungan produksi, Anda disarankan untuk mengujinya secara menyeluruh di lingkungan pengujian terlebih dahulu.

2.2 Antrian pekerjaan Multifactors

Penjadwalan multifactor Slurm menentukan prioritas tugas melalui perhitungan bobot dari faktor-faktor berikut: waktu eksekusi pekerjaan, perbedaan sumber daya (dialokasikan vs. dikonsumsi), ukuran pekerjaan, parameter pengguna, partisi data, TRES (Total Resource Equivalents) jenis, dan Quality of Service (QoS). Untuk alokasi bobot dan logika perhitungan spesifik, lihat instruksi konfigurasi prioritas multifactor.

Job_priority =
	site_factor +
	(PriorityWeightAge) * (age_factor) +
	(PriorityWeightAssoc) * (assoc_factor) +
	(PriorityWeightFairshare) * (fair-share_factor) +
	(PriorityWeightJobSize) * (job_size_factor) +
	(PriorityWeightPartition) * (priority_job_factor) +
	(PriorityWeightQOS) * (QOS_factor) +
	SUM(TRES_weight_cpu * TRES_factor_cpu,
	    TRES_weight_<type> * TRES_factor_<type>,
	    ...)
	- nice_factor
Catatan

Prioritas pekerjaan Slurm dihitung menggunakan faktor bobot berikut:

  • Nilai dasar: site_factor (skor kustom).

  • Bobot waktu tunggu pekerjaan: Semakin lama waktu tunggu pekerjaan, semakin tinggi bobotnya (PriorityWeightAge × age_factor).

  • Bobot asosiasi: Keadilan penggunaan sumber daya kelompok pengguna/akun (PriorityWeightAssoc × assoc_factor).

  • Bobot fair share: Menyesuaikan skor berdasarkan proporsi penggunaan sumber daya (PriorityWeightFairshare × fair-share_factor).

  • Bobot ukuran pekerjaan: Prioritas pekerjaan kecil/besar (PriorityWeightJobSize × job_size_factor).

  • Bobot partisi: Prioritas partisi (PriorityWeightPartition × priority_job_factor).

  • Bobot QoS: Tingkat layanan kualitas (PriorityWeightQOS × QOS_factor).

  • Bobot sumber daya: Jenis sumber daya (CPU/GPU, dll.) diberi bobot.

  • Penurunan Nice: - nice_factor (nilai lebih tinggi berarti prioritas lebih rendah).

Anda dapat mencapai penjadwalan tugas yang adil dan efisien dengan menyesuaikan parameter bobot secara dinamis.

Contoh aplikasi tipikal.

  • Selesaikan pekerjaan kecil dengan cepat:

    Atur PriorityWeightJobSize=-1, menurunkan prioritas pekerjaan besar sehingga pekerjaan kecil dijadwalkan lebih cepat.

  • Jamin pengguna/kelompok kritis:

    Pastikan pekerjaan dari tim penting dijalankan pertama melalui PriorityWeightAssoc dan Fair-share_factor.

  • Perlindungan kelaparan sumber daya:

    Konfigurasikan PriorityWeightFairshare=2000, secara signifikan meningkatkan prioritas pekerjaan dari pengguna dengan penggunaan sumber daya rendah.

Contoh: Menyiapkan prioritas pekerjaan multifactor

Menyesuaikan prioritas partisi

Slurm dapat membagi mesin berdasarkan struktur organisasi, membatasi tugas hanya berjalan di kolam sumber daya yang ditugaskan. Tugas diklasifikasikan sebagai mendesak (merebut tugas prioritas rendah) atau tidak mendesak (dieksekusi dengan cepat tetapi tidak memblokir tugas mendesak). Saat tugas mendekati tenggat waktu dan perlu ditandai sebagai mendesak, Slurm tidak dapat menyesuaikan ini secara otomatis. Diperlukan migrasi manual ke antrian prioritas tinggi.

Anda dapat membuat dua partisi yang menunjuk ke kolam node yang sama (membedakan tugas mendesak/tidak mendesak) dan menyesuaikan prioritas secara dinamis dengan mengubah partisi tempat tugas tersebut berada. Ini meningkatkan pemanfaatan sumber daya dan menyederhanakan operasi. Ini mendukung penjadwalan fleksibel beban kerja dinamis sambil mengurangi kompleksitas manajemen. Ini tidak hanya membantu sistem beradaptasi lebih baik dengan persyaratan beban kerja yang berubah secara dinamis tetapi juga menyederhanakan pekerjaan manajemen personel operasi dalam lingkungan pekerjaan yang kompleks. Anda dapat merujuk langkah-langkah berikut untuk pengaturan.

  1. Pertama, aktifkan saklar fungsi preemption di klaster dan atur jenis preemption ke preempt/partition_prio.

    # 1. Temukan dan edit file slurm.conf
    sudo nano /etc/slurm-llnl/slurm.conf
    
    # 2. Aktifkan mode preemption dan tentukan strategi preemption berdasarkan prioritas partisi
    PreemptMode=preempt/partition_prio
       
    # 3. Perilaku saat pekerjaan direbut, mendefinisikan apa yang terjadi saat pekerjaan direbut.
    # cancel berarti mengakhiri pekerjaan; suspend akan menjeda hingga sumber daya tersedia kembali. Pilih berdasarkan kebutuhan Anda.
    PreemptType=suspend  # atau "cancel"
    Penting

    Anda disarankan untuk mencadangkan file slurm.conf asli sebelum melakukan perubahan, sehingga Anda dapat mengembalikannya jika terjadi masalah. Selain itu, untuk perubahan besar dalam lingkungan produksi, Anda disarankan untuk mengujinya secara menyeluruh di lingkungan pengujian terlebih dahulu.

    Klik untuk melihat deskripsi parameter terperinci

    Parameter

    Nilai yang Direkomendasikan

    Fungsi

    SelectType

    select/cons_tres

    Mendefinisikan strategi alokasi sumber daya, menentukan cara mengalokasikan tugas ke sumber daya node.

    Catatan

    Worker yang dibuat oleh klaster Slurm menggunakan fitur node dinamis, jadi hanya tipe select/cons_tres yang didukung.

    SelectTypeParameters

    CR_Core

    Parameter spesifik yang diteruskan ke plugin SelectType, mengontrol detail alokasi sumber daya.

    SchedulerType

    sched/backfill

    Menentukan jenis algoritma penjadwalan, menentukan bagaimana tugas diatur ke node.

    PriorityType

    priority/multifactor

    Mendefinisikan aturan perhitungan prioritas tugas, menentukan urutan penjadwalan tugas.

    PreemptMode

    SUSPEND,GANG

    Kondisi untuk mengaktifkan strategi preemption, menentukan dalam situasi apa tugas yang sedang berjalan dapat direbut.

    Catatan

    Saat preemption diaktifkan, hanya SUSPEND dan GANG yang diizinkan di bawah plugin select/cons_tres type select.

    PreemptType

    preempt/partition_prio

    Memilih tipe mekanisme preemption, menentukan dengan tepat bagaimana perilaku preemption dilakukan.

    Catatan

    Saat ini mendukung preempt/qos dan preempt/partition_prio. Dalam contoh ini, partisi digunakan sebagai dasar untuk preemption.

  2. Anda dapat menambahkan partisi prioritas tinggi di klaster menggunakan perintah berikut, atau dengan menambahkan catatan partisi baru di slurm.conf. scontrol create partition=hipri PriorityTier=2 nodes=ALL Setelah itu, Anda dapat mencapai preemption pekerjaan dengan mengirimkan pekerjaan ke partisi hipri atau mengubah pekerjaan ke partisi prioritas tinggi. Berikut adalah contoh pengiriman pekerjaan.

    # 1. Tambahkan partisi prioritas tinggi di klaster Slurm.
    root@slurm-test-0:/# scontrol create partition=hipri PriorityTier=2 nodes=ALL
    
    # 2. Lihat partisi klaster saat ini.
    root@slurm-test-0:/# scontrol show partition
    # Hasil.
    PartitionName=debug
       AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
       AllocNodes=ALL Default=YES QoS=N/A
       DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
       MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=0 LLN=NO MaxCPUsPerNode=UNLIMITED MaxCPUsPerSocket=UNLIMITED
       Nodes=slurm-test-worker-cpu-0
       PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO OverSubscribe=FORCE:1
       OverTimeLimit=NONE PreemptMode=GANG,SUSPEND
       State=UP TotalCPUs=4 TotalNodes=1 SelectTypeParameters=NONE
       JobDefaults=(null)
       DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
       TRES=cpu=4,mem=6401M,node=1,billing=4
       ResumeTimeout=GLOBAL SuspendTimeout=GLOBAL SuspendTime=GLOBAL PowerDownOnIdle=NO
    
    PartitionName=hipri
       AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
       AllocNodes=ALL Default=NO QoS=N/A
       DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
       MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=1 LLN=NO MaxCPUsPerNode=UNLIMITED MaxCPUsPerSocket=UNLIMITED
       Nodes=slurm-test-worker-cpu-0
       PriorityJobFactor=1 PriorityTier=2 RootOnly=NO ReqResv=NO OverSubscribe=NO
       OverTimeLimit=NONE PreemptMode=GANG,SUSPEND
       State=UP TotalCPUs=0 TotalNodes=0 SelectTypeParameters=NONE
       JobDefaults=(null)
       DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
       TRES=(null)
       ResumeTimeout=GLOBAL SuspendTimeout=GLOBAL SuspendTime=GLOBAL PowerDownOnIdle=NO
    # Kirim 4 tugas berturut-turut.
    root@slurm-test-0:/# srun sleep 1d &
    root@slurm-test-0:/# srun sleep 1d &
    root@slurm-test-0:/# srun sleep 1d &
    root@slurm-test-0:/# srun sleep 1d &
    # Periksa status klaster saat ini.
    root@slurm-test-0:/# squeue
    # Klaster saat ini memiliki 4 tugas yang sedang berjalan.
    JOBID  PARTITION   NAME     USER   ST     TIME  NODES NODELIST(REASON)
        4     debug    sleep     root  R       0:03  1    slurm-test-worker-cpu-0
        2     debug    sleep     root  R       0:04  1    slurm-test-worker-cpu-0
        3     debug    sleep     root  R       0:04  1    slurm-test-worker-cpu-0
        1     debug    sleep     root  R       0:05  1    slurm-test-worker-cpu-0
    # Kirim tugas ke partisi prioritas tinggi.
    root@slurm-test-0:/# srun --partition=hipri sleep 1d &
    root@slurm-test-0:/# squeue
    # ST (status) dari tugas 4 telah berubah dari R menjadi S, dan status tugas 5 berubah menjadi R, menunjukkan bahwa tugas 4 telah ditangguhkan.
     JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
         2     debug    sleep     root  R       1:06      1 slurm-test-worker-cpu-0
         3     debug    sleep     root  R       1:06      1 slurm-test-worker-cpu-0
         1     debug    sleep     root  R       1:07      1 slurm-test-worker-cpu-0
         4     debug    sleep     root  S       0:59      1 slurm-test-worker-cpu-0
         5     hipri    sleep     root  R       0:06      1 slurm-test-worker-cpu-0
    # Kirim tugas prioritas rendah.
    root@slurm-test-0:/# srun sleep 1d &
    # Perbarui tugas ke prioritas tinggi.
    root@slurm-test-0:/# scontrol update jobid=6 partition=hipri
    root@slurm-test-0:/# squeue
    # Tugas 1 dan 2 telah ditangguhkan. Ini karena tugas dalam partisi yang sama berbagi waktu eksekusi, jadi 1, 2, 3, 4 akan dieksekusi secara bergantian.
     JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
         4     debug    sleep     root  R       3:21      1 slurm-test-worker-cpu-0
         3     debug    sleep     root  R       3:33      1 slurm-test-worker-cpu-0
         2     debug    sleep     root  S       3:41      1 slurm-test-worker-cpu-0
         1     debug    sleep     root  S       4:01      1 slurm-test-worker-cpu-0
         6     hipri    sleep     root  R       0:03      1 slurm-test-worker-cpu-0
         5     hipri    sleep     root  R       3:33      1 slurm-test-worker-cpu-0
    

Menyesuaikan prioritas kualitas layanan QoS

Slurm perlu mengonfigurasi QoS prioritas tinggi/rendah (secara default, normal dengan prioritas 0 sudah ada) dan mengaktifkan preemption dengan membuat QoS prioritas tinggi melalui sacctmgr. Fungsionalitas preemption perlu diaktifkan di slurm.conf (seperti PreemptMode=priority), tetapi perhatikan: Jika PreemptType=SUSPEND,GANG, setelah tugas prioritas tinggi merebut, tugas prioritas rendah akan berbagi waktu eksekusi dengan tugas prioritas tinggi dalam mode time-sharing (tidak sepenuhnya terganggu). Mengonfigurasi QoS memerlukan penggunaan alat sacctmgr. Berikut adalah perintah umum untuk membuat QoS prioritas tinggi.

sacctmgr add qos high preempt=normal preemptmode=gang,suspend priority=10
Catatan
  • preempt=normal: Menentukan bahwa high QoS dapat merebut tugas dengan normal QoS.

  • preemptmode=gang,suspend:

    • Mode Gang: Tugas yang merebut perlu sepenuhnya mendapatkan sumber daya sebelum mulai dieksekusi.

    • Mode Suspend: Tugas yang direbut ditangguhkan bukan diakhiri, melepaskan sumber daya untuk digunakan oleh perebut, dan dilanjutkan saat tugas perebut selesai.

  • priority=10: Skor dasar prioritas default untuk tugas high QoS adalah 10 (nilai lebih tinggi berarti prioritas lebih tinggi).

Mengaktifkan saklar terkait preemption di slurm.conf melibatkan parameter berikut. Selain itu, saat mengonfigurasi Partition, Anda perlu menambahkan OverSubscribe=FORCE:1 di akhir konfigurasi.

Klik untuk melihat deskripsi parameter terperinci

Parameter

Nilai yang Direkomendasikan

Fungsi

SelectType

select/cons_tres

Mendefinisikan strategi alokasi sumber daya, menentukan cara mengalokasikan tugas ke sumber daya node.

Catatan

Worker yang dibuat oleh klaster Slurm menggunakan fitur node dinamis, jadi hanya tipe select/cons_tres yang didukung.

SelectTypeParameters

CR_Core

Parameter spesifik yang diteruskan ke plugin SelectType, mengontrol detail alokasi sumber daya.

SchedulerType

sched/backfill

Menentukan jenis algoritma penjadwalan, menentukan bagaimana tugas diatur ke node.

PriorityType

priority/multifactor

Mendefinisikan aturan perhitungan prioritas tugas, menentukan urutan penjadwalan tugas.

PreemptMode

SUSPEND,GANG

Kondisi untuk mengaktifkan strategi preemption, menentukan dalam situasi apa tugas yang sedang berjalan dapat direbut.

Catatan

Saat preemption diaktifkan, hanya SUSPEND dan GANG yang diizinkan di bawah plugin select/cons_tres type select.

PreemptType

preempt/qos

Memilih tipe mekanisme preemption, menentukan dengan tepat bagaimana perilaku preemption dilakukan.

Catatan

Saat ini mendukung preempt/qos dan preempt/partition_prio. Dalam contoh ini, QoS digunakan sebagai dasar untuk preemption.

Berikut adalah contoh penggunaan QoS berbeda untuk manajemen preemption tugas:

# Lihat QoS saat ini.
root@slurm-test-0:/# sacctmgr show qos format=name
      Name
----------
    normal
# Buat QoS prioritas tinggi.
root@slurm-test-0:/# sacctmgr add qos high preempt=normal preemptmode=gang,suspend priority=10
 Adding QOS(s)
  high
 Settings
  Description    = high
  Preempt                  = normal
  PreemptMode              = GANG,SUSPEND
  Priority                 = 10
Apakah Anda ingin menyimpan perubahan? (Anda memiliki 30 detik untuk memutuskan)
(N/y): y
# Lihat QoS saat ini.
root@slurm-test-0:/# sacctmgr show qos format=name,priority,preempt
      Name   Priority    Preempt
---------- ---------- ----------
    normal          0
      high         10     normal
# Isi test.sh adalah sebagai berikut.
# #!/bin/bash
# srun sleep 10m
# Kirim lima tugas berturut-turut.
root@slurm-test-0:/# sbatch test.sh
Submitted batch job 4
root@slurm-test-0:/# sbatch test.sh
Submitted batch job 5
root@slurm-test-0:/# sbatch test.sh
Submitted batch job 6
root@slurm-test-0:/# sbatch test.sh
Submitted batch job 7
root@slurm-test-0:/# sbatch test.sh
Submitted batch job 8
root@slurm-test-0:/# squeue # Tugas 8 dalam status Pending
 JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
     8     debug  test.sh     root PD       0:00      1 (Resources)
     7     debug  test.sh     root  R       0:03      1 slurm-test-worker-cpu-0
     5     debug  test.sh     root  R       0:15      1 slurm-test-worker-cpu-0
     6     debug  test.sh     root  R       0:15      1 slurm-test-worker-cpu-0
     4     debug  test.sh     root  R       0:18      1 slurm-test-worker-cpu-0
root@slurm-test-0:/# sbatch --qos=high test.sh # Kirim tugas ke QoS prioritas tinggi
Submitted batch job 9
root@slurm-test-0:/# squeue # QoS prioritas tinggi mulai dieksekusi, berbagi sumber daya dengan tugas lain dalam mode time-sharing
 JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
     8     debug  test.sh     root PD       0:00      1 (Resources)
     7     debug  test.sh     root  R       0:26      1 slurm-test-worker-cpu-0
     5     debug  test.sh     root  R       0:38      1 slurm-test-worker-cpu-0
     6     debug  test.sh     root  R       0:38      1 slurm-test-worker-cpu-0
     4     debug  test.sh     root  R       0:41      1 slurm-test-worker-cpu-0
     9     debug  test.sh     root  S       0:00      1 slurm-test-worker-cpu-0

Menyesuaikan prioritas ukuran pekerjaan

Prioritas ukuran pekerjaan ditentukan oleh PriorityWeightJobSize dan PriorityWeightAge=1000.

  • Job Size Factor

    Tugas non-mendesak perlu memanfaatkan sumber daya klaster secara efisien (tanpa melebihi tenggat waktu). Saat waktu eksekusi tugas tidak diketahui, penjadwalan backfill gagal. Dalam hal ini, memprioritaskan tugas kecil mengurangi head-of-line blocking, sementara meningkatkan prioritas tugas besar berdasarkan panjang antrian mencegah kelaparan. Tugas besar yang mendekati tenggat waktu dapat merebut sumber daya dari tugas kecil (menangguhkan tugas kecil hingga selesai).

    Untuk meningkatkan utilisasi klaster untuk tugas non-mendesak (tanpa melebihi tenggat waktu), Anda dapat mengadopsi strategi berikut:

    • Prioritaskan penjadwalan tugas kecil untuk mengurangi head-of-line blocking.

    • Tingkatkan prioritas tugas besar berdasarkan panjang antrian untuk mencegah kelaparan.

    • Izinkan tugas besar yang mendekati tenggat waktu untuk merebut sumber daya dari tugas kecil (tugas kecil ditangguhkan hingga selesai). Saat waktu eksekusi tugas tidak diketahui, penjadwalan backfill gagal, memerlukan mekanisme di atas untuk memastikan pemanfaatan sumber daya yang efisien.

    Dengan menerapkan langkah-langkah ini, Anda dapat memaksimalkan pemanfaatan sumber daya klaster sambil memastikan tugas kritis selesai tepat waktu, serta menyeimbangkan berbagai jenis tugas.

    Konfigurasi berikut perlu dilakukan di slurm.conf (hanya konfigurasi khusus yang ditampilkan di sini, konfigurasi lain di slurm.conf tidak terpengaruh):

    PriorityFavorSmall=YES
    PriorityWeightAge=1000
    PriorityWeightJobSize=1000
    PriorityMaxAge=1-0
  • Job Waiting Time Factor

    Setelah menyiapkan prioritas ukuran pekerjaan, waktu tunggu pengiriman menjadi faktor kedua. Slurm menghitung skor ukuran pekerjaan berdasarkan rasio sumber daya yang diminta terhadap total sumber daya klaster. Jika PriorityFavorSmall=YES diaktifkan, rumus skornya adalah: skor = (1 - rasio sumber daya) × PriorityWeightJobSize. Sebagai contoh, ketika klaster memiliki 4 core CPU tersedia:

    • Skor tugas yang meminta 1 core: (1 - 1/4) × bobot = 0.75×bobot → contoh skor 0.375 (jika bobot adalah 0.5).

    • Tugas yang meminta 4 core mendapat skor 0 (sepenuhnya menggunakan sumber daya).

    Perhitungan prioritas AgeFactor:

    • Tugas yang melebihi PriorityMaxAge: Secara langsung menerima poin penuh PriorityWeightAge.

    • Tugas lain mendapat skor berdasarkan proporsi waktu pengiriman. Misalnya, dengan PriorityWeightAge=1000, setiap menit menambah sekitar 0.69 poin, mencapai 1000 poin penuh setelah 24 jam.

    Rekomendasi penjadwalan backfill: Jika waktu eksekusi tugas dapat diperkirakan, Anda disarankan untuk mengaktifkan penjadwalan backfill default (atau mengonfigurasi secara manual SchedulerType=sched/backfill), memungkinkannya menjadwalkan tugas kecil untuk mengisi periode idle sebelum tugas besar. Dikombinasikan dengan mekanisme prioritas tugas besar default sistem dan fungsionalitas preemption mendekati tenggat waktu, ini dapat menyeimbangkan pemanfaatan sumber daya dan keadilan.