Bir işlem için daha yüksek bir hoş seviye ayarlamak, sistem yükü / CPU zamanı üzerindeki etkisini azaltmak için etkili bir yol mu?


10

Sunucu yükünü iten ve monitör uyarılarını tetikleyen bir rsync cron işim var. İşi yüksek hoş bir düzeyle yürütülecek şekilde ayarlarsam, bu sistem yük değerleri üzerindeki etkisini etkili bir şekilde azaltır mı?


Rsync için, anahtarları sıkıştırmayı azaltmak veya bant genişliği kullanımını sınırlamak için kullanmak daha etkili olacaktır.
Nemo

Yanıtlar:


9

Yükünüzü azaltmaz.

Diğer işlemlerin CPU zamanını yalnızca olası bir kaynak çekişmesi varsa daha sık kullanmasına izin verir (birkaç işlem yeterli CPU zamanı için "rekabet eder").


9

Hoş değerin değiştirilmesi sistem yükünü doğrudan azaltmaz. Bununla birlikte, gerçekten istediğiniz şey olduğundan şüphelendiğim geri kalan süreçler için daha fazla kaynak bırakmak için kullanılabilir.

Gönderen http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/

Çekirdek, güzel değere dayanan bir işlem için ne kadar işlemci süresi gerektiğini belirler. Olası hoş değer aralığı: -20 ila 20. Güzel değeri -20 olan bir işlem çok yüksek önceliğe sahiptir. Güzel bir değeri 20 olan süreç çok düşük önceliğe sahiptir.

Yani evet, diğer işlemlerin öncelikli olduğundan emin olmak istiyorsanız cron işini diğer işlemlerden daha yüksek bir seviyede çalıştırmak istiyorsunuz.

Bunu yapmak için cron betiğinizin şu şekilde yürütülmesini istiyorsunuz:

/bin/nice -n 10 /path/to/cron-script

Bu, cron betiğini 10 oranında artırılmış bir güzellikte çalıştırır.

Ayrıca bkz Ne güzel çalışıyor? ve daha fazla ayrıntı için http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/ adresini ziyaret edin.


5

Bir işlemin iyi düzeyini değiştirmek, sistem yük değerini etkilemez. Sistem yük değeri, temel olarak CPU kullanmak isteyen işlemlerin sayısı olan çalışma kuyruğunun ortalama uzunluğudur .

CPU'ya bağlı bir işlem kullanıyorsanız (rsync değil, sadece örneğin), her zaman kullanılabilir olduğunda CPU zamanını kullanmak isteyecektir. Her zaman çalıştırmak istediğinden, sistem yük değerine 1.0 yük değeri katacaktır. Çalışma kuyrukta ortalama uzunluğu etkilenmez çünkü süreç güzel seviyesi, ne önemi yoktur sırayla çalıştırmak kuyrukta süreçlerin.


Bunu hatırlamak önemlidir. Çok sayıda güzel süreç çalıştırırsanız, gerçek bir iş yavaşlamasa bile sistem yükü çok yüksek görünecektir . Bazı durumlarda yük gerçek bir sorunu ortaya çıkarır, yani Linux, güzel sürecin gerçekten kullanabilecekleri tüm kaynakları sorunsuz olarak kullanmasına izin veremez (hepsi çoğu zaman kazançsız beklemektedir).
Nemo

3

Süreçlerinizin sistem yükü / CPU süresi üzerindeki etkisini azaltmanın 3 yolunu düşünebilirsiniz:

  • niceGörevin önceliğini manuel olarak düşürmek için komutu kullanın .
  • cpulimitBelirli bir sınırı aşmaması için işlemi art arda duraklatmak için komutu kullanın .
  • built-in control groupsZamanlayıcıya işlem için kullanılabilir kaynak miktarını sınırlamasını söyleyen bir mekanizma olan Linux'ları kullanın .

kaynaklar

http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups


Kesinlikle sistem kaynaklarını dengelemek için cgroups kullanmak istiyorsunuz. Bu, kaynakları istediğiniz gibi bölümlere ayırmanıza olanak tanır (CPU, bellek, disk G / Ç, disk bant genişliği) ve düşük yük durumlarında bile, düşük öncelikli süreçlerin çoğu zaman düşük öncelikli süreci yavaşlatan kullanıcı modu hilelerinin aksine maksimum performans elde eder.
Mikko Rantalainen
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.