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)?
Réponses:
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:
nice
,schedtool
pour attribuer des priorités / classes appropriées en fonction de vos besoinsla source
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
la source
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.
la source