Systemd hizmet dosyalarında, aşağıdaki zamanlama ile ilgili seçenekler ayarlanabilir ( systemd.exec
man sayfasından yanlışsam beni düzeltin):
Nice Yürütülen işlemler için varsayılan güzel düzeyi (zamanlama önceliği) ayarlar. -20 (en yüksek öncelik) ile 19 (en düşük öncelik) arasında bir tamsayı alır. Ayrıntılar için ayar değerine (2) bakın.
Hangi tanıdık güzel seviyedir. Son linux çekirdeklerinin 'otomatik grup' özelliği nedeniyle etkisi bir şekilde 'altüst' görünüyor. Bu nedenle, aşağıdaki seçenekler, işlemlerin masaüstü deneyimim için iyi davranmasını sağlamak için gerçekten ayarlamak istediğim şey olabilir.
CPUSchedulingPolicy Yürütülen işlemler için CPU zamanlama ilkesini ayarlar. Diğer, toplu, boşta, fifo veya rr birini alır. Ayrıntılar için sched_setscheduler (2) bölümüne bakın .
CPUSchedulingPriority Yürütülen işlemler için CPU zamanlama önceliğini ayarlar. Kullanılabilir öncelik aralığı, seçilen CPU zamanlama ilkesine bağlıdır (yukarıya bakın). Gerçek zamanlı zamanlama politikaları için 1 (en düşük öncelik) ile 99 (en yüksek öncelik) arasında bir tamsayı kullanılabilir. Ayrıntılar için sched_setscheduler (2) bölümüne bakın .
CPUSchedulingResetOnFork Bir boole argümanı alır. Doğru ise, çalıştırılan işlemler çatal olduğunda yükseltilmiş CPU zamanlama öncelikleri ve ilkeleri sıfırlanır ve bu nedenle alt süreçlere sızamaz. Ayrıntılar için sched_setscheduler (2) bölümüne bakın . Varsayılanı false değerindedir.
Son seçeneği anlıyorum. İlk iki programın açıklamasından bir zamanlama politikası seçebileceğimi ve sonra bu politika dikkate alındığında bir öncelik topladım. Hangi tür görevler için neyi seçmem gerektiği tam olarak açık değil. Örneğin, yedekleme görevleri için 'boşta' seçilmesi güvenli midir?
Genel olarak, her bir politika için öncelikleri ve belirli amaçlara uygunluğu ile anlaşılır bir genel bakış elde etmek istediğim şeydir. Ayrıca güzel düzeyle etkileşim ilgi çekicidir.
CPU zamanlamanın yanında, IO zamanlaması vardır. Sanırım bu karşılık gelir ionice
(yanılıyorsam beni düzeltin).
IOSchedulingClass Yürütülen işlemler için G / Ç zamanlama sınıfını ayarlar. 0 ile 3 arasında bir tam sayı veya hiçbiri, gerçek zamanlı, en iyi çaba veya boşta dizelerden biri alır. Ayrıntılar için ioprio_set (2) 'ye bakınız.
IOSchedulingPriority Yürütülen işlemler için G / Ç zamanlama önceliğini ayarlar. 0 (en yüksek öncelik) ile 7 (en düşük öncelik) arasında bir tam sayı alır. Kullanılabilir öncelikler seçilen I / O zamanlama sınıfına bağlıdır (yukarıya bakın). Ayrıntılar için ioprio_set (2) 'ye bakınız.
Burada CPU zamanlamasıyla aynı yapıyı görüyoruz. Ben de aynı tür bilgileri arıyorum.
Tüm 'Zamanlama' seçenekleri için, atıfta bulunulan kılavuz sayfalar benim için yeterince açık değildir, çoğunlukla işleri teknik olarak eğimli bir masaüstü kullanıcısının bakış açısına çevirir.
nice
Değerin geçerli olduğu durumlarda da bahsedilir ).