Linux nice komutu: öncelik belirleme, renice ile değiştirme ve CPU paylaşımını ölçme

Satış ortaklığı bildirimi v3.1
Satış ortaklığı bildirimi v3.2 (yalnızca mobil)
Test ortamıRHEL ailesiAlmaLinux 9.8root · normal kullanıcı hesabı17.10.2026 tarihinde kontrol edildi

Linux nice komutu, bir programın çalışırken diğer süreçlere ne kadar CPU bırakacağını belirleyen nice değerini (-20 ile 19 arası) ayarlar. AlmaLinux 9 sunucusunda iki işi tek CPU çekirdeğine bağlayıp nice değerini değiştirerek yaptığımız ölçümde pay yalnızca CPU için yarışıldığında bölündü ve nice 19 işi yalnızca %⁠1,4 kullandı.

Zaten çalışan süreçleri renice ile değiştirirsiniz; disk tarafında yol vermeyi ionice üstlenir. Üç komutun çıktısı da root ve normal hesapta çalıştırıldığı hâliyle verildi.

1️⃣ Linux nice komutu: Değer aralığı ve CPU için yarışırken pay

nice değeri, CPU zamanı bölünürken bir sürecin ne kadar yol vereceğini belirleyen sayıdır ve -20 ile 19 arasında ayarlanabilir. Programlar normalde 0 ile çalışır; -20 ilk işlenir, 19 en çok yol verir.

Sayı büyüdükçe önce işlendiğini düşünmek kolaydır, ama nice değeri tersine çalışır. Linux zamanlayıcısı her nice değerine bir ağırlık verip CPU zamanını o oranda böler: nice 0 için 1024, 10 için 110, 19 için 15.

Yol verme yalnızca işler CPU için yarıştığında olur. Boşta CPU varsa nice 19 işi bile beklemeden çalışır. Otobüsteki öncelikli koltuklar gibi: boşsa herkes oturur, yer yalnızca otobüs kalabalıkken verilir.

🧭 CPU boştayken ve yarışırken nice değerleri
Açıklama diyagramı
🖥️ CPU
⚖️ İş B
🖥️ Boşta CPU var, her işe bir çekirdek🖥️ İki iş tek CPU çekirdeğini paylaşır
İş Anice 0 · ağırlık 1024
100%50.0%90.3%98.6%
İş Bnice 0 · ağırlık 1024nice 10 · ağırlık 110nice 19 · ağırlık 15
100%50.0%9.7%1.4%
CPU boştayken yol verilecek kimse olmadığından iş B, nice değeri ne olursa olsun CPU'yu tam kullanır.
Aynı çekirdek için yarışınca ağırlığı eşit iki nice 0 işi CPU zamanını yarı yarıya böler.
nice 10'un ağırlığı 110'dur, nice 0'ın (1024) yaklaşık dokuzda biri; CPU zamanı yaklaşık 90,3 : 9,7 bölünür.
nice 19'un ağırlığı 15'tir; yarışırken iş B CPU zamanının yalnızca yaklaşık %⁠1,4'ünü kullanır.

Ağırlık tablosu Linux çekirdek kaynağındaki [kernel/sched/core.c] dosyasında bulunan [sched_prio_to_weight] dizisidir; nice değeri her 1 arttığında CPU zamanı yaklaşık %⁠10 azalacak şekilde belirlenmiştir.

2️⃣ nice temel kullanım: Sayı yazılmazsa +10 ve aralık dışı değerler

nice'ın arkasına komut koyarsanız o komut değiştirilmiş nice değeriyle çalışır; tek başına nice yazarsanız geçerli kabuğun nice değerini yazdırır.

nice
0

Aşağıdaki örneklerde başlatılan bash kendi nice değerini [ps -o ni=] ile yazdırır. -n olmadan çalıştırınca geçerli değere 10, -n 5 ile 5 eklenir.

nice bash -c 'ps -o ni= -p $$'
 10
nice -n 5 bash -c 'ps -o ni= -p $$'
  5

Aralık dışı değerler hatasız olarak sınır değere çekilir; -n 50 19 ile çalışır.

nice -n 50 bash -c 'ps -o ni= -p $$'
 19

Negatif değerle öne almayı yalnızca root yapabilir. Normal hesap [cannot set niceness] uyarısı alır ve komut yine nice 0 ile çalışır.

# normal hesap
nice -n -5 bash -c 'ps -o ni= -p $$'
nice: cannot set niceness: Permission denied
  0
