CCoW : Optimisation de la copie sur écriture en tenant compte de la localité spatiale dans les charges de travail, partie 6

Apr 03, 2024

La meilleure taille de région et le seuil varient en fonction des caractéristiques de la charge de travail. Pour évaluer l'influence de la charge de travail, nous mesurons les performances de CCoW sur les charges de travail avec différentes localités. Plus précisément, nous avons modifié le paramètre de la distribution Zipf, qui détermine le degré de localité.

Il existe une relation étroite entre la mémoire humaine et la charge de travail. Lorsque nous devons traiter de grandes quantités d’informations ou accomplir des tâches complexes, notre cerveau doit rester très vigilant pour garantir que toutes les informations nécessaires sont traitées et stockées correctement. Les neurones du cerveau se connectent et communiquent constamment, ce qui affecte grandement notre façon de penser et de nous souvenir.

Même si le traitement de grandes quantités d’informations et l’accomplissement de tâches complexes peuvent mettre à rude épreuve notre mémoire et nos capacités cognitives, la recherche montre qu’avec une formation et une pratique appropriées, nous pouvons améliorer considérablement notre mémoire et notre productivité. Par exemple, grâce à des expériences, les scientifiques ont découvert que grâce à un entraînement et une pratique approfondis de la mémoire, les gens peuvent améliorer considérablement leur mémoire et leur efficacité au travail.

De ce point de vue, nous pouvons conclure que la pratique et l’entraînement continus sont très importants pour ceux qui souhaitent améliorer leur mémoire et leur efficacité au travail. Gardez également une attitude positive, car le stress peut nuire à la mémoire et à la productivité.

En résumé, il existe une forte corrélation entre la charge de travail et la mémoire. Tant que nous restons concentrés, nous entraînons et pratiquons régulièrement et maintenons une attitude positive, nous pouvons améliorer considérablement notre mémoire et notre efficacité au travail. Cistanche deserticola peut également réguler l'équilibre des neurotransmetteurs, tels que l'augmentation des niveaux d'acétylcholine et des facteurs de croissance, qui sont importants pour la mémoire et l'apprentissage. En outre, Cistanche deserticola peut également améliorer la circulation sanguine et favoriser l'apport d'oxygène, ce qui peut garantir que le cerveau reçoive suffisamment de nutriments et d'énergie, améliorant ainsi la vitalité et l'endurance du cerveau.

supplements to improve memory

Cliquez sur connaître les moyens d'améliorer votre mémoire

Les accès sont répartis uniformément lorsque est {{0}}, et plus la valeur de , plus le niveau de localité présenté par la charge de travail est élevé. Lorsque vaut 1.0, environ 80 % des opérations impliquent 20 % des données.

Ce degré de localité se retrouve couramment dans plusieurs charges de travail réelles, comme l’énonce le principe de Pareto. Nous mesurons avec trois valeurs différentes, 1.0, 0.9 et 1.1, où 1.0 est la ligne de base et 0.9 et 1.1 représentent la charge de travail locale faible et élevée, respectivement.

Les performances d'origine de CoW varient en fonction des charges de travail, de sorte que la période de fork pour une charge de travail a été définie en fonction du temps mesuré avec la configuration d'origine de CoW. Par exemple, si la configuration CoW d'origine nécessite 10 secondes pour récupérer les performances normales après un fork, les autres configurations CCoW fork également des processus enfants toutes les 10 s.

La figure 5 résume le débit moyen et l'utilisation de la mémoire de CCoW avec différentes charges de travail localisées. Pour la charge de travail de faible localité, les configurations avec de petits seuils CCoW présentent de meilleures performances que celles avec des seuils élevés. « CCoW-all » surpasse même le CoW d'origine de 15 % dans la charge de travail à faible localité. Cela est dû à l’efficacité de la précopie. Dans le cas d'une charge de travail de faible localité, une grande partie de la mémoire doit être répliquée car les accès sont répartis sur l'ensemble de l'espace d'adressage du processus. En effet, la copie de régions entières entraîne la copie de la mémoire nécessaire à l'avance avec une faible surcharge.

improve brain

