CCoW : Optimisation de la copie sur écriture en tenant compte de la localité spatiale dans les charges de travail, partie 5
Apr 03, 2024
4. Évaluation
Cette section rend compte des résultats de l’évaluation du programme CCoW proposé. Nous avons implémenté CCoW dans le noyau Linux v5.7.7, et cela a nécessité environ 400 lignes de code. L'évaluation a été réalisée sur un serveur doté d'un processeur Intel Xeon Gold 5215 et de 128 Go de mémoire.
La relation entre les résultats de l’évaluation et la mémoire a toujours attiré beaucoup d’attention. La recherche montre que de bons résultats d’évaluation sont étroitement liés à une excellente mémoire.
D'une part, de bons résultats d'évaluation nécessitent un apprentissage et une maîtrise répétés des points de connaissance ainsi qu'un degré élevé de compréhension et de maîtrise approfondie. Ceux-ci nécessitent un bon support mémoire. En particulier lors des examens, les candidats doivent réagir rapidement et répondre correctement et rapidement aux questions dans un court laps de temps, ce qui nécessite une excellente mémoire comme support de base. Ce n'est qu'avec une excellente mémoire que vous pourrez donner le meilleur de vous-même sous pression.
D’un autre côté, de bons résultats d’évaluation peuvent également favoriser l’amélioration de la mémoire. Lorsque nous obtenons d’excellents résultats d’évaluation, nous ressentons un sentiment d’accomplissement et de satisfaction. Ces émotions positives ont un impact positif sur notre mémoire et notre apprentissage. Un bon état émotionnel peut favoriser la connexion et la transmission d’informations des cellules nerveuses du cerveau, améliorant ainsi la mémoire.
En résumé, il existe une relation qui se renforce mutuellement entre les résultats de l’évaluation et la mémoire. Pour obtenir de meilleurs résultats d'évaluation, nous devons améliorer continuellement notre mémoire, et obtenir de bons résultats d'évaluation peut encore améliorer notre mémoire. Nous devons mettre de côté les émotions négatives, traiter les résultats de l'évaluation et le processus d'apprentissage avec une attitude positive, travailler dur avec persévérance et croire que nous serons capables de réussir ! On peut voir que nous devons améliorer la mémoire, et Cistanche deserticola peut améliorer considérablement la mémoire, car Cistanche deserticola a des effets antioxydants, anti-inflammatoires et anti-âge, qui peuvent aider à réduire l'oxydation et les réactions inflammatoires dans le cerveau, protégeant ainsi le santé du système nerveux. De plus, Cistanche deserticola peut également favoriser la croissance et la réparation des cellules nerveuses, améliorant ainsi la connectivité et le fonctionnement des réseaux neuronaux. Ces effets peuvent contribuer à améliorer la mémoire, l’apprentissage et la vitesse de réflexion, et peuvent également prévenir le développement de dysfonctionnements cognitifs et de maladies neurodégénératives.

Cliquez sur Connaître pour améliorer la mémoire à court terme
Pour analyser diverses caractéristiques de performance, nous avons utilisé un microbenchmark interne. Pour évaluer des charges de travail réalistes, nous avons utilisé le Yahoo cloud servicebenchmark (YCSB) [30,31] pour Redis [4]. Ces programmes sont configurés avec les paramètres par défaut, sauf indication contraire. Étant donné que CCoW est implémenté au niveau du noyau, aucune modification n'a été requise pour les applications utilisateur.
4.1. Caractériser les performances de CCoW
Étant donné que CCoW est contrôlé par deux paramètres, à savoir la taille de la région et le seuil de couverture, ces paramètres déterminent les performances et le comportement d'exécution de CCoW.
En ce sens, nous avons d’abord évalué l’influence de la taille de la région sur les performances et les frais généraux de CCoW. Nous avons construit un programme de microbenchmark pour évaluer l'efficacité de la copie sur écriture. Le programme est calqué sur le comportement d'exécution de Redis. Il remplit d'abord les 16 Go d'espace mémoire divisés en blocs de 1 Ko, puis un bloc est sélectionné et mis à jour à plusieurs reprises avec les données prédéfinies.
Le test de référence itère les opérations jusqu'à ce qu'il écrive 16 0 Go de données. Les blocs cibles sont sélectionnés selon la distribution Zipfian avec le paramètre=1.0 pour fournir une quantité raisonnable de localité dans les accès.
Ces opérations simulent les opérations de mise à jour de Redis avec les charges de travail YCSB. Pour imiter la fonctionnalité d'instantané de Redis, le benchmark forkchild'shildprocess est périodiquement effectué. Après la création du processus enfant, les performances du processus de référence principal diminuent fortement en raison de la surcharge accrue de gestion des erreurs de page.
Les performances sont récupérées et stabilisées au fil du temps car il reste moins de pages pour la mesure de copie sur écrit. Le temps entre la baisse des performances et la récupération équivaut à 99 % des performances normales en utilisant la configuration CoW d'origine et en utilisant ce temps comme intervalle pour les fourches.
Le processus enfant est resté inactif pendant deux intervalles de fork avant de quitter. Nous mesurons le débit moyen du benchmark et l'empreinte mémoire du processus tout en faisant varier la taille de la région de 32 Ko à 2 Mo. Le débit indique le gain de performances avec CCoW, donc plus il est élevé, mieux c'est.

