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.gokomutunu çalıştırın. Bağımlılıklar indirilecek velssrvderlenecektir.
mkdir -p /var/cache/lssrvkomutu 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/lssrvdosyası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_helperdosyasını/etc/cron.d/dizinine kopyalayın, sahibiniroot:root, haklarını644 (-rw-r--r--)olarak değiştirin./src/conf/lssrv.confdosyasını/etc/dizinine kopyalayın, sahibiniroot:root, haklarını644 (-rw-r--r--)olarak değiştirin./etc/lssrv.confdosyası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.gocommand. Dependencies will be downloaded andlssrvwill be compiled.
- Create the cache folder with
mkdir -p /var/cache/lssrvcommand. Change the owner toroot:rootand permissions to755 (drwxr-xr-x). - Copy freshly compiled
/src/lssrvfile to/usr/local/bin/folder. Change the owner toroot:rootand permissions to755 (-rwxr-xr-x). - Copy
/src/cron.d/lssrv_helperto/etc/cron.d/. Change the owner toroot:rootand permissions to644 (-rw-r--r--). - Copy
/src/conf/lssrv.conffile to/etc/folder. Change the owner toroot:rootand permissions to644 (-rw-r--r--). - Open
/etc/lssrv.confwith 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.