Ainsi, plus le seuil est petit, plus les performances du programme sont élevées avec une charge de travail faiblement localisée. Toutefois, cette tendance a l’effet inverse dans le cas de charges de travail localisées élevées. Avec des charges de travail très localisées, de nombreux accès sont concentrés sur quelques pages.

Cela implique que seule une petite partie de la mémoire doit être répliquée tout au long de la copie en écriture. La copie de la région entière sur un défaut de page a tendance à copier les pages auxquelles on n'accède pas du tout.

Cela n'entraîne qu'une surcharge temporelle, altérant les performances avec des charges de travail localisées plus élevées. En conséquence, CCoW-all présente les pires performances avec une charge de travail localisée élevée. D'autres configurations présentent des modèles similaires de charges de travail de base : les performances culminent à la valeur seuil de 80 % et diminuent avec des seuils plus petits.

improving brain function

L'utilisation de la mémoire du benchmark montre une tendance constante quel que soit le degré de localité des charges de travail. 'CCoW-all' représente toujours l'utilisation de mémoire la plus élevée car il copie toujours toutes les pages de la mémoire après un fork. De plus, les empreintes mémoire sont inversement proportionnelles à la valeur seuil ; plus la valeur seuil est petite, plus le benchmark utilise de mémoire.

L'amplification de la mémoire n'est augmentée que jusqu'à 10 % par rapport à la configuration CoW d'origine, qui est considérée comme étant dans une plage raisonnable. En plus d'analyser les performances de CCoW, nous comparons les performances de CCoW à celles de la page géante transparente (THP). schéma de Linux.

THP est quelque peu similaire à CCoW dans le sens où il vise à atténuer la surcharge provenant des petites pages. « CoW-THP » dans la figure 5 représente les performances de la configuration compatible THP. Notez que le système compatible THP gère CoW en divisant les pages volumineuses en pages de base avant de copier la page défectueuse, tout comme d'autres schémas optimisant THP [12-15,17].

Nous pouvons observer que THP présente de meilleures performances que la configuration par défaut « CoW uniquement ». Nous attribuons le gain de performances à l'efficacité accrue de la traduction d'adresses avec des pages volumineuses.

Plus précisément, selon le schéma THP, la partie active de l'espace d'adressage du processus est susceptible d'être divisée en pages de base, offrant ainsi les mêmes performances que la configuration « CoW uniquement ». Cependant, la partie froide de l'espace d'adressage du processus n'est pas divisée et maintenue avec des pages volumineuses. Ainsi, cela peut améliorer les performances de l'application dans une certaine mesure.

Cependant, THP n'apporte pas autant d'amélioration des performances que CCoW. La figure 6 montre la distribution cumulée du débit au cours de l'évaluation. L'axe des X représente le débit en opérations par seconde et l'axe des Y représente le rapport cumulé des performances par rapport aux performances. la valeur du débit. Hormis CCoW-all, on retrouve trois plages de débit fréquemment observées quelles que soient les configurations.

Le premier groupe du ratio cumulé de {{0}} à 0.1 indique la période pendant laquelle les performances de référence diminuent juste après le fork. Ensuite, la performance récupère au fil du temps, comme dans le deuxième groupe avec un ratio cumulé de 0,1 à 0,7.

Les ratios cumulatifs restants dans la plage de {{0}},7 à 1,0 proviennent d'accès qui n'entraînent pas de défauts de page. Dans l'ensemble, les configurations CCoW ont tendance à avoir des baisses de performances plus sévères que la CoW d'origine. Plus précisément, avec la charge de travail localisée élevée du schéma CoW d'origine, le débit chute à environ 1 900 000 opérations par seconde juste après le fork.

improve memory

Il augmente ensuite lentement jusqu'à la plage de 2 500 K opérations par seconde. Avec CCoW, les performances ont encore baissé, jusqu'à la plage de 1 700 000 opérations par seconde. Cependant, les performances ont récupéré plus rapidement, démontrant la plupart du temps de meilleures performances que celles du CoW d'origine (c'est-à-dire principalement sur le côté droit du graphique cumulé). Nous pouvons également observer une tendance similaire dans d'autres charges de travail, et la configuration CCoW-all démontre un comportement extrême ; juste après le fork, les performances chutent considérablement et restent faibles tandis que la majeure partie de l'espace d'adressage est copiée avec des accès répartis.