L'empreinte mémoire est mesurée en additionnant la taille de l'ensemble résidentiel (RSS) des processus et indique la surcharge mémoire du schéma CCoW. Les résultats sont résumés dans la figure 3. La configuration originale sans précopie est désignée par « CoW » et les valeurs de performances sont normalisées à celles de la configuration CoW.

Dans l'ensemble, les performances du système ne se sont pas améliorées de manière significative dans une petite région et se sont détériorées avec les régions de 32 Ko. Alors que dans les configurations de régions plus vastes, une amélioration appréciable a été observée. Cependant, le changement de performances était marginal jusqu'à une taille de région de 512 Ko. Cela est dû aux possibilités d'exploitation limitées dans les petites régions. Les frais généraux de surveillance étaient cohérents quelle que soit la taille de la région.
Lorsque la région était de 2 Mo, les avantages dépassaient les frais généraux et nous pouvons observer une amélioration des performances d'environ 0 %. Cependant, les performances ont été encore améliorées avec des régions de plus grande taille.
L'empreinte mémoire a montré une tendance différente de celle des performances. Même avec une petite taille de région, cela entraînait une quantité considérable de mémoire, qui augmente à mesure que la taille de la région augmente. Cependant, il n'a pas beaucoup augmenté, même avec des régions de 2 Mo. De cette évaluation, nous pouvons conclure que les régions de 2 Mo offrent un avantage maximal en termes de performances avec une quantité raisonnable de surcharge de mémoire.

Ainsi, nous avons utilisé cette taille de région pour le reste de l'étude. Ensuite, pour trouver le meilleur seuil de couverture pour la pré-copie, nous mesurons le débit et l'empreinte mémoire tout en modifiant la valeur du seuil CCoW de 70 % à 95 %. La figure 4 résume les résultats des mesures.
Toutes les métriques sont normalisées à celles de la configuration originale « CoW ». Le nombre à côté de « CCoW- » est la valeur seuil pour la configuration. La configuration 'CCoW-All' est une configuration extrême où le seuil est fixé à zéro afin que chaque erreur de page copie une région de 2 Mo. Cette configuration sera effectivement similaire au système avec une page énorme.
Lorsque la valeur seuil est élevée, le système effectue une précopie uniquement s'il est hautement fiable. Ainsi, les opportunités d'exploitation sont réduites, affichant ainsi une légère amélioration des performances. En revanche, lorsque la valeur seuil est trop faible, le système risque fort de prédire à tort les régions de faible localité comme étant les régions de haute localité. Les régions de localité de Precoplow encourent des frais généraux sans aucun avantage, compensant ainsi l'avantage en termes de performances.
Ainsi, les performances culminent à un seuil de 80 % et diminuent pour des valeurs de seuil inférieures. La surcharge d'espace est inversement proportionnelle à la valeur seuil. Plus le seuil de configuration du système est bas, plus de pages sont copiées, augmentant ainsi l'empreinte mémoire. Pour la configuration « CCoW-All », nous avons observé une saturation de mémoire très élevée.
Dans cette configuration, chaque erreur de page entraîne une copie d'une région de 2 Mo, obligeant finalement le processus parent à copier les données d'origine approximativement dans leur intégralité.
Comme le processus enfant peut s'exécuter pendant deux périodes de fork, plusieurs instances enfants existent simultanément, ce qui rend l'empreinte mémoire accumulée très importante. Sur la base de cette évaluation, nous avons utilisé un seuil de couverture de 80 % pour le reste de l'étude.

For more information:1950477648nn@gmail.com






