CCoW: تحسين النسخ عند الكتابة مع الأخذ في الاعتبار الموقع المكاني في أعباء العمل الجزء 6
Apr 03, 2024
يختلف حجم المنطقة والعتبة الأفضل وفقًا لخصائص عبء العمل. ولتقييم تأثير عبء العمل، نقوم بقياس أداء CCoW على أعباء العمل مع مختلف المناطق. وعلى وجه التحديد، قمنا بتغيير معامل توزيع Zipf، الذي يحدد درجة المنطقة.
هناك علاقة وثيقة بين الذاكرة البشرية وعبء العمل. عندما نحتاج إلى معالجة كميات كبيرة من المعلومات أو إكمال المهام المعقدة، يجب أن تظل أدمغتنا يقظة للغاية لضمان معالجة جميع المعلومات الضرورية وتخزينها بشكل صحيح. تتصل الخلايا العصبية في الدماغ وتتواصل باستمرار، مما يؤثر بشكل كبير على طريقة تفكيرنا وتذكرنا.
في حين أن معالجة كميات كبيرة من المعلومات وإكمال المهام المعقدة يمكن أن تتحدى ذاكرتنا وقدراتنا المعرفية، تظهر الأبحاث أنه من خلال التدريب والممارسة المناسبين، يمكننا تحسين ذاكرتنا وإنتاجيتنا بشكل كبير. على سبيل المثال، من خلال التجارب، اكتشف العلماء أنه من خلال التدريب والممارسة المكثفين للذاكرة، يمكن للأشخاص تحسين ذاكرتهم وكفاءة العمل بشكل كبير.
ومن هذا المنطلق يمكننا أن نستنتج أن الممارسة والتدريب المستمرين مهمان جدًا لأولئك الذين يريدون تحسين ذاكرتهم وكفاءة العمل. أيضًا، حافظ على موقف إيجابي، لأن التوتر يمكن أن يعيق الذاكرة والإنتاجية.
باختصار، هناك علاقة قوية بين عبء العمل والذاكرة. وطالما حافظنا على تركيزنا، وتدربنا ومارسنا بانتظام، وحافظنا على سلوك إيجابي، يمكننا تحسين ذاكرتنا وكفاءة العمل بشكل كبير. يمكن لـ Cistanche deserticola أيضًا تنظيم توازن الناقلات العصبية، مثل زيادة مستويات الأسيتيل كولين وعوامل النمو، والتي تعتبر مهمة للذاكرة والتعلم. بالإضافة إلى ذلك، يمكن لـ Cistanche deserticola أيضًا تحسين تدفق الدم وتعزيز توصيل الأكسجين، مما يضمن حصول الدماغ على العناصر الغذائية والطاقة الكافية، وبالتالي تحسين حيوية الدماغ والقدرة على التحمل.

انقر فوق معرفة طرق تحسين ذاكرتك
يتم توزيع عمليات الوصول بشكل موحد عندما تكون {{0}}، وكلما ارتفعت قيمة، ارتفع مستوى المنطقة التي يعرضها عبء العمل. عندما تكون 1.0، فإن حوالي 80% من العمليات تتضمن 20% من البيانات.
توجد هذه الدرجة من المحلية بشكل شائع في العديد من أعباء العمل الحقيقية، كما ينص مبدأ باريتو. نحن نقيس بثلاث قيم مختلفة، 1.0، و0.9، و1.1، حيث 1.0 هو خط الأساس، و0.9 و1.1 يمثلان عبء العمل المحلي المنخفض والعالي، على التوالي.
يختلف أداء CoW الأصلي وفقًا لأعباء العمل، لذلك تم تعيين فترة التفرع لأعباء العمل وفقًا للوقت الذي تم قياسه باستخدام إعداد CoW الأصلي. على سبيل المثال، إذا كان تكوين CoW الأصلي يتطلب 10 ثوانٍ لاستعادة الأداء الطبيعي بعد الشوكة، فإن تكوينات CCoW الأخرى أيضًا تعمل على شوكة فرعية كل 10 ثوانٍ.
يلخص الشكل 5 متوسط الإنتاجية واستخدام الذاكرة لـ CCoW مع أحمال العمل المحلية المختلفة. بالنسبة لأحمال العمل المحلية المنخفضة، تظهر التكوينات ذات الحدود الصغيرة لـCCoW أداءً أفضل من تلك ذات الحدود الكبيرة. حتى أن "CCoW-all" يتفوق على CoW الأصلي بنسبة 15% في عبء العمل المحلي المنخفض. ويرجع ذلك إلى فعالية النسخة المسبقة. في أحمال العمل ذات المنطقة المنخفضة، يجب نسخ جزء كبير من الذاكرة مع انتشار عمليات الوصول عبر مساحة عنوان العملية بأكملها. في الواقع، يؤدي نسخ المناطق بأكملها إلى نسخ الذاكرة الضرورية مسبقًا مع انخفاض الحمل.

وبالتالي، كلما كانت العتبة أصغر، زاد أداء البرنامج مع عبء العمل المحلي المنخفض. ومع ذلك، فإن هذا الاتجاه له تأثير معاكس مع أحمال العمل المحلية العالية. مع أعباء العمل المحلية العالية، تركز العديد من عمليات الوصول على بضع صفحات.
وهذا يعني أن جزءًا صغيرًا فقط من الذاكرة يحتاج إلى النسخ المتماثل خلال عملية النسخ والكتابة. يؤدي نسخ المنطقة بأكملها على خطأ صفحة إلى نسخ الصفحات التي لم يتم الوصول إليها على الإطلاق.
يؤدي هذا إلى عبء مؤقت فقط، مما يضعف الأداء مع أحمال العمل المحلية الأعلى. ونتيجة لذلك، يعرض CCoW-all الأداء الأسوأ مع عبء العمل المحلي العالي. تُظهر التكوينات الأخرى أنماطًا مماثلة لأحمال العمل الأساسية؛ حيث يصل الأداء إلى الذروة عند قيمة الحد البالغة 80% وينخفض مع الحدود الأصغر.

يُظهر استخدام الذاكرة للمعيار اتجاهًا ثابتًا بغض النظر عن درجة المنطقة المحلية لأحمال العمل. يمثل "CCoW-all" دائمًا أعلى استخدام للذاكرة لأنه يقوم دائمًا بنسخ كافة الصفحات الموجودة في الذاكرة بعد التفرع. بالإضافة إلى ذلك، فإن آثار الذاكرة تتناسب عكسيا مع قيمة العتبة؛ كلما كانت قيمة العتبة أصغر، زادت الذاكرة التي يستخدمها المعيار.
يتم زيادة تضخيم الذاكرة بنسبة تصل إلى 10% فقط مقارنة بتكوين CoW الأصلي، والذي يعتبر في نطاق معقول. بالإضافة إلى تحليل أداء CCoW، قمنا بمقارنة أداء CCoW بأداء الصفحة الضخمة الشفافة (THP) مخطط لينكس.
يشبه THP إلى حد ما CCoW من حيث أنه يهدف إلى تخفيف الحمل الناتج عن الصفحات الصغيرة. يمثل "CoW-THP" في الشكل 5 أداء التكوين الذي يدعم THP. لاحظ أن النظام الذي يدعم THP يتعامل مع CoW عن طريق تقسيم الصفحات الضخمة إلى صفحات أساسية قبل نسخ الصفحة المعيبة، وكذلك تفعل المخططات الأخرى التي تعمل على تحسين THP [12-15،17].
يمكننا أن نلاحظ أن THP يعرض أداءً أفضل من التكوين الافتراضي "CoW فقط". نعزو زيادة الأداء إلى زيادة الكفاءة في ترجمة العناوين بصفحات ضخمة.
على وجه التحديد، وفقًا لمخطط THP، من المحتمل أن يتم تقسيم الجزء الساخن من مساحة عنوان العملية إلى صفحات أساسية، وبالتالي توفير نفس الأداء مثل تكوين "CoW فقط". ومع ذلك، لا يتم تقسيم الجزء البارد من مساحة عنوان العملية، ويتم صيانته بصفحات ضخمة. وبالتالي، يمكن أن يؤدي ذلك إلى تعزيز أداء التطبيق إلى حد ما.
ومع ذلك، لا يوفر THP قدرًا كبيرًا من تحسين الأداء كما تفعل CCoW. ويبين الشكل 6 التوزيع التراكمي للإنتاجية أثناء التقييم. ويمثل المحور x الإنتاجية في العمليات في الثانية، ويمثل المحور y النسبة التراكمية للأداء إلى قيمة الإنتاجية. باستثناء CCoW-all، يمكننا العثور على ثلاثة نطاقات إنتاجية يتم ملاحظتها بشكل متكرر بغض النظر عن التكوينات.
تشير المجموعة الأولى في النسبة التراكمية من {{0}} إلى 0.1 إلى الفترة التي ينخفض خلالها أداء المعيار مباشرة بعد الانقسام. ثم يتعافى الأداء مع العمل الإضافي، كما هو الحال في المجموعة الثانية بنسبة تراكمية من 0.1 إلى 0.7.
النسب التراكمية المتبقية في النطاق من {{0}}.7 إلى 1.0 هي من عمليات الوصول التي لا تؤدي إلى أخطاء في الصفحة. بشكل عام، تميل تكوينات CCoW إلى انخفاضات شديدة في الأداء مقارنة بتكوينات CoW الأصلية. على وجه التحديد، مع عبء العمل المحلي العالي لمخطط CoW الأصلي، تنخفض الإنتاجية إلى حوالي 1900 كيلو عملية في الثانية مباشرة بعد الشوكة.

ومن ثم يرتفع ببطء إلى 2500 كيلو عملية في الثانية. مع CCoW انخفض الأداء أكثر إلى نطاق 1700 ألف عملية في الثانية. ومع ذلك، استعاد الأداء بشكل أسرع، مما يدل على أداء أفضل من البقرة الأصلية في معظم الأوقات (أي، في الغالب على الجانب الأيمن من الرسم البياني التراكمي). يمكننا أن نلاحظ اتجاهًا مشابهًا من أعباء العمل الأخرى أيضًا، ويظهر تكوين CCoW-all سلوكًا متطرفًا؛ مباشرة بعد الانقسام، ينخفض الأداء بشكل ملحوظ ويظل منخفضًا بينما يتم نسخ معظم مساحة العنوان باستخدام عمليات الوصول المنتشرة.
ومع ذلك، بعد هذه النقطة، لا يحدث سوى عدد قليل من أخطاء الصفحات، لذلك تتم معالجة معظم عمليات الوصول دون أخطاء في الصفحات. وبالتالي، فإن الإنتاجية لها توزيع ثنائي في CCoW. ومن هذا التقييم، أكدنا أن CCoW توفر الأداء الأمثل من خلال تحسين الحالة الشائعة.
ومع ذلك، ينبغي معالجة انخفاض الأداء للحصول على خصائص أداء أفضل. ولتحقيق هذه الغاية، نعمل حاليًا على تقليل كمية البيانات المنسوخة مباشرة بعد عملية الانقسام.

4.2. أداء CCoW على عبء عمل واقعي
لتقييم CCoW المقترحة على عبء عمل واقعي، استخدمنا Redis وYCSB. Redis عبارة عن قاعدة بيانات ذات قيمة أساسية في الذاكرة تستخدم على نطاق واسع لتسريع التطبيقات على نطاق الإنترنت.
استخدمنا معيار YCSB لملء أزواج القيمة الرئيسية في مثيل Redis وتنفيذ العمليات عليها. على وجه التحديد، تتم تهيئة مثيل Redis بـ 10 جيجابايت من أزواج قيمة المفتاح مع تكوين YCSB الافتراضي.
يبلغ حجم كافة المفاتيح والقيم 23 و100 بايت، على التوالي، ويحتوي كل مفتاح على 10 حقول من القيم. بعد نشر مثيل Redis، قمنا بتكوينه لعمل لقطات ثم تغذية عمليات التحديث باستخدام YCSB.
لدمج المنطقة الزمنية في عمليات الوصول إلى قيمة المفتاح، قمنا بإعداد عبء عمل YCSB لتحديد المفاتيح المستهدفة وفقًا لتوزيع Zip باستخدام قيمة المعلمة 1.0.
أثناء إجراء 100 جيجابايت من التحديثات، قمنا بجمع الإنتاجية لكل ثانية من تقرير قياس أداء YCSB. يلخص الشكل 7 متوسط الإنتاجية واستخدام الذاكرة لمثيل Redis عندما يتم تكوين النظام لاستخدام CoW أوCCoW الأصلي. لاحظ أننا استخدمنا 2 ميغابايت لحجم المنطقة، وتمت تسوية جميع قيم النتائج مع قيمة CoW.

بشكل عام، تفوقت جميع تكوينات CCoW على CoW الأصلية، بغض النظر عن عتبة التغطية. وبالمثل، كما قمنا بالتحليل أعلاه، تم تحديد الأداء من خلال المفاضلة بين مكاسب الأداء من النسخ المخفف عند الكتابة والنفقات العامة لنسخ الصفحات الإضافية. عندما تكون قيمة العتبة عالية، يتم نسخ مناطق قليلة فقط، مما يجعل فرصة التحسين وحمل الذاكرة صغيرًا.
عندما تنخفض قيمة العتبة إلى أقل من 85%، تزداد مساحة الذاكرة وتتحمل المزيد من الحمل. ونتيجة لذلك، يختلف متوسط إنتاجية CCoW وفقًا لحد التغطية ولكنه يوضح تحسنًا في الأداء بنسبة تصل إلى 5% مقارنةً بـ CoW الأصلية.
مع عبء عمل Redis وYCSB، لاحظنا تحسنًا هامشيًا فقط في الأداء مع THP. ويرجع ذلك إلى أنه في عبء العمل، تكون عمليات الوصول للكتابة منتشرة في جميع أنحاء مساحة عنوان العملية، ويتم تقسيم الصفحات الضخمة بشكل فعال إلى صفحات أساسية أثناء التعامل مع CoW.
نظرًا لأن عملية Redis لا يمكن أن تحتوي إلا على عدد قليل من الصفحات الضخمة، فإن أدائها مشابه لأداء التكوين الأساسي. توضح هذه النتيجة أن النهج القائم على THP أقل فعالية في أعباء العمل كثيفة الكتابة، وأن CCoW يتفوق على THP.
ولتقييم دقة الآلية في تحديد المناطق عالية المحلية، قمنا بتصنيف سبب آلية توليد النسخ لكل صفحة منسوخة. وعلى وجه التحديد، قمنا بجمع نسبة الصفحات المنسوخة من جميع الصفحات المنسوخة. عندما تكون نسبة النسخ المسبق هيx%، مما يؤدي إلى زيادة إجمالي مساحة الذاكرة بمقدار y%، يمكننا حساب نسبة النسخ المسبق غير الضروري عن طريق قسمة y على x.
على سبيل المثال، في تكوين CCoW-80، يتم نسخ 26.9% من الصفحات المنسوخة، مما يزيد من مساحة الذاكرة بنسبة 6.7%. وهذا يعني أن 24.9% من صفحات ما قبل النسخ لم يتم الرجوع إليها. ويلخص الجدول 1 الحساب. وتتراوح نسبة النسخ المسبق غير الضرورية من 23.4% إلى 35.6%، ومن نتيجة التقييم يمكن استنتاج أن المخطط المقترح يلتقط بدقة المناطق المحلية العالية.

5. الاستنتاجات
في هذه الدراسة، اقترحنا CCoW، وهو مخطط محسّن للنسخ عند الكتابة لأحمال العمل ذات المنطقة المكانية العالية. تقوم CCoW بتقسيم مساحة عنوان العملية إلى مناطق وتقدر موقعها بالتغطية.
تؤدي الكتابة إلى منطقة محلية عالية إلى قيام معالج أخطاء الصفحات بنسخ الصفحات القريبة مسبقًا. لتتبع التغطية بشكل صحيح بعد النسخة المسبقة، تعمل CCoW على تعزيز البتات القذرة في جدول الصفحات. أكد التقييم باستخدام المعايير أن المخطط المقترح يمكنه تحديد المناطق المحلية العالية ذات النفقات العامة الصغيرة، مما يتيح تحقيق مكاسب في الأداء من التطبيقات دون تعديل.
كما ذكرنا، ينخفض الأداء بشكل ملحوظ بعد الانقسام مباشرة بسبب الكم الهائل من البيانات المطلوب نسخها. نحن نعمل حاليًا على إدارة انخفاض الأداء من خلال تقليل معدل النسخ المسبق وإجراء النسخ المسبق بشكل غير متزامن. نحن نخطط أيضًا لدمج آلية تكيفية تعمل على ضبط معلمات التكوين وفقًا لخصائص عبء العمل الحالي.
مساهمات المؤلف: التصور، MH وS.-HK؛ المنهجية، MH؛ البرمجيات، MH؛ التحقق من الصحة، MH، وS.-HK؛ التحليل الرسمي، MH، وS.-HK؛ التحقيق، MH، وS.-HK؛ الموارد، S.-HK؛ تنظيم البيانات، MH؛ إعداد المسودة الأصلية للكتابة، MH؛ مراجعة الكتابة والتحرير، MH وS.-HK؛ التصور، MH؛ الإشراف، S.-HK؛ إدارة المشاريع،S.-HK؛ الحصول على التمويل، S.-HK لقد قرأ جميع المؤلفين النسخة المنشورة من المخطوطة ووافقوا عليها.

التمويل: تم دعم هذا البحث من خلال منحة معهد أبحاث الإلكترونيات والاتصالات (ETRI) الممولة من الحكومة الكورية (20ZS1310) وبرنامج BK21 FOUR التابع لمؤسسة الأبحاث الوطنية الكورية الممولة من وزارة التعليم (NRF5199991014091).
بيان مجلس المراجعة المؤسسية: لا ينطبق.
بيان الموافقة المستنيرة: لا ينطبق.
بيان توفر البيانات: لا ينطبق.
تضارب المصالح: المؤلفون يعلنون عدم وجود تضارب في المصالح.
مراجع
1. جورمان، م. فهم مدير الذاكرة الافتراضية لنظام التشغيل Linux؛ برنتيس هول: أعالي نهر سادل، نيوجيرسي، الولايات المتحدة الأمريكية، 2007.
2. بوفيه، دي بي؛ سيساتي، م. فهم نواة لينكس؛ أورايلي: نيوتن، ماساتشوستس، الولايات المتحدة الأمريكية، 2001.
3. Love، R. Linux Kernel Development، الطبعة الثالثة. أديسون ويسلي: بوسطن، ماساتشوستس، الولايات المتحدة الأمريكية، 2010.
4. لابز، آر. ريديس. متاح عبر الإنترنت: https://github.com/redis/redis (تم الوصول إليه في 7 يونيو 2021).
5. سيلبرشاتز، أ.؛ جالفين، بي. جاني، جي. مفاهيم نظام التشغيل؛ شركة Addison-Wesley Longman Publishing Co., Inc.: بوسطن، ماساتشوستس، الولايات المتحدة الأمريكية، 2018.
6. هاريس، إس إل؛ هاريس، د. التصميم الرقمي وهندسة الكمبيوتر؛ مورغان كوفمان: برلينجتون، ماساتشوستس، الولايات المتحدة الأمريكية، 2022.
7. أبي شهلا، ف. Intel Core i7 (Nehalem): الهندسة المعمارية بواسطة AMD؟ متاح عبر الإنترنت: https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041.html (تم الوصول إليه في 18 أكتوبر 2021).
8. فام، ب.؛ بهاتاشارجي، أ؛ إيكيرت، Y.؛ Loh، GH زيادة الوصول إلى TLB من خلال استغلال التجميع في ترجمات الصفحات. وفي وقائع الندوة الدولية العشرين لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) لعام 2014 حول هندسة الكمبيوتر عالية الأداء (HPCA'14)، أورلاندو، فلوريدا، الولايات المتحدة الأمريكية، 15-19 فبراير 2014؛ ص 558-567.
For more information:1950477648nn@gmail.com






