Çocuk süreçleri iyonik öncelikleri ebeveynlerinden miras alırlar? Çalışan bir işlemin GÇ önceliğini nasıl kontrol edersiniz?


15

Ionice, bir işlem için io önceliğini ayarlamaya izin veren standart bir linux komutudur:

http://linux.die.net/man/1/ionice

Çocuk süreçleri iyonik öncelikleri ebeveynlerinden miras alırlar? Çalışan bir işlemin önceliğini nasıl kontrol edersiniz?

Yanıtlar:


12

Evet. Test ettim. IO önceliği aynı CPU güzelliği gibi miras alınır. Muhtemelen budur. Değilse, ionice komutuyla alt işlemlerin GÇ önceliğini açıkça belirleyebilirsiniz.


9

Man sayfasından ( man ionice):

# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.

Sorunun diğer yarısını yanıtladığınızdan bu yana + 1'leyin.
Ryan

7

Çatallanan işlemler, io sınıfını ve ebeveynlerinin önceliğini devralır, ancak akılda tutulması gereken önemli bir gerçek, io sınıfını ve / veya çalışan bir işlemin önceliğini değiştirirseniz, io sınıfını / önceliğini değiştirmemesidir. o sürecin mevcut alt süreçleri . Bununla birlikte, çalışan bir işlemin sınıfını ve / veya önceliğini ayarladıktan sonra, ileriye doğru çatallanan alt süreçler yeni io sınıfını ve önceliğini devralır.


1

Evet ve ben böyle test ettim

İki dosya oluştur foo.sh

# ==> foo.sh <==
echo $$
ionice

ve nicechange.sh

# ==> nicechange.sh <==
echo $$
echo -n Before change:
ionice

echo Change to best-effort
ionice -c best-effort -p $$

echo After changed
ionice

echo Subprocess
x=$(bash foo.sh)
echo $x

Sonra çalıştırın:

$ bash nicechange.sh 
2549
Before change:idle
Change to best-effort
After changed
best-effort: prio 4
Subprocess
2555 best-effort: prio 4
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.