Nice ve Renice ile Linux süreçlerine nasıl öncelik verilir?

Linux işletim sistemlerinin çeşitli yönetim görevlerinde, süreçlerin sistem içinde nasıl çalıştığını ayrıntılı olarak bilmek idealdir, çünkü bu, dahili olarak her işlemin geliştirildiği işlevi nasıl yerine getirdiğini tamamlamak ve bilmek için esastır.

Bugün Solvetic, nice ve renice kullanarak Linux dağıtımlarımızın süreçlerinin nasıl önceliklendirileceğini ayrıntılı olarak analiz edecek.

Linux'ta süreç öncelikleri nelerdir?Ne kadar güzel ve renice çalıştığını bilmeden önce, bir Linux işleminin belirli bir önceliğini, bir işlemin önceliğini belirlemenin, seçilen işlemin işlemciyi kullanabileceği süreyi belirlemek için neden kullanıldığını biraz anlamak önemlidir. belirli bir zaman aralığında.

Linux ortamlarında, işlemciler birden fazla işlem tarafından paylaşılır (işlemler mevcut işlemci(ler)in kullanımında dönüşümlü olarak kullanılır) bu, kullanıcının tüm uygulamaların veya görevlerin aynı anda yürütüldüğünü algılamasını sağlar, bu nedenle bir öncelik tanımlayarak , hangi işlemlerin işlemciden daha fazla yararlanabileceğini ve hangi işlemlerin ikinci sırada yer aldığını sisteme belirtiyoruz.

Bu öncelik, daha yüksek kullanım önceliğine sahip diğer işlemler tarafından işlem kuyruğunun sonuna doğru taşındığından, bazı işlemlerin herhangi bir zamanda yürütülmemesine neden olabilir.

Çekirdek Zamanlayıcı Linux'ta nasıl çalışır?Linux sistemlerini yönetirken akılda tutulması gereken bir diğer nokta, önyüklemeden sorumlu olan çekirdeği bilmektir. Çekirdeğinde, mevcut tüm yürütülebilir işlemlerin en uygun sürecini belirleyen ve ilk aşamada yürütülmesi gereken bir çekirdek birimi olan bir programlayıcı veya zamanlayıcı vardır. Daha sonra sistemdeki yürütülebilir işlemler arasında işlemci zamanını tahsis eder.

Yürütülebilir bir işlem, yalnızca yürütülmesi için CPU zamanını bekleyen bir işlemdir. Programcı, sistemdeki yürütülebilir işlemlerden seçim yapmak için önceliğe dayalı bir zamanlama algoritmasından yararlanarak Linux'ta çoklu görev çekirdeğini oluşturur. Ardından süreçleri en temel olanlara ve bunların her birinin CPU zaman gereksinimlerine göre sınıflandırır.

Linux'ta toplam 140 öncelik ve Linux'ta uygulanan iki farklı öncelik aralığı vardır:

  • Birincisi -20 (en yüksek öncelik değeri) ile 19 (en düşük öncelik değeri) arasında değişen nice değeridir ve varsayılan değer 0'dır.
  • İkincisi, varsayılan olarak 1 ila 99 arasında değişen gerçek zamanlı önceliktir, ardından kullanıcı alanı için 100 ila 139 arasındadır.

1. Linux'ta süreçlerin değerlerini doğrulama


Linux'ta ps, top veya htop gibi yardımcı programları kullanarak bir işlemin değerlerini kontrol edebiliriz.
ps parametresini kullanırsak aşağıdakileri çalıştırabiliriz:
 ps -eo pid, ppid, ni, iletişim
Orada sütun, her işlemin değerini göstermez:

BÜYÜT

Alternatif olarak, çok daha eksiksiz sonuçlar görebileceğimiz top veya htop parametrelerini kullanabiliriz ve otomatik olarak, görüntülenen her işlemin aynı değerlerine sahip sütunu görebiliriz:

Tepe

BÜYÜT

htop

BÜYÜT

NotHtop olmaması durumunda, sudo apt install htop satırını çalıştırarak kurabiliriz.

2. PR veya PRI ve NI arasındaki fark ve değerlerinin nasıl hesaplanacağı


top ve htop parametrelerini çalıştırdığımızda PR, PRI veya NI sütunlarını görebiliriz, bunlar şu anlama gelir:

HİÇ BİRİDostça bir değerdir, yani bir kullanıcı alanı konseptidir.

