Note: For English version, please scroll down.
lssrv
, kaynak yönetimi Slurm tarafından yapılan kümelerdeki kuyruk (partition) durumunu göstermek; kullanıcıların ve sistem yöneticilerinin sistem yükünü anlamasına ve işlerini gönderirken doğru kuyrukları seçmelerine yardımcı olmak için geliştirilmiş bir araçtır.
lssrv
, kuyrukları ve ilgili bilgileri tablo halinde, anlaşılması kolay bir biçimde gösterir.
- Sadece kullanıcının erişimi olan kuyrukları gösterir.
- Kuyruk durumu önbelleklendiği için sistem yükü oluşturmaz.
- Kümeye kurulumu ve kullanımı sistem yapılandırması değişikliği gerektirmez.
- Listede görünmesi istenmeyen bazı kuyruklar erişim izninden bağımsiz olarak gizlenebilir.
lssrv
, kullanıcının erişimi olan tüm kuyrukların bir listesini alır.- Genel kuyruk dosyası durumuna erişerek ilgili kuyrukardaki bilgileri toplar.
- Bu bilgileri bir tablo haline getirerek kullanıcıya sunar.
Not: lssrv
'nin ihtiyaç duyduğu kuyruk dosyası düzenli olarak cron
tarafından çalıştırılacak bir betik ile üretilmelidir. Bu süre sistem yöneticileri tarafından belirlenebilecek olsa da, 5 dakikalık periyotların uygun olduğu gözlemlenmiştir. Üretilen bu dosyada kullanıcı bilgisi bulunmadığından, dosyanın herkes tarafından okunabilmesinin bir sakıncası yoktur.
lssrv
, Slurm yapılandırması üzerinde herhangi bir değişiklik yapılmadan, bir kaç dosyanın kopyalanması ile kolayca kurulabilmektedir.
- Go 1.21.5 ya da daha yeni bir sürüm.
- Aktif bir internet bağlantısı.
Not: Geri kalan bağımlılıklar derlenme sırasında otomatik şekilde indirilecektir.
lssrv
'nin kurulmadan önce derlenmesi gerekmektedir.
- Eğer kurmadıysanız, Go'nun son versiyonunu sisteminize kurun.
- Bu kod deposunu sisteminize klonlayın ve
src/
dizinine gidin. go build lssrv.go
komutunu çalıştırın. Bağımlılıklar indirilecek velssrv
derlenecektir.
mkdir -p /var/cache/lssrv
komutu ilelssrv
'nin kullanacağı önbellek dizinini oluşturun. İlgili dizinin sahibiniroot:root
, haklarını755 (drwxr-xr-x)
olarak değiştirin.- Derlemiş olduğunuz
/src/lssrv
dosyasını/usr/local/bin/
dizinine kopyalayın. Dosyaların sahibiniroot:root
, haklarını755 (-rwxr-xr-x)
olarak değiştirin. /src/cron.d/lssrv_helper
dosyasını/etc/cron.d/
dizinine kopyalayın, sahibiniroot:root
, haklarını644 (-rw-r--r--)
olarak değiştirin./src/conf/lssrv.conf
dosyasını/etc/
dizinine kopyalayın, sahibiniroot:root
, haklarını644 (-rw-r--r--)
olarak değiştirin./etc/lssrv.conf
dosyasını açıp gerekli değişiklikleri yapın. Dosya ile ilgili belgelendirme dosya içerisindedir.
Cron bir kere çalıştıktan sonra /var/cache/lssrv/squeue.state
dosyası oluşmalıdır. Dosya oluştuktan sonra lssrv
komutunu çalıştırıp sistemi test edebilirsiniz.
lssrv
is a small tool which shows the load and state of the partitions in clusters managed by Slurm resource manager and scheduler. It's designed to make the cluster state visible and understandable to system administrators and users, and aid them for making informed decisions while selecting a partition to submit their jobs.
lssrv
shows the partitions and most relevant information about them as an easy to read and understand table.
- It only shows the partitions which user can submit to a job.
- Works on a cached state file, so it doesn't create extra system load.
- Doesn't require Slurm or cluster configuration changes.
- Can globally hide desired partitions.
Note: The state file used by lssrv
is generated by a simple cron job periodically. While the runing period of this job can be tuned by the system administrators, a 5 minute interval is good compromise between information freshness and additional overhead the job incurs. Since the created file doesn't contain username information, there's no risk users reading the state cache file.
lssrv
doesn't require any changes in Slurm configuration. The installation can be completed by copying the files to their respective places.
- Go 1.21.5 or newer.
- A working internet connection.
Note: Remaining dependencies will be automatically downloaded during compilation.
lssrv
needs to be compiled before installation.
- Install the latest version of Go if you have not already.
- Clone this git repository and navigate to
src/
folder. - Run
go build lssrv.go
command. Dependencies will be downloaded andlssrv
will be compiled.
- Create the cache folder with
mkdir -p /var/cache/lssrv
command. Change the owner toroot:root
and permissions to755 (drwxr-xr-x)
. - Copy freshly compiled
/src/lssrv
file to/usr/local/bin/
folder. Change the owner toroot:root
and permissions to755 (-rwxr-xr-x)
. - Copy
/src/cron.d/lssrv_helper
to/etc/cron.d/
. Change the owner toroot:root
and permissions to644 (-rw-r--r--)
. - Copy
/src/conf/lssrv.conf
file to/etc/
folder. Change the owner toroot:root
and permissions to644 (-rw-r--r--)
. - Open
/etc/lssrv.conf
with your favorite editor, and make required changes. The file should be self documenting.
After cron runs once, the /var/cache/lssrv/squeue.state
file will be created. Afterwards, you can run lssrv
command to test the tool.