Configuration optimale du kernel et correctifs pour l'hôte KVM

J'ai un server (monocommand Nehalem w / 24GB RAM) agissant principalement comme un hôte KVM contenant un tas de servers Windows et quelques exemples Linux (tickless).

Je comstack habituellement mes kernelx de bureau préemptifs avec une timer sans timbres de 1000 Hz, en utilisant le planificateur de CPU BFS (via le patch patch CK) et le planificateur de disque BFQ. Sur les servers, je le fais tout vanilla avec 100 Hz sans tickless en utilisant CFQ et sans préemption forcée.

Cependant, je n'ai pas le time ni les compétences nécessaires pour faire des parsings comparatives, alors je cherche des informations sur les parameters optimaux pour un kernel KVM. Le débit des machines virtuelles bénéficiera-t-il d'un kernel de 1000 Hz?

Et, est-ce que ce serait une mauvaise idée d'utiliser le planificateur BFS? J'ai entendu dire qu'il pourrait également apporter des avantages aux servers de CPU unique. Je pense également à l'utilisation du planificateur de disque BFQ avec l' option low_latency désactivée.

Quelqu'un peut-il me diriger dans la bonne direction ici? Je suis un novice quand il s'agit de matériel système de bas niveau. 🙂

Pour commencer, la reference "canonique" pour le réglage de l'hyperviseur KVM est encore l'excellente Best Practices d' IBM pour KVM, que je vous suggère de passer par point par point.

Certaines choses que vous voudrez presque certainement faire, après avoir soigneusement testé la charge de travail prévue:

  • Utilisez les pilotes Virtio dans vos invités Windows . Vous devriez déjà faire cela; Si vous ne l'êtes pas, cela vous donnera une accélération très notable. Les invités Linux devraient automatiquement utiliser virtio depuis l'installation, mais si vous virtualisez de très anciens systèmes Linux, vérifiez-les.

  • Dump BFS. Il a été conçu pour des charges de bureau à faible latence sur le matériel bas de gamme et son auteur admet qu'il "ne sera pas mis en série". Ne pas inspirer confiance.

  • Dump BFQ / CFQ. Pratiquement tout le monde obtient la plus haute performance avec le planificateur d'E / S à échéance, et pendant que vous devriez tester, vous ne serez probablement pas une exception.

  • Assurez-vous que la fusion de la même page du kernel est en cours d'exécution et ajustez-la correctement. Cela peut considérablement réduire les exigences de memory sur votre hyperviseur, en particulier lorsque plusieurs invités exécutent le même operating system.

  • Lorsque vous utilisez un stockage local, utilisez des périphériques de bloc brut, tels que les volumes logiques LVM, plutôt que les files image. Cela supprime une couche d'abstraction des E / S de disque.

Il y a beaucoup d'autres choses abordées dans le guide d'IBM auquel j'ai parlé plus tôt, mais cela devrait vous donner le plus de succès pour votre argent.

Selon mon expérience, les dissortingbutions comme RHEL sont assez bien calibrées pour fournir de bonnes performances des machines KVM, et tous les repères sont effectués sur ceux-ci. Si vous souhaitez extraire des percents de performance supplémentaires, vous devez regarder highr dans la stack – virtio-scsi et data-plane (pour la performance du disque) ou 802.1Qbg / h pour des performances réseau supplémentaires.