Halkla İlişkiler / Halkla İlişkilerSürecin asıl önceliği budur, bu bilgi Linux çekirdeği tarafından sağlanır.

Bu değerler aşağıdakiler göz önünde bulundurularak oluşturulmuştur.

 Toplam öncelik sayısı = 140 Gerçek zamanlı öncelik aralığı (PR veya PRI): 0 ila 99 Kullanıcı alanı öncelik aralığı: 100 ila 139 NI değer aralığı (Nice Value) -20 ila 19: PR = 20 + NI PR = 20 + ( -20 ila + 19) PR = 20 + -20 ila 20 + 19 PR = 0 ila 39, bu da 100 ila 139'a eşittir
Görüntülenen sonuçlarda rt değerini görürsek, bu, işlemin gerçek zamanlı olarak zamanlama önceliği altında yürütüldüğünü gösterir.

3. Linux'ta Nice değerine sahip bir komut nasıl çalıştırılır


Nice, yürütüldüğünde bir programa belirli bir öncelik atamaktan ve bu programın sistem içinde tetikleyebileceği görevlere ve işlemlere kalıtım yoluyla sorumludur. Nice, çok fazla CPU kullanımı gerektiren bir programımız veya görevimiz olduğunda geçerlidir, ancak bu işlemin tamamlanması uzun zaman alabilir, orada nice komutunu kullanarak yüksek veya uygun bir öncelik yapılandırmak mümkün olacaktır.

Kullanabileceğimiz sözdizimi aşağıdaki gibidir:

 nice -n güzel-değer [komut bağımsız değişkenleri] güzel - güzel-değer [komut bağımsız değişkenleri] güzel --ayarlama = güzel-değer [komut bağımsız değişkenleri]
Aşağıdakileri göz önünde bulundur:
  • Herhangi bir değer sağlanmazsa, nice, varsayılan olarak 10'luk bir öncelik belirleyecektir.
  • Varsayılan değerler olmadan yürütülen bir komut veya program sıfır önceliğine ayarlanır
  • Yalnızca kök kullanıcı, daha yüksek veya daha yüksek önceliğe sahip bir komut veya program yürütebilir
  • Normal kullanıcılar yalnızca düşük önceliğe sahip bir komut veya program çalıştırabilir
Bir öncelik belirlemek için, bir programı veya komutu varsayılan önceliğe sahip başlatmak yerine, aşağıdaki nice komutu kullanarak belirli bir öncelik ile başlatmak mümkün olacaktır:
 sudo nice -n -5 xclock &
Veya aşağıdakileri uygulayabiliriz:
 sudo nice --ayarlama = 5 xclock &

BÜYÜT

Yeni bir kimliğin oluşturulduğunu görebiliriz.

4. Linux'ta bir işlemin zamanlama önceliğini değiştirme


Linux ortamlarını kullanırken, önceliklere dayalı dinamik programlamaya izin verir, bu nedenle, bir program zaten çalışıyorsa, renice komutunu kullanarak önceliğini aşağıdaki gibi değiştirmek mümkün olacaktır:
 renice -n -12 -p (PID) renice -n -2 -u (Uygulama)
Bu komutu çalıştırırken eski önceliği ve yeni önceliği görebileceğiz.

BÜYÜT

5. Belirli bir kullanıcının işlemleri için Nice varsayılanı nasıl ayarlanır?


/etc/security/limits.conf dosyasında belirli bir kullanıcı veya grup için varsayılan değeri ayarlayabilirsiniz. Ana işlevi, PAM aracılığıyla bağlanan kullanıcılar için kaynak sınırlarını tanımlamaktır.

Bir kullanıcı için limit tanımlama sözdizimi aşağıdaki gibidir:

 
Alternatif olarak, /etc/security/limits.d/ içinde ana dosyadaki yapılandırmayı geçersiz kılmaya özen gösteren bir dosya oluşturmak mümkün olacaktır ve bu dosyalar alfabetik sırayla okunur.

Nice veya renice'in yardımını almak istiyorsak, aşağıdakileri uygulayabiliriz:

 adam iyi adam renice

BÜYÜT

Böylece, Linux'ta CPU kullanımını çok daha fazla optimize ederek ve idari görevleri önemli ölçüde geliştirerek, süreçlerin ihtiyaçlarına göre öncelikler belirleme seçeneğine sahibiz.

wave wave wave wave wave