kaynak kullanımı kontrolu ve yönetimi

Başlatan shigej38, 18 Şubat 2020 - 17:18:06

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

shigej38

Merhabalar arkadaşlar biyoinformatik alanında bir dizi komutları sıra sıra çalıştıran script dosyam var bu dosya çeşitli datalar üzerinde işlemler yapıyor ve kaynak tüketimi bazı komutlarda tam performans gerektirirken bazı komutlarda çok az bir kaynak tüketimi kullanıyor bende sistemimi her daim en üst düzey performansta çalıştırmak için eğer ram'da ve cpu'da yeterli boşluk varsa yeni bir komut yürütülmesi için bir kontrol scripti yazmak istiyorum ancak bu kontrolleri sürekli olarak yapmam gerekiyor
örneğin bir komut 1 thread ve 2gb ram kullanıyor (sistemimde 8 thread ve 48GB) ram bulunuyor yani aynı anda 8 defa bu komutu yürütmek istiyorum ve komutun işi bittikten sonra gelicek olan komut tüm çekirdekleri ve yüksek oranda ram kullanımına sahip bir komut bu komutun yürütülmesi için öncelikle diğer komutlarında işlemlerini bitirmesini bekletmek istiyorum. bunu nasıl yapabilirim.

illedelinux

Alttaki sırayla çalıştırır.

sh -c "komut1 ; komut2 ; komut3"

Alttaki aynı anda çalıştırır.


komut1 &
komut2 &
komut3 &


Alttaki  en üst satırdakini sırayla çalıştırırken, diğerlerini aynı anda çalıştırır.


sh -c "komut1 ; komut2 ; komut3" &
komut1 &
komut2 &
komut3 &


Alttaki süreli çalıştırır.

sh -c "komut1 ; sleep 1s ; komut2 ; sleep 5s ; komut3" 

Alttaki komut birbirinden bağımsız süreli çalıştırır.


sh -c "komut1 ;  sleep 4s ; komut2 ; sleep 11s ; komut3" &
sleep 1s
komut1 &
sleep 10s
komut2 &
sleep 100s
komut3 &


Alttaki işlem sona erdiğinde uyarı verir.

sh -c "komut1 ; komut2"
notify-send "İşlem bitti"


Bunları tek script dosyasında yapabildiğin gibi farklı script dosyalarıyla işlem alanını genişletebilirsin.
GNU/Linux kullanmıyorum, onu yaşıyorum...

Empat

Sorununuz çözüldüyse, forum düzeninin sürdürülebilirliğine katkı sağlamak için, konu başlığınızı [Çözüldü] olarak işaretlemenizi rica ediyoruz.

Başka bir sorunun yanıtını bulamazsanız ya da bir sorunla karşılaşırsanız, yeni bir konu açabilirsiniz.

İyi forumlar.
Everything for me is just Peace - Love - Coding. Also, as they say: I am a programmer, I have no life!

shigej38

cevabın için teşekkür ederim İlledelinux ancak sorunun çözümü bu değil çünkü komut bir yürütüldükten sonra ram ve cpu da ki müsaitlik durumuna göre 2. komutun yürütülmesi gerekiyor ve diyelim birinci komut yürüdü ve ram o an için müsait 2. komut yürüdü ve ram doldu 2. komuta pause verip ram müsait olunca tekrar resume verilmesi gerekiyor. sanırım bu bir döngü içerisinde yapılabilicek ama nasıl yapacağımı çözemedim.