Tickless ve yüksek çözünürlüklü zamanlayıcı varsa 1000 HZ linux çekirdeği gerekli mi?


13

Sunucumdaki performansı artırmaya çalışıyorum. Düşük titreşime (10ms'den az varyans) ihtiyaç duyan birkaç işlemim var.

Bir i7-920 (4 fiziksel çekirdek, 8 HT ile) için maksimum yük yüküm var. Temel kullanıcı modunun% 40 ila% 90'ı arasında değişen yaklaşık 10 işlem vardır. Sistem kullanımı toplam% 3'tür. Toplam CPU kullanımı maksimum% 80'dir.

Çekirdeksiz ve yüksek çözünürlüklü zamanlayıcılar önceden ayarlanmışsa, çekirdeğin 100hz'den 1000hz'ye ayarlanması titremeyi iyileştirir mi?

Bu sayfa hala bir şeyler yaptığını gösteriyor. https://lkml.org/lkml/2009/4/28/401

Gönüllü (PREEMPT_VOLUNTARY) ile önceden ödenebilir (PREEMPT) olarak değiştirmeye ne dersiniz?


İşletim sistemi dağıtım ayrıntıları / sürümü?
ewwhite

Ubuntu 11.10 64bit sunucu Linux 3.3 çekirdeği.
Bob

Çok sayıda kullanıcı modu yükünüz var; sistem zamanı nispeten ihmal edilebilir düzeydedir. Orada çekirdek ayarlarının etrafında dans etmeyi önermem. Veya gerçek zamanlı benzeri zamanlama elde etmeyi umduğunuz şey nedir?
yrk

Sistem kullanımı düşükse, bunların hiçbirinin yanıt vermede bir fark yaratmadığını mı söylüyorsunuz?
Bob

Yanıtlar:


4

Sunucumdaki performansı artırmaya çalışıyorum. Düşük titreşime (10ms'den az varyans) ihtiyaç duyan birkaç işlemim var.

Herhangi bir gerçek zaman performansı iyileştirmez, aslında tüm sistemin daha pürüzsüz ama biraz daha yavaş çalışmasını sağlar. Başka bir deyişle, verim ve gecikme. Gerçekten ihtiyacınız olan şeyse, birkaç seçenek:

  • 300 Hz hatta 1KHz kullanın, PREEMPT ve gıdıklamayın
  • Kullanım nice, schedtoolihtiyaçlarınıza göre uygun öncelikleri / sınıfları atamak
  • RT veya BFS'yi deneyin

Tickless kullanmanın nesi yanlış?
Bob

1
@Bob, Güç tasarrufu için iyidir, ancak gecikmeyi önemsiyorsanız, kapalı olması önerilir, örneğin ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt
poige

3

Düşük titreşim sizin için önemliyse, evet, hem 1000hz hem de PREEMPT kullanmak isteyebilirsiniz.

Bu süreçler gerçekten zamana duyarlıysa, düşünülmüşse, muhtemelen daha fazla gerçek zamanlı yönlendirilmiş düzeltme ekleri / çekirdeklere veya en azından rtprio gibi işlem düzeyinde zamanlama parametrelerine ihtiyacınız olacaktır.

Tipik kullanımları ses sunucularıdır, örneğin jackaudio dan tavsiye


3

1) Tickless kullanmayın, hala son derece deneysel ve üzerinde çalışan geliştiriciler dışında kimseye tavsiye edilmiyor, aynı zamanda güç tasarrufu için de yardımcı olması gerekiyor.

2) Tamamen önlenebilir sistemin masaüstünün yanıt verebilirliğini artırması beklenirken, gönüllü önlenebilirlik genel kullanım içindir (yanıt verme ve çukurluk karışımı). Sunucunuzda SMP (çoklu çekirdekler) varsa, büyük olasılıkla önceden fark edilemez olmalısınız, çünkü çoğu iş çekirdeklerinde ve kesintisiz olarak yürütülecektir, bu genellikle 1) zaman alır 2) çöp önbellek

3) 1000Hz, ek yükü tanıtan ancak örneğin oyun ve eşya oynamasına izin veren masaüstü değeridir. 300 Hz, video için önerilen değerdir (böylece öğeler yeniden planlanabilir ve yine de çerçeveleri kaçırmazsınız), 100Hz en iyi oluk sağlar (düşük frekanslı ağ öğeleri için tasarlanmamış olsa da).

Olabildiğince istikrarlı gitmek istiyorsanız (RT yamaları kullanmadan), gitmelisiniz: periyodik keneler (kararlılık) önlenemez (kararlılık) zamanlayıcı frekansı (size en iyi yanıt ve düşük gecikme için 1000, en iyi oluk ama zamanlayıcıda 10ms çözünürlük, örneğin şeyler en az 10ms çalışacaktır)

Umarım bu biraz yardımcı olur.

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.