Toutefois, après ce point, seuls quelques défauts de page se produisent, de sorte que la plupart des accès sont traités sans défaut de page. Ainsi, le débit a une distribution bimodale dans CCoW. À partir de cette évaluation, nous avons confirmé que CCoW fournit des performances optimales en optimisant le cas commun.

Cependant, la baisse des performances doit être corrigée pour obtenir de meilleures caractéristiques de performances. À cette fin, nous travaillons actuellement à limiter la quantité de données copiées juste après le fork.

supplements to boost memory

4.2. Performances CCoW sur une charge de travail réaliste

Pour évaluer le CCoW proposé sur une charge de travail réaliste, nous avons utilisé Redis et YCSB. Redis est une base de données clé-valeur en mémoire largement utilisée pour accélérer les applications à l'échelle Internet.

Nous avons utilisé le benchmark YCSB pour remplir des paires clé-valeur dans une instance Redis et pour effectuer des opérations sur elles. Plus précisément, l'instance Redis est initialisée avec 10 Go de paires clé-valeur avec la configuration YCSB par défaut.

Toutes les clés et valeurs ont respectivement une taille de 23 et 100 octets et chaque clé contient 10 champs de valeurs. Après avoir rempli l'instance Redis, nous l'avons configurée pour créer des instantanés, puis alimenté les opérations de mise à jour avec YCSB.

Pour incorporer la localité temporelle dans les accès clé-valeur, nous avons configuré la charge de travail YCSB pour sélectionner les clés cibles en fonction de la distribution Zip en utilisant la valeur de paramètre 1.0.

En effectuant 100 Go de mises à jour, nous avons collecté le débit pour chaque seconde du rapport de référence YCSB. La figure 7 résume le débit moyen et l'utilisation de la mémoire de l'instance Redis lorsque le système est configuré pour utiliser le CoW ou CCoW d'origine. Notez que nous avons utilisé 2 Mo pour la taille de la région et que toutes les valeurs de résultat ont été normalisées à celle de CoW.

improve cognitive function

Dans l’ensemble, toutes les configurations CCoW ont surpassé la CoW d’origine, quel que soit le seuil de couverture. De même, comme nous l'avons analysé ci-dessus, les performances ont été déterminées par le compromis entre le gain de performances provenant de la copie sur écriture atténuée et la surcharge liée à la copie de pages supplémentaires. Lorsque la valeur seuil est élevée, seules quelques régions sont copiées, ce qui réduit à la fois l'opportunité d'optimisation et la surcharge de mémoire.

Lorsque la valeur du seuil descend en dessous de 85 %, l'empreinte mémoire augmente et entraîne une surcharge supplémentaire. En conséquence, le débit moyen de CCoW varie en fonction du seuil de couverture mais démontre jusqu'à 5 % d'amélioration des performances par rapport au CoW d'origine.

Avec la charge de travail Redis et YCSB, nous n'avons observé qu'une amélioration marginale des performances avec THP. Cela est dû au fait que, dans la charge de travail, les accès en écriture sont dispersés dans tout l'espace d'adressage du processus et que les pages volumineuses sont effectivement divisées en pages de base lors de la gestion de CoW.

Comme le processus Redis ne peut contenir que quelques pages volumineuses, ses performances sont similaires à celles de la configuration de base. Ce résultat démontre que l'approche basée sur THP est moins efficace dans les charges de travail intensives en écriture et que CCoW surpasse THP.

Pour évaluer l'exactitude du mécanisme d'identification des régions de haute localité, nous avons classé la raison du mécanisme de génération de copie pour chaque page copiée. Plus précisément, nous avons collecté le ratio de pages copiées sur toutes les pages copiées. Lorsque le taux de précopie est de x %, augmentant l'empreinte mémoire totale de y %, nous pouvons calculer le taux de précopie inutile en divisant y par x.

Par exemple, sur la configuration CCoW-80, 26,9 % des pages copiées sont copiées, ce qui augmente l'empreinte mémoire de 6,7 %. Cela implique que 24,9% des pages de précopie ne sont pas référencées. Le tableau 1 résume le calcul. Le taux de précopies inutiles varie de 23,4 % à 35,6 % et, à partir du résultat de l'évaluation, on peut conclure que le système proposé capture avec précision les régions de haute localité.

improve working memory

5. Conclusions

Dans cette étude, nous avons proposé CCoW, un schéma de copie sur écriture optimisé pour les charges de travail à forte localité spatiale. CCoW divise l'espace d'adressage du processus en régions et estime leur localité avec la couverture.

Une écriture dans une région de haute localité amène le gestionnaire de pagefault à précopier les pages à proximité. Pour suivre correctement la couverture après la pré-copie, CCoW exploite le bit sale dans la table des pages. L'évaluation avec des références a confirmé que le schéma proposé peut identifier des régions de haute localité avec un faible surcoût, permettant un gain de performances des applications sans modification.

Comme nous l'avons mentionné, les performances chutent considérablement juste après le fork en raison de l'énorme quantité de données à copier. Nous travaillons actuellement sur la gestion de la baisse des performances en limitant le taux de pré-copie et en effectuant la pré-copie de manière asynchrone. Nous prévoyons également d'incorporer un mécanisme adaptatif qui ajuste les paramètres de configuration en fonction des caractéristiques de la charge de travail actuelle.

Contributions des auteurs : Conceptualisation, MH et S.-HK ; méthodologie, MH; logiciel, MH ; validation, MH et S.-HK ; analyse formelle, MH et S.-HK ; enquête, MH et S.-HK ; ressources, S.-HK ; conservation des données, MH ; rédaction-préparation d'un projet original, MH ; rédaction-révision et révision, MH et S.-HK ; visualisation, MH ; surveillance, S.-HK; administration de projet, S.-HK ; acquisition de financement, S.-HK Tous les auteurs ont lu et accepté la version publiée du manuscrit.

boost memory

Financement : Cette recherche a été soutenue par une subvention de l'Institut de recherche en électronique et télécommunications (ETRI) financée par le gouvernement coréen (20ZS1310) et par le programme BK21 FOUR de la Fondation nationale de recherche de Corée financé par le ministère de l'Éducation (NRF5199991014091).

Déclaration du comité d'examen institutionnel : sans objet.

Déclaration de consentement éclairé : sans objet.

Déclaration de disponibilité des données : sans objet.

Conflits d'intérêts : Les auteurs ne déclarent aucun conflit d'intérêts.


Les références
1. Gorman, M. Comprendre le gestionnaire de mémoire virtuelle Linux ; Prentice Hall : Upper Saddle River, NJ, États-Unis, 2007.

2. Bovet, DP; Cesati, M. Comprendre le noyau Linux ; O'Reilly : Newton, MA, États-Unis, 2001.

3. Love, R. Linux Kernel Development, 3e éd.; Addison Wesley : Boston, MA, États-Unis, 2010.

4. Laboratoires, R. Redis. Disponible en ligne : https://github.com/redis/redis (consulté le 7 juin 2021).

5. Silberschatz, A. ; Galvin, PB ; Gagné, G. Concepts du système d'exploitation ; Addison-Wesley Longman Publishing Co., Inc. : Boston, MA, États-Unis, 2018.

6. Harris, SL; Harris, D. Conception numérique et architecture informatique ; Morgan Kaufmann : Burlington, MA, États-Unis, 2022.

7. Abi-Chahla, F. Intel Core i7 (Nehalem) : Architecture par AMD ? Disponible en ligne : https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041.html (consulté le 18 octobre 2021).

8. Pham, B. ; Bhattacharjee, A. ; Eckert, Y. ; Loh, GH Augmenter la portée du TLB en exploitant le clustering dans les traductions de pages. Dans les actes du 20e Symposium international de l'IEEE 2014 sur l'architecture informatique haute performance (HPCA'14), Orlando, FL, États-Unis, du 15 au 19 février 2014 ; pp. 558-567.


For more information:1950477648nn@gmail.com

Vous pourriez aussi aimer