# root hesabı
nice -n -5 bash -c 'ps -o ni= -p $$'
 -5

nice ile çalıştırılan komutun başlattığı alt süreçler de aynı nice değeriyle çalışır.

nice -n 7 bash -c 'sleep 1 & ps -o ni= -p $!'
  7

Bu yüzden bir betiği nice ile çalıştırırsanız içindeki tüm komutlar da yol verir.

3️⃣ renice: Çalışan sürecin nice değerini değiştirme

nice değeri yalnızca başlatırken ayarlar; zaten çalışan süreç için renice kullanılır. Önce top'un NI sütunundan ya da ps ile PID'yi ve geçerli değeri kontrol edin.

ps -o pid,ni,cmd -p 201643
    PID  NI CMD
 201643   5 sleep 600
renice -n 10 -p 201643
201643 (process ID) old priority 5, new priority 10

Çıktıda görüldüğü gibi renice -n geçerli değere eklemez, verdiğiniz değere ayarlar; sonuç 5'e 10 eklenmiş 15 değil, 10'dur. Klima kumandasında ▲ ile bir kademe artırmak gibi değil, hedef sıcaklığı 24 dereceye ayarlamak gibidir.

util-linux resmî belgeleri de -n'i mutlak değer olarak açıklar; eklemeyi yeni sürümlerde [--relative] seçeneği yapar. Test edilen util-linux 2.37.4'te bu seçenek yoktu.

Normal hesap yalnızca kendi süreçlerinin değerini artırabilir; bir kez artırdığı değeri yeniden düşüremez.

# normal hesap
renice -n 10 -p 201649
201649 (process ID) old priority 0, new priority 10
renice -n 5 -p 201649
renice: failed to set priority for 201649 (process ID): Permission denied

root düşürebilir de; aynı denemede 10'u doğrudan 3 yaptı.

🔲 nice · renice simülatörü

Normal hesapla oturum açılmış aşağıdaki simülatörde nice ve renice'i kendiniz yazıp nice değerinin değişmesini görebilirsiniz.

nice komutu simülatörünice 8.32 · renice 2.37.4
[root@server work]#
Yalnızca tarayıcınızda çalışır, gerçek bir sürece dokunmaz. Sanal sunucuda normal hesapla oturum açıktır; değiştirilmiş nice değeriyle bir şey çalıştırın ya da backup.sh'nin (PID 2481) değerini renice ile değiştirip ps -o pid,ni,cmd ile kontrol edin. ↑↓ tuşlarıyla önceki komutları çağırabilirsiniz.

4️⃣ CPU için yarışırken payın ölçümü: nice 0 vs 0·10·19

nice değerini artırmak işi her zaman yavaşlatmaz. Pay yalnızca aynı CPU için başka bir işle yarışırken küçülür.

İki iş tek CPU çekirdeğine bağlandı (taskset) ve 5 saniye boyunca birer birer sayan aşağıdaki betik ikisinde aynı anda çalıştırıldı. Sayılan sayı ne kadar büyükse iş o kadar çok CPU zamanı kullanmıştır.

#!/bin/bash
end=$((SECONDS+5)); n=0
while [ $SECONDS -lt $end ]; do n=$((n+1)); done
echo $n

Betik 5 saniye geçene kadar n'yi 1'er artırır, sonra son değeri yazdırır.

📊Tek CPU çekirdeği için yarışılan 5 saniye5 saniyede sayılan
İlk iş nice 0İkinci iş
nice 0 vs nice 0
Ağırlığı aynı iki iş.
0250K500K750K1M
nice 0497.59648.8%
nice 0522.04051.2%
nice 0 vs nice 10
Yalnızca ikinci iş nice 10 ile çalışır.
0250K500K750K1M
nice 0979.97190.1%
nice 10107.6719.9%
nice 0 vs nice 19
Yalnızca ikinci iş nice 19 ile çalışır.
0250K500K750K1M
nice 0909.89598.6%
nice 1913.0101.4%
Rakamlar 17 Ekim 2026'da bir AlmaLinux 9 sunucusunda iki iş tek CPU çekirdeğine bağlanıp aynı anda 5'er saniye çalıştırılarak alındı.

İki nice 0 işi yarı yarıya böldü; nice 10 yaklaşık %⁠10, nice 19 ise yalnızca %⁠1,4 kullandı. Bu, çekirdek ağırlıklarından hesaplanan oranlarla (1024 : 110 için 90,3 : 9,7, 1024 : 15 için 98,6 : 1,4) aynıdır.

Aynı çekirdekte tek başına çalıştırılan nice 19 işi 5 saniyede yaklaşık 650.000–1.140.000 kez saydı. Yol verilecek kimse yoksa nice 19 bile CPU'yu tam kullanır; test sırasında sunucu yükü (load average) 3–5 arasındaydı.

5️⃣ ionice: Disk G/Ç'de yol verme ve zamanlayıcıyı kontrol etme

nice yalnızca CPU payını belirler; yedekleme gibi diski uzun süre okuyup yazan işlerde ionice ile disk sırasında da yol verin. -c3 (idle) ile çalıştırılan iş yalnızca başka program diski kullanmazken işlenir.

ionice -c3 bash -c 'ionice -p $$'
idle
ionice -p $$
none: prio 0

Sınıf atanmamış süreç [none] olarak gösterilir; çekirdek belgelerine göre best-effort olarak işlenir ve önceliği CPU nice değerinden hesaplanır.

ionice sınıfları yalnızca disk zamanlayıcısı desteklediğinde etkili olur; çekirdek belgeleri destekleyen zamanlayıcılar olarak bfq ve mq-deadline'ı sayar. Köşeli parantez içinde gösterilen, şu an kullanılan zamanlayıcıdır.

cat /sys/block/nvme0n1/queue/scheduler
[none] mq-deadline kyber bfq

Test sunucusundaki NVMe disk [none] kullandığından resmî belgelere göre ionice orada etkisiz olabilir; etkisi ayrıca ölçülmedi. Disk adını lsblk ile kontrol edin.

6️⃣ nice'ın kullanıldığı yerler: Yedek · cron · wp-cli

Uzun süren ama acil olmayan işlere nice ekleyin. Yedek sıkıştırma hem CPU'yu hem diski kullandığından nice ve ionice'ı birlikte ayarlayın.

nice -n 19 ionice -c3 tar czf backup.tgz /home/example

Zaten çalışan bir iş sunucuyu yavaşlatırsa top'ta PID'yi bulup değerini renice ile artırın; her gün çalışan cron işlerinde komutun önüne nice koyun.

0 3 * * * nice -n 10 /usr/local/bin/backup.sh

WordPress sunucusunda search-replace ya da görsel yeniden oluşturma gibi büyük wp-cli işlerini nice -n 10 ile çalıştırırsanız, CPU meşgulken ziyaretçi isteklerini işleyen php-fpm CPU'yu önce kullanır.

nice -n 10 wp media regenerate --yes

Buna karşılık php-fpm'in ya da web sunucusunun kendisinin nice değerini artırmayın. Ziyaretçiye yanıt veren süreçler yol verirse CPU meşgulken sayfalar geç yanıt verir.

🔢 SSS & önerilen içerikler

Normal süreçlerde top'taki PR, 20'ye nice değeri eklenerek gösterilir. nice 5 ile başlatılan süreç PR 25 ve NI 5 gösterdi; ps'nin PRI sütunu ise farklı hesaplandığı için aynı süreci 14 olarak gösterdi.

nice verilen değeri geçerli nice değerine ekler. [nice -n 5 nice -n 3 nice] 8 yazdırır; bu, verilen değere ayarlayan renice -n'den farklıdır.

Hizmetin birim dosyasındaki [Service] bölümüne [Nice=] yazarsanız hizmetin çalıştırdığı süreçlerin nice değeri belirlenir. Resmî systemd.exec belgelerine göre -20 ile 19 arasında ayarlanabilir.

🧭 Süreçler ve iş zamanlama: Önerilen içerik 11 yazı · 4 kaynak
🗂️ Süreçler ve iş zamanlama
📄 ps komutu 📄 top komutu 📄 Linux nice komutu 📄 kill komutu 📄 killall komutu 📄 Arka plan & ön plan 📄 uptime komutu
📄 crontab ayarı
📋 WP CLI: kurulum ve ayarlar 📄 WP-Cron(wp-cron.php) 📄 Senkronize desenleri bulma: WP-CLI
📡 GNU Coreutils nice invocation 📡 renice(1) Linux manual page 📡 Block io priorities (çekirdek belgeleri) 📡 sched_prio_to_weight (çekirdek kaynağı)

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 5   +   4   =