Noyau Linux 1000 HZ nécessaire si j'ai un minuteur sans tic et haute résolution?


13

J'essaie d'améliorer les performances sur mon serveur. J'ai quelques processus qui nécessitent une faible gigue (moins de 10 ms de variance).

J'ai une charge moyenne de 4 maximum sur un i7-920 (4 cœurs physiques, 8 avec HT). Il existe environ 10 processus allant de 40% à 90% d'un mode utilisateur principal. L'utilisation du système est de 3% au total. L'utilisation totale du processeur est de 80% max.

Le réglage du noyau de 100 Hz à 1 000 Hz améliorera-t-il la gigue si des minuteries tickless et haute résolution sont déjà définies?

Cette page semble indiquer qu'elle fait encore quelque chose. https://lkml.org/lkml/2009/4/28/401

Que diriez-vous de passer de volontaire (PREEMPT_VOLUNTARY) à préemptif (PREEMPT)?


Détails / version de distribution du système d'exploitation?
ewwhite

Ubuntu 11.10 64bit server Linux 3.3 kernel.
Bob

Vous avez beaucoup de charge en mode utilisateur; le temps système est relativement négligeable. Je ne suggérerais pas de danser autour des tunables du noyau là-bas. Ou obtenir une planification en temps réel est ce que vous espérez atteindre?
yrk

Alors, dites-vous que si l'utilisation du système est faible, rien de tout cela ne fait une différence sur la réactivité?
Bob

Réponses:


4

J'essaie d'améliorer les performances sur mon serveur. J'ai quelques processus qui nécessitent une faible gigue (moins de 10 ms de variance).

N'importe quel temps réel n'améliorera pas les performances, cela rendrait l'ensemble du système plus fluide mais un peu plus lent, en fait. En d'autres termes, c'est le débit contre la latence. Si c'est vraiment ce dont vous avez besoin, alors plusieurs options:

  • Utilisez 300 Hz ou même 1 KHz, PREEMPT, et n'utilisez pas tickless
  • Utilisez nice, schedtoolpour attribuer des priorités / classes appropriées en fonction de vos besoins
  • Essayez RT ou BFS

Quel est le problème avec l'utilisation de tickless?
Bob

1
@Bob, c'est bon pour l'économie d'énergie, mais si vous vous souciez de la latence, il est recommandé de l'éteindre, par exemple ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt
poige

3

Si une faible gigue est importante pour vous, oui, vous voudrez peut-être utiliser à la fois 1000 Hz et PREEMPT.

Si ces processus sont vraiment sensibles au temps, pensez-vous, vous aurez probablement besoin de plus de correctifs / noyaux orientés temps réel, ou au moins de paramètres de planification au niveau du processus, comme rtprio.

Les utilisations typiques sont les serveurs audio, voir par exemple les conseils de jackaudio


3

1) N'utilisez pas tickless, il est toujours très expérimental et n'est recommandé à personne, sauf aux développeurs qui y travaillent, il est également destiné à aider à économiser de l'énergie.

2) Le système entièrement préemptif est censé augmenter la réactivité du desktor, tandis que le préemptif volontaire est destiné à un usage général (mélange de réactivité et de débit). Si votre serveur a obtenu SMP (plusieurs cœurs), vous devriez probablement opter pour non préemptif, car la plupart des travaux seront exécutés sur leurs cœurs et sans interruptions, ce qui généralement 1) prend du temps 2) le cache de la corbeille

3) 1000Hz est une valeur de bureau qui introduit des frais généraux, mais permet par exemple de jouer à des jeux et d'autres choses. 300 Hz est une valeur recommandée pour la vidéo (donc les choses peuvent être reprogrammées et vous ne manquerez toujours pas de trames), tandis que 100 Hz offre le meilleur débit (bien qu'il ne soit pas conçu pour les choses réseau à faible latence).

Si vous voulez devenir aussi stable que possible (sans utiliser les patchs RT), vous devriez aller: tiques périodiques (stabilité) non-préemptible (stabilité) fréquence de minuterie (jusqu'à vous, 1000 pour la meilleure réactivité et les faibles latences, 100 pour meilleur débit mais résolution de 10 ms sur la minuterie, par exemple, les choses fonctionneront au moins 10 ms)

J'espère que cela aide un peu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.