Nous allons déployer tuned (et numad) sur ~ 1000 serveurs, la majorité d'entre eux étant des serveurs VMware sur NetApp ou 3Par.
Selon la documentation de RedHats, nous devons choisir le virtual-guest
profil. Ce qu'il fait peut être vu ici: tuned.conf
Nous changeons le planificateur d'E / S en NOOP car VMware et NetApp / 3Par devraient faire une planification suffisante pour nous.
Cependant, après avoir enquêté un peu, je ne sais pas pourquoi ils augmentent vm.dirty_ratio
et kernel.sched_min_granularity_ns
.
Pour autant que j'ai compris, une augmentation vm.dirty_ratio
de 40% signifie que pour un serveur avec 20 Go de RAM, 8 Go peuvent être sales à tout moment, à moins d' vm.dirty_writeback_centisecs
être touché en premier. Et pendant le rinçage de ces 8 Go, toutes les E / S de l'application seront bloquées jusqu'à ce que les pages sales soient libérées.
Augmenter le dirty_ratio signifierait probablement des performances d'écriture plus élevées aux pics, car nous avons maintenant un cache plus important, mais là encore, lorsque le cache se remplit, les E / S seront bloquées pendant un temps considérablement plus long (plusieurs secondes).
L'autre est la raison pour laquelle ils augmentent le sched_min_granularity_ns
. Si je comprends bien, l'augmentation de cette valeur diminuera le nombre de tranches de temps par epoch ( sched_latency_ns
), ce qui signifie que les tâches en cours d'exécution auront plus de temps pour terminer leur travail. Je peux comprendre que c'est une très bonne chose pour les applications avec très peu de threads, mais par exemple. apache ou d'autres processus avec beaucoup de threads ne seraient-ils pas contre-productifs?