ما هي ذاكرة التخزين المؤقت في محركات الأقراص الثابتة

سجلات التخزين المؤقتعلى جهاز تخزين يسمى استخدام ذاكرة متطايرة عالية السرعة لتراكم أوامر الكتابة المرسلة إلى أجهزة التخزين وتخزينها مؤقتًا حتى تتمكن الوسائط الأبطأ (سواء كانت أقراص فعلية أو ذاكرة فلاش غير مكلفة) من التعامل معها. تتطلب معظم الأجهزة التي تستخدم التخزين المؤقت للكتابة مصدر طاقة غير منقطع.

لإدارة التخزين المؤقت للكتابة على القرص ، افتح لوحة التحكم - إدارة الأجهزة.

في الفصل أجهزة القرصانقر نقرًا مزدوجًا فوق محرك الأقراص الذي تريده.

انتقل إلى علامة التبويب سياسة

إزالة سريعة

عادةً ما تكون هذه القيمة هي الخيار الأفضل للأجهزة التي قد تحتاج إلى إزالتها من النظام بشكل متكرر ، مثل محركات أقراص USB المحمولة أو SD أو MMC أو Compact Flash أو بطاقات الذاكرة المماثلة وأجهزة التخزين الخارجية الأخرى.

إذا تم تحديد الخيار إزالة سريعة، ثم يتحكم Windows في الأوامر التي تم تمريرها إلى الجهاز باستخدام طريقة تسمى بالمرور من خلال التخزين المؤقت... باستخدام التخزين المؤقت التمريري ، يتعامل الجهاز مع أوامر الكتابة كما لو لم تكن ذاكرة التخزين المؤقت موجودة. قد توفر ذاكرة التخزين المؤقت فائدة صغيرة في الأداء ، لكن التركيز ينصب على تعظيم أمان البيانات عن طريق اعتراض الأوامر المرسلة إلى جهاز التخزين الأساسي. الميزة الرئيسية هي القدرة على إزالة جهاز التخزين بسرعة دون التعرض لخطر فقدان البيانات. على سبيل المثال ، إذا قمت بإزالة محرك أقراص فلاش عن طريق الخطأ من منفذه ، فإن فرصة فقدان البيانات المكتوبة عليه تقل بشكل كبير.

عادةً ما يكون هذا الخيار مثاليًا للأجهزة التي تحتاج إلى توفير أسرع أداء ممكن ؛ للأجهزة التي نادرًا ما تتم إزالتها من النظام. إذا تم تحديد هذا الخيار وتم فصل الجهاز عن النظام قبل كتابة جميع البيانات إليه (على سبيل المثال ، عند إزالة محرك أقراص USB محمول) ، فقد يتم فقد البيانات.

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

كتابة ذاكرة التخزين المؤقت على القرص

بواسطة Windows الافتراضييستخدم الكتابة إلى ذاكرة التخزين المؤقت على القرص. هذا يعني أن النظام سيرشد جهاز التخزين بشكل دوري لإرسال جميع البيانات الموجودة في ذاكرة التخزين المؤقت إلى جهاز التخزين الأساسي. يؤدي تحديد هذه المعلمة إلى تعطيل أوامر نقل البيانات الدورية هذه. لا تدعم جميع الأجهزة كل هذه الميزات.

إذا كان الشاغل الأساسي هو السرعه العاليهنقل البيانات ، يجب تمكين كلا المعلمتين: في القسم سياسة الإزالةحدد البند الأداء الأمثل، وفي القسم نهج التخزين المؤقت للسجلاتحدد البند السماح بالتخزين المؤقت للكتابة لهذا الجهاز(إذا كانت أجهزة النظام وجهاز التخزين تدعم هذه الميزات).

كيف يمكنني تغيير إعدادات التخزين المؤقت للكتابة لجهاز؟

معظم أجهزة التخزين الموجهة للمستهلكين مثل محركات أقراص USB المحمولة أو بطاقات SD أو MMC أو محركات خارجيةلا يسمح بتغيير إعدادات التخزين المؤقت للجهاز. داخلي محركات الأقراص الصلبةمع واجهات SATA أو SAS المزودة مع Windows عادةً ما تسمح بتغيير هذه المعلمات (اعتمادًا على الشركة المصنعة للجهاز). لفهم إمكانيات التخزين المؤقت لجهاز معين ولتحديد أفضل الخيارات التي تناسب احتياجاتك ، راجع وثائق الشركة المصنعة.

تعرف على المزيد حول منع فقدان البيانات

يجب أن تكون الأنظمة التي تم تمكين التخزين المؤقت للكتابة بها في أي مكان بين التطبيق وجهاز التخزين مستقرة ولا تخضع لارتفاع الطاقة. إذا كان الجهاز المتصل بالنظام يستخدم التخزين المؤقت للكتابة ، فإن خوارزميات التخزين المؤقت للجهاز تفترض توفر الطاقة المستمر لكل من ذاكرة التخزين المؤقت ونقل البيانات من ذاكرة التخزين المؤقت وإليها. إذا كان معروفًا أن النظام أو مصدر الطاقة به مشاكل محتملة في توفير الطاقة ، فلا ينبغي استخدام هذه الفرص.

يجب عليك أيضًا إزالة أجهزة التخزين القابلة للإزالة بعناية مثل محركات أقراص USB المحمولة أو بطاقات SD أو MMC أو بطاقات الفلاش المدمجة ومحركات الأقراص الخارجية. عند استخدام المعلمة الإزالة الآمنةسيتمكن Windows من حماية بيانات المستخدم في معظم السيناريوهات. ومع ذلك ، قد لا تتطابق بعض برامج التشغيل أو التطبيقات مع طراز Windows ، مما قد يؤدي إلى فقد البيانات عند إزالة هذه الأجهزة. إن أمكن ، افتح تطبيق Safely Remove قبل إزالة أي جهاز تخزين خارجي من النظام.

المصادر: وثائق تعليمات Windows.

AZPC - كمبيوتر شخصي من الألف إلى الياء. بوابة الإنترنت حول أجهزة الكمبيوتر التي تعمل بنظام Windows.

اسمحوا لي أن أذكرك أن الأداة المساعدة Seagate SeaTools Enterprise تسمح للمستخدم بإدارة سياسة التخزين المؤقت ، وعلى وجه الخصوص ، لتبديل أحدث محركات Seagate SCSI بين اثنين نماذج مختلفةالتخزين المؤقت - وضع سطح المكتب ووضع الخادم. يسمى هذا العنصر في قائمة SeaTools وضع الأداء (PM) ويمكن أن يكون له قيمتان - تشغيل (وضع سطح المكتب) وإيقاف (وضع الخادم). الاختلافات بين هذين الوضعين هي برامج بحتة - في حالة وضع سطح المكتب ، ذاكرة التخزين المؤقت القرص الصلبيتم تقسيمها إلى عدد ثابت من المقاطع ذات الحجم الثابت (المتساوي) ثم يتم استخدامها للتخزين المؤقت لوصول القراءة والكتابة. علاوة على ذلك ، في عنصر قائمة منفصل ، يمكن للمستخدم حتى تعيين عدد المقاطع بنفسه (إدارة تجزئة ذاكرة التخزين المؤقت): على سبيل المثال ، بدلاً من 32 مقطعًا افتراضيًا ، قم بتعيين قيمة مختلفة (في هذه الحالة ، سيتم تعيين حجم كل مقطع يتم تخفيضها بشكل متناسب).

في حالة وضع الخادم ، يمكن تخصيص (إعادة) تخصيص أجزاء المخزن المؤقت (ذاكرة التخزين المؤقت على القرص) ، وتغيير حجمها وعددها. يعمل المعالج الدقيق (والبرامج الثابتة) للقرص نفسه ديناميكيًا على تحسين عدد (وسعة) مقاطع ذاكرة التخزين المؤقت اعتمادًا على الأوامر القادمة إلى القرص للتنفيذ.

ثم تمكنا من معرفة أن استخدام محركات Seagate Cheetah الجديدة في وضع "سطح المكتب" (مع التجزئة الثابتة افتراضيًا - 32 مقطعًا) بدلاً من "الخادم" الافتراضي مع التجزئة الديناميكية يمكن أن يؤدي إلى زيادة طفيفة في أداء محركات الأقراص في عدد من المهام الأكثر شيوعًا لأجهزة كمبيوتر سطح المكتب أو خوادم الوسائط. علاوة على ذلك ، يمكن أن تصل هذه الزيادة في بعض الأحيان إلى 30-100٪ (!) اعتمادًا على نوع المهمة ونموذج القرص ، على الرغم من أنها تقدر في المتوسط ​​بـ 30٪ ، وهو ما يعتبر أيضًا أمرًا ليس سيئًا. من بين هذه المهام العمل الروتيني لجهاز كمبيوتر سطح المكتب (اختبارات WinBench و PCmark و H2bench) وقراءة الملفات ونسخها وإلغاء التجزئة. في الوقت نفسه ، في تطبيقات الخادم البحتة ، لا ينخفض ​​أداء محركات الأقراص تقريبًا (إذا حدث ذلك ، فلن ينخفض ​​بشكل كبير). ومع ذلك ، تمكنا من ملاحظة مكاسب ملحوظة من استخدام وضع سطح المكتب فقط على قرص Cheetah 10K.7 ، بينما لم تهتم شقيقتها الأكبر Cheetah 15K.4 بالوضع الذي يعمل على تطبيقات سطح المكتب فيه.

في محاولة لفهم المزيد عن كيفية تقسيم ذاكرة التخزين المؤقت لهذه محركات الأقراص الصلبةحول الأداء في التطبيقات المختلفة وأي أوضاع التجزئة (عدد مقاطع الذاكرة) الأكثر فائدة عند أداء مهام معينة ، لقد بحثت في تأثير عدد مقاطع ذاكرة التخزين المؤقت على الأداء محرك سيجيت Cheetah 15K.4 في نطاق واسع من القيم - من 4 إلى 128 مقطعًا (4 و 8 و 16 و 32 و 64 و 128). يتم عرض نتائج هذه الدراسات على انتباهك في هذا الجزء من المراجعة. اسمحوا لي أن أؤكد أن هذه النتائج مثيرة للاهتمام ليس فقط لهذا الطراز من الأقراص (أو أقراص SCSI من Seagate بشكل عام) - يعد تقسيم ذاكرة التخزين المؤقت واختيار عدد المقاطع أحد الاتجاهات الرئيسية لتحسين البرامج الثابتة ، بما في ذلك سطح المكتب الأقراص ذات واجهة ATA ، والتي تم تجهيزها الآن أيضًا بمخزن مؤقت في الغالب 8 ميجا بايت. لذلك ، فإن نتائج أداء محرك الأقراص الموصوفة في هذه المقالة في مهام مختلفة اعتمادًا على تقسيم ذاكرة التخزين المؤقت الخاصة به ذات صلة أيضًا بصناعة ATA لسطح المكتب. وبما أن منهجية الاختبار قد تم وصفها في الجزء الأول ، فلننتقل مباشرةً إلى النتائج نفسها.

ومع ذلك ، قبل الشروع في مناقشة النتائج ، دعنا نلقي نظرة فاحصة على تصميم وتشغيل مقاطع ذاكرة التخزين المؤقت لقرص Seagate Cheetah 15K.4 من أجل فهم ما هو على المحك بشكل أفضل. من بين ثمانية ميغابايت لذاكرة التخزين المؤقت الفعلية (أي لعمليات التخزين المؤقت) ، يتوفر هنا 7077 كيلوبايت (الباقي هو منطقة الخدمة). هذه المنطقة مقسمة إلى مقاطع منطقية (Mode Select Page 08h، byte 13) ، والتي تُستخدم لقراءة البيانات وكتابتها (لأداء وظائف القراءة المسبقة من الأطباق والكتابة المؤجلة إلى سطح القرص). للوصول إلى البيانات الموجودة على الأطباق الممغنطة ، تستخدم المقاطع العنوان المنطقي لكتل ​​محرك الأقراص. تدعم محركات الأقراص في هذه السلسلة 64 مقطعًا من ذاكرة التخزين المؤقت كحد أقصى ، حيث يمثل طول كل مقطع عددًا صحيحًا من قطاعات القرص. يبدو أن مقدار ذاكرة التخزين المؤقت المتاحة يتم توزيعه بالتساوي بين المقاطع ، أي إذا كان هناك ، على سبيل المثال ، 32 مقطعًا ، فإن حجم كل مقطع يبلغ حوالي 220 كيلوبايت. باستخدام التجزئة الديناميكية (في PM = وضع الإيقاف) ، يمكن تغيير عدد المقاطع بواسطة محرك الأقراص الثابتة تلقائيًا اعتمادًا على تدفق الأوامر من المضيف.

تتطلب تطبيقات الخادم وسطح المكتب عمليات مختلفةالتخزين المؤقت من الأقراص لتحقيق الأداء الأمثل ، لذلك من الصعب توفير تكوين واحد لأداء هذه المهام على أفضل وجه. وفقًا لـ Seagate ، تتطلب تطبيقات "سطح المكتب" تكوين ذاكرة تخزين مؤقت للاستجابة بسرعة للطلبات المتكررة عدد كبيرمقاطع بيانات صغيرة بدون تأخير للقراءة المسبقة للأجزاء المجاورة. في المقابل ، تتطلب المهام من جانب الخادم تكوين ذاكرة التخزين المؤقت بطريقة تضمن تلقي كميات كبيرة من البيانات المتسلسلة في طلبات غير متكررة. في هذه الحالة ، تعد قدرة ذاكرة التخزين المؤقت على تخزين المزيد من البيانات من المقاطع المتجاورة أثناء القراءة المسبقة أكثر أهمية. لذلك ، بالنسبة إلى وضع سطح المكتب ، توصي الشركة المصنعة باستخدام 32 مقطعًا (في الإصدارات السابقة من Cheetah ، تم استخدام 16 مقطعًا) ، وبالنسبة لوضع الخادم ، يبدأ العدد التكيفي للقطاعات من ثلاثة فقط لذاكرة التخزين المؤقت بأكملها ، على الرغم من أنه قد يزداد أثناء التشغيل . في تجاربنا حول تأثير عدد المقاطع على الأداء في التطبيقات المختلفة ، سنقتصر على النطاق من 4 قطاعات إلى 64 مقطعًا ، وكاختبار ، سنقوم "بتشغيل" القرص أيضًا مع 128 مقطعًا مثبتة في برنامج SeaTools Enterprise (لا يعلم البرنامج أن عدد المقاطع في هذا القرص غير صالح).

نتائج الاختبار البدني

لا فائدة من إعطاء رسوم بيانية لسرعة القراءة الخطية بأعداد مختلفة من مقاطع ذاكرة التخزين المؤقت - فهما متماثلان. ولكن وفقًا لسرعة واجهة Ultra320 SCSI التي تم قياسها من خلال الاختبارات ، يمكنك ملاحظة صورة غريبة للغاية: مع 64 مقطعًا ، تبدأ بعض البرامج في تحديد سرعة الواجهة بشكل غير صحيح ، مما يقللها بأكثر من ترتيب من حيث الحجم.

فيما يتعلق بمتوسط ​​وقت الوصول المقاس ، تصبح الفروق بين الأعداد المختلفة لقطاعات ذاكرة التخزين المؤقت أكثر وضوحًا - مع انخفاض التجزئة ، فإن المتوسط ​​يقاس تحت وقت Windowsينمو الوصول للقراءة بشكل طفيف ، ويتم ملاحظة قراءات أفضل بشكل ملحوظ في PM = وضع الإيقاف ، على الرغم من أنه من الصعب التأكيد على أن عدد المقاطع صغير جدًا أو ، على العكس من ذلك ، كبير جدًا على أساس هذه البيانات. من الممكن أن يبدأ القرص في هذه الحالة ببساطة في تجاهل الجلب المسبق عند القراءة لاستبعاد التأخيرات الإضافية.

يمكنك محاولة الحكم على كفاءة خوارزميات الكتابة البطيئة للبرامج الثابتة للقرص والتخزين المؤقت للبيانات التي تتم كتابتها في المخزن المؤقت لمحرك الأقراص من خلال كيفية انخفاض متوسط ​​وقت الوصول للكتابة الذي يقاس بواسطة نظام التشغيل بالنسبة إلى القراءة مع تمكين التخزين المؤقت لإعادة الكتابة في محرك الأقراص (تم تمكينه دائمًا في اختباراتنا). للقيام بذلك ، عادة ما نستخدم نتائج اختبار C "T H2benchW ، ولكن هذه المرة سنكمل الصورة باختبار في برنامج IOmeter ، أنماط القراءة والكتابة التي تستخدم الوصول العشوائي بنسبة 100٪ في كتل من 512 بايت بعمق وحدة قائمة انتظار الطلبات. (بالطبع ، يجب ألا تعتقد أن متوسط ​​وقت الوصول للكتابة في المخططين أدناه يعكس حقًا هذا بدنيخصائص محركات! هذه مجرد معلمة معينة ، يتم قياسها برمجيًا باستخدام اختبار ، يمكن من خلالها الحكم على كفاءة التخزين المؤقت للكتابة في ذاكرة التخزين المؤقت للقرص. متوسط ​​وقت الوصول الفعلي للكتابة المعلن من قبل الشركة المصنعة لـ Cheetah 15K.4 هو 4.0 + 2.0 = 6.0 مللي ثانية). بالمناسبة ، توقعًا للأسئلة ، ألاحظ أنه في هذه الحالة (أي عندما يتم تمكين الكتابة البطيئة على القرص) ، يقوم محرك الأقراص بإبلاغ المضيف عن الإكمال الناجح لأمر الكتابة (الحالة الجيدة) بمجرد يتم كتابتها في ذاكرة التخزين المؤقت ، وليس مباشرة إلى الوسط المغناطيسي ... هذا هو السبب في انخفاض قيمة متوسط ​​وقت الوصول للكتابة المقاس من الخارج مقارنة بالمعامل المماثل عند القراءة.

وفقًا لنتائج هذه الاختبارات ، هناك اعتماد واضح على كفاءة التخزين المؤقت للكتابة العشوائية لكتل ​​البيانات الصغيرة على عدد مقاطع ذاكرة التخزين المؤقت - فكلما زاد عدد المقاطع ، كان ذلك أفضل. مع وجود أربعة أجزاء ، تنخفض الكفاءة بشكل حاد ويرتفع متوسط ​​وقت الوصول للكتابة تقريبًا إلى قيم القراءة. وفي "وضع الخادم" ، من الواضح أن عدد المقاطع في هذه الحالة قريب من 32. حالات 64 و "128" مقاطع متطابقة تمامًا ، مما يؤكد محدودية البرامج على مستوى 64 مقطعًا من الأعلى.

ومن المثير للاهتمام ، أن اختبار IOmeter في أبسط الأنماط للوصول العشوائي في كتل من 512 بايت يعطي نفس القيم تمامًا عند الكتابة مثل اختبار C "T H2BenchW (بدقة تصل إلى مئات من الملي ثانية) ، بينما أظهرت قراءة IOmeter نتيجة مبالغة قليلاً في كل نطاق التجزئة - ربما فرق 0.1-0.19 مللي ثانية مع اختبارات أخرى لوقت الوصول العشوائي أثناء القراءةبسبب بعض الأسباب "الداخلية" لـ IOmeter (أو حجم كتلة 512 بايت بدلاً من 0 بايت ، وهو مطلوب بشكل مثالي لمثل هذه القياسات). ومع ذلك ، فإن نتائج قراءة IOmeter تتطابق عمليًا مع نتائج اختبار القرص لبرنامج AIDA32.

الأداء في التطبيقات

دعنا ننتقل إلى معايير أداء التخزين في التطبيقات. وقبل كل شيء ، دعنا نحاول معرفة مدى جودة تحسين الأقراص لتعدد مؤشرات الترابط. للقيام بذلك ، عادةً ما أستخدم الاختبارات في برنامج NBench 2.4 ، حيث تتم كتابة ملفات 100 ميغابايت على القرص وقراءتها من خلال عدة خيوط متزامنة.

يسمح لنا هذا الرسم البياني بالحكم على كفاءة الخوارزميات للكتابة البطيئة متعددة الخيوط لمحركات الأقراص الصلبة في ظروف حقيقية (وليست اصطناعية ، كما كان في الرسم التخطيطي بمتوسط ​​وقت الوصول) عندما يعمل نظام التشغيل مع الملفات. لا شك في أن قيادة كل من أقراص Maxtor SCSI عند التسجيل في عدة تدفقات متزامنة ، لكننا في Chita نلاحظ بالفعل حدًا مثاليًا معينًا في المنطقة بين 8 و 16 مقطعًا ، بينما في القيم الأعلى والأدنى تنخفض سرعة القرص لهذه المهام . بالنسبة إلى وضع الخادم ، من الواضح أن عدد المقاطع هو 32 (بدقة جيدة :)) ، و "128" هو في الواقع 64 مقطعًا.

للقراءات متعددة الخيوط ، من الواضح أن محركات Seagate تتحسن على محركات Maxtor. بالنسبة لتأثير التجزئة ، إذن ، كما هو الحال في التسجيل ، نلاحظ حدًا أمثل معينًا أقرب إلى 8 مقاطع (أثناء التسجيل ، كان أقرب إلى 16 مقطعًا) ، ومع التجزئة العالية جدًا (64) ، تنخفض سرعة القرص بشكل كبير (مثل في التسجيل) ... إنه لمن دواعي السرور أن وضع الخادم "يراقب بازار" المضيف هنا ويغير التجزئة من 32 عند الكتابة إلى ~ 8 عند القراءة.

الآن دعنا نرى كيف تتصرف الأقراص في اختبارات Disk WinMark 99 "القديمة" ولكن لا تزال شائعة من حزمة WinBench 99. دعني أذكرك أننا نجري هذه الاختبارات ليس فقط من أجل "البداية" ، ولكن أيضًا من أجل "الوسط" ( من حيث الحجم) الوسائط المادية لنظامي الملفات ، وتظهر الرسوم البيانية متوسط ​​النتائج. بالطبع ، هذه الاختبارات ليست "ملف تعريف" لمحركات أقراص SCSI ، ونحن نقدم نتائجها هنا بدلاً من ذلك نشيد بالاختبار نفسه ولأولئك الذين اعتادوا الحكم على سرعة القرص من خلال اختبارات WinBench 99. وباعتبارها "عزاء" ، نلاحظ أن هذه الاختبارات ستظهر لنا بدرجة معينة من اليقين ما هو أداء محركات أقراص المؤسسة هذه عند أداء مهام أكثر شيوعًا لجهاز كمبيوتر سطح المكتب.

من الواضح أن هناك تقسيمًا مثاليًا هنا ، ومع وجود عدد صغير من المقاطع ، يبدو القرص غير معبر ، وبه 32 مقطعًا - أفضل طريقة(ربما هذا هو السبب في أن مطوري Seagate "حوّلوا" إعداد وضع سطح المكتب الافتراضي من 16 إلى 32 مقطعًا). ومع ذلك ، بالنسبة لوضع الخادم في مهام المكتب (الأعمال) ، فإن التقسيم ليس هو الأمثل تمامًا ، بينما بالنسبة للأداء الاحترافي (المتطور) ، يكون التقسيم أكثر من محسن ، ويتفوق بشكل ملحوظ حتى على التقسيم "الثابت" الأمثل. على ما يبدو ، أثناء تنفيذ الاختبار يتغير اعتمادًا على تدفق الأوامر ونتيجة لذلك ، يتم الحصول على مكاسب في الأداء العام.

لسوء الحظ ، فإن مثل هذا التحسين "أثناء الاختبار" لم يتم ملاحظته في اختبارات "المسار" المعقدة الأكثر حداثة لتقييم أداء "سطح المكتب" للأقراص في حزم PCMakr04 و C "T H2BenchW.

على كل من "مسارات النشاط" (أو بالأحرى ، على 10 مسارات مختلفة) ، يكون ذكاء وضع الخادم أدنى بشكل ملحوظ من التجزئة الثابتة المثلى ، والتي تكون بالنسبة لـ PCmark04 حوالي 8 مقاطع ، وبالنسبة لمقاطع H2benchW - 16.

لكل من هذين الاختبارين ، تبين أن 4 أجزاء من ذاكرة التخزين المؤقت غير مرغوب فيها للغاية ، و 64 أيضًا ، ومن الصعب تحديد المكان الذي ينجذب إليه وضع الخادم أكثر في هذه الحالة.

على النقيض من هذه ، بالطبع ، كل نفس الاختبارات التركيبية (وإن كانت مشابهة جدًا للواقع) - اختبار "حقيقي" تمامًا لسرعة الأقراص مع ملف مؤقت برامج Adobeمحل تصوير. الوضع هنا أكثر كآبة - فكلما زاد عدد الشرائح ، كان ذلك أفضل! وكاد وضع الخادم "التقاطه" ، باستخدام 32 مقطعًا لعمله (على الرغم من أن 64 سيكون أفضل قليلاً).

معايير إنتل آيوميتر

دعنا ننتقل إلى المهام الأكثر شيوعًا لملفات تعريف استخدام محركات أقراص SCSI - تشغيل الخوادم المختلفة (قاعدة البيانات ، خادم الملفات ، خادم الويب) ومحطة العمل (محطة العمل) وفقًا للأنماط المقابلة في إصدار Intel IOmeter 2003.5.10.

Maxtor هو الأفضل في محاكاة خادم قاعدة البيانات ، في حين أن وضع الخادم هو الأكثر ربحية لـ Seagate ، على الرغم من أن الأخير قريب جدًا من 32 مقطعًا ثابتًا (حوالي 220 كيلوبايت لكل منهما). يكون التقسيم الأقل أو الأكثر أسوأ في هذه الحالة. ومع ذلك ، فإن هذا النمط بسيط للغاية من حيث نوع الطلبات - دعنا نرى ما يحدث للأنماط الأكثر تعقيدًا.

عند التقليد خادم الملفاتيأتي التقسيم التكيفي مرة أخرى في الصدارة ، على الرغم من أن التأخر وراءه بمقدار 16 مقطعًا ثابتًا لا يكاد يذكر (32 مقطعًا أسوأ قليلاً هنا ، على الرغم من أنها كافية أيضًا). مع تجزئة صغيرة ، هناك تدهور في قائمة انتظار كبيرة من الأوامر ، ومع وجود قائمة انتظار كبيرة جدًا (64) يتم بطلان أي قائمة انتظار بشكل عام - على ما يبدو ، في هذه الحالة ، يتضح أن حجم قطاعات ذاكرة التخزين المؤقت صغير جدًا (أقل من 111 كيلوبايت ، أي 220 كتلة فقط على الوسائط) للتخزين المؤقت الفعال لكميات البيانات ذات الحجم المعقول.

أخيرًا ، بالنسبة لخادم الويب ، نرى صورة أكثر إمتاعًا - مع قائمة انتظار أوامر NON-ONE ، يكون وضع الخادم مكافئًا أيمستوى التجزئة ، باستثناء 64 ، على الرغم من أنه أفضل قليلاً من الكل.

نتيجة للتوسيط الهندسي لأحمال الخادم الموضحة أعلاه من خلال الأنماط وقوائم انتظار الطلبات (بدون أوزان) ، وجدنا أن التجزئة التكيفية هي الأفضل لمثل هذه المهام ، على الرغم من تأخر 32 مقطعًا ثابتًا قليلاً عن الركب ، كما أن 16 مقطعًا تبدو جيدة بشكل عام. بشكل عام ، اختيار Seagate مفهوم تمامًا.

بالنسبة للنمط " محطة العمل"، من الواضح أن وضع الخادم هنا هو الأفضل.

والأمثل للتجزئة الدائمة هو 16 قطعة.

الآن - أنماطنا الخاصة بـ IOmeter أقرب من حيث الغرض إلى أجهزة الكمبيوتر المكتبية ، على الرغم من أنها تشير بالتأكيد إلى أجهزة التخزين الخاصة بالمؤسسات ، حيث أنه في الأنظمة "الاحترافية للغاية" ، تقرأ محركات الأقراص الثابتة وتكتب الملفات الكبيرة والصغيرة ، وأحيانًا تنسخ الملفات ، وهو نصيب الأسد من الوقت. ونظرًا لأن طبيعة المكالمات في هذه الأنماط في هذه الأنماط في اختبار IOmeter (في عناوين عشوائية ضمن حجم القرص بالكامل) أكثر شيوعًا لأنظمة فئة الخادم ، فإن أهمية هذه الأنماط للأقراص قيد الدراسة أعلى.

تعد قراءة الملفات الكبيرة أفضل مرة أخرى في وضع الخادم ، باستثناء الانخفاض غير المفهوم عند QD = 4. ومع ذلك ، من الواضح أن عددًا صغيرًا من المقاطع الكبيرة هو الأفضل للقرص في هذه العمليات (والتي ، من حيث المبدأ ، يمكن التنبؤ بها وتتوافق بشكل ممتاز مع نتائج قراءة الملفات متعددة الخيوط ، انظر أعلاه).

متقطع تسجيلمن ناحية أخرى ، لا تزال الملفات الكبيرة صعبة للغاية بالنسبة لذكاء وضع الخادم ، وهنا يكون التقسيم المستمر على مستوى 8-16 مقطعًا أكثر فائدة ، كما هو الحال مع تسجيل الملفات متعددة مؤشرات الترابط ، انظر أعلاه. بشكل منفصل ، نلاحظ أنه في هذه العمليات ، يكون تجزئة ذاكرة التخزين المؤقت الكبيرة ضارًا للغاية - على مستوى 64 مقطعًا. ومع ذلك ، فقد تبين أنه مفيد في قراءة عمليات الملفات الصغيرة ذات قائمة انتظار الطلبات الكبيرة:

أعتقد أن هذا هو بالضبط ما يستخدمه وضع الخادم لتحديد الوضع التكيفي - الرسوم البيانية الخاصة بهم متشابهة جدًا.

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

يعد نسخ الملفات الكبيرة إخفاقًا واضحًا في وضع الخادم! هنا ، من الواضح أن التجزئة باستخدام المستوى 16 أكثر فائدة (هذا هو الأفضل ، لأن 8 و 32 أسوأ في قائمة الانتظار 4).

أما بالنسبة لنسخ الملفات الصغيرة ، فإن 8-16-32 مقطعًا متساوية عمليًا هنا ، وتتفوق على 64 مقطعًا (بشكل غريب بما فيه الكفاية) ، ووضع الخادم "غريب" بعض الشيء.

استنادًا إلى نتائج المتوسط ​​الهندسي للبيانات للقراءة العشوائية والكتابة ونسخ الملفات الكبيرة والصغيرة ، نجد أن أفضل نتيجة في المتوسط ​​يتم الحصول عليها من خلال التجزئة الثابتة بمستوى 4 مقاطع فقط لكل ذاكرة تخزين مؤقت (أي ، أحجام المقاطع التي تزيد عن 1.5 ميجابايت!) ، في حين أن 8 و 16 مقطعًا متساوية تقريبًا ولم تتخلف تقريبًا عن 4 قطاعات ، ولكن من الواضح أن 64 جزءًا موانع. في المتوسط ​​، أدى وضع الخادم التكيفي إلى تجزئة ثابتة بشكل طفيف - وبالكاد يمكن اعتبار خسارة بنسبة واحد في المائة ملحوظة.

يبقى أن نلاحظ أنه عند محاكاة إلغاء التجزئة ، نلاحظ مساواة تقريبية لجميع مستويات التجزئة الدائمة وميزة طفيفة لوضع الخادم (بنفس 1٪).

وفي نمط دفق القراءة والكتابة في كتل كبيرة وصغيرة ، يكون من المربح قليلاً استخدام عدد صغير من المقاطع ، على الرغم من أن الاختلافات في سرعة تكوينات ذاكرة التخزين المؤقت هنا ، بشكل غريب بما فيه الكفاية ، هي المعالجة المثلية.

الاستنتاجات

بعد إجراء دراسة أكثر تفصيلاً في الجزء الثاني من مراجعتنا لتأثير تقسيم ذاكرة التخزين المؤقت على أداء محرك Seagate Cheetah 15K.4 في مهام مختلفة ، أود أن أشير إلى أن المطورين لم يسموا أوضاع التخزين المؤقت كما أطلقوا عليها لسبب ما: في وضع الخادم ، غالبًا ما يتم تنفيذ تكيف التجزئة في ذاكرة التخزين المؤقت للمهمة التي يتم تنفيذها ، وهذا يؤدي أحيانًا إلى نتائج جيدة جدًا - خاصة عند أداء المهام "الثقيلة" ، بما في ذلك أنماط الخادم في Intel IOmeter ، واختبار WinMark 99 للقرص المتطور ، والقراءة العشوائية للكتل الصغيرة عبر القرص ... في نفس الوقت ، غالبًا ما يكون اختيار مستوى تقسيم ذاكرة التخزين المؤقت في وضع الخادم دون المستوى الأمثل (ويتطلب مزيدًا من العمل قم بتحسين معايير تحليل تدفق أوامر المضيف) ، ثم يخرج وضع سطح المكتب بتقسيم ثابت على مستوى 8 أو 16 أو 32 مقطعًا لكل ذاكرة تخزين مؤقت. علاوة على ذلك ، اعتمادًا على نوع المهمة ، يكون أحيانًا أكثر ربحية استخدام 16 و 32 ، وأحيانًا - 8 أو 4 أجزاء ذاكرة فقط! يتضمن الأخير عمليات قراءة وكتابة متعددة الخيوط (عشوائية ومتسلسلة) ، واختبارات المسار مثل PCMark04 ، وتدفق المهام مع القراءة والكتابة المتزامنة. على الرغم من أن "المواد التركيبية" للوصول العشوائي للكتابة تُظهر بوضوح أن كفاءة الكتابة البطيئة (عند العناوين العشوائية) تتناقص بشكل ملحوظ مع انخفاض عدد المقاطع. أي أن هناك صراعًا بين اتجاهين - ولهذا السبب ، في المتوسط ​​، يكون استخدام 16 أو 32 مقطعًا لكل 8 ميجابايت أكثر كفاءة. إذا تضاعف حجم المخزن المؤقت ، فيمكن توقع أنه من الأكثر ربحية الحفاظ على عدد المقاطع عند مستوى 16-32 ، ولكن من خلال زيادة سعة كل جزء بشكل متناسب ، يمكن أن يزيد متوسط ​​أداء محرك الأقراص بشكل كبير. على ما يبدو ، حتى الآن غير فعال في معظم المهام ، فإن تقسيم ذاكرة التخزين المؤقت إلى 64 مقطعًا عند مضاعفة حجم المخزن المؤقت يمكن أن يكون مفيدًا للغاية ، بينما يصبح استخدام 4 أو حتى 8 أجزاء في هذه الحالة غير فعال. ومع ذلك ، تعتمد هذه الاستنتاجات أيضًا بشدة على الكتل التي يفضلها نظام التشغيل والتطبيقات للعمل مع محرك الأقراص ، والملفات المستخدمة في هذه الحالة. من الممكن تمامًا أنه عندما تتغير البيئة ، قد يتحول التقاسم الأمثل لذاكرة التخزين المؤقت في اتجاه أو آخر. حسنًا ، نتمنى نجاح Seagate في تحسين "ذكاء" وضع الخادم ، والذي ، إلى حد ما ، يمكن أن يخفف من "الاعتماد على النظام" و "الاعتماد على المهام" من خلال تعلم كيفية تحديد التجزئة الأمثل اعتمادًا على تدفق أوامر المضيف في أفضل طريقة.

يشارك اليوشا رونيت الأكثر شهرة معلومات مروعة.
http://www.exler.ru/blog/item/12406/؟25

أتذكر أنني في التسعينيات استخدمت ما يسمى بوحدات التحكم في ذاكرة التخزين المؤقت على أجهزة كمبيوتر مختلفة كان الأداء مهمًا لها عند العمل مع قرص ثابت: كانت هذه بطاقات مزودة بفتحات لجهاز كمبيوتر عادي ذاكرة الوصول العشوائي، حيث تم إدخال قدر معين من هذه الذاكرة ، وبمساعدة البطاقة تم استخدامه لتخزين البيانات مؤقتًا من القرص الصلب. مثل هذا الشيء أدى إلى تسريع العمل بشكل كبير مع القرص الصلب ، خاصة عند استخدام حزم الرسومات مثل Corel Draw.

خاصة عند استخدام حزم الرسومات مثل Corel Draw. بالضبط.
(فرقعة من القوالب المتفجرة ، ضجة مملة للرأس على المنضدة)

أولاً ، دعنا نحدد ذاكرة التخزين المؤقت لقرص الجهاز.
بشكل عام ، هذه قطعة صغيرة من المنطوق ، "مخيط" في إلكترونيات القرص الصلب.

تعمل ذاكرة التخزين المؤقت كمخزن مؤقت لتخزين البيانات الوسيطة التي تمت قراءتها بالفعل من القرص الصلبولكن لم يتم تقديمها بعد لمزيد من المعالجة ، و لتخزين البيانات التي يصل إليها النظام كثيرًا... تحدث الحاجة إلى التخزين المار بسبب الاختلاف بين سرعة قراءة البيانات من القرص الصلب وسرعة نقل النظام.

إذا كان النظام يستخدم الملف بشكل متكرر ، فسيتم وضعه في ذاكرة التخزين المؤقت للقرص من أجل 1) عدم سحب القرص دون داع و 2) تسريع الوصول إلى هذا الملف. قتل عصفورين بحجر واحد.

بشكل عام ، إنه ليس ملفًا يتم وضعه في ذاكرة التخزين المؤقت ، ولكن أي محتوى من كتل القرص الثابت تتم قراءته بشكل متكرر. على سبيل المثال ، بيانات الخدمة نظام الملفات... أو MBR. أو 12 كيلو بايت من منتصف ملف قاعدة بيانات جيجابايت. القرص لا يميز بين محتوياته ولا يهمه.
يتم إعطاء حالة الملف للتوضيح.

تكمن المشكلة في أنه في التسعينيات ، تم إنتاج الأقراص إما بدون ذاكرة تخزين مؤقت ، أو كانت صغيرة جدًا لتخزين البيانات الضرورية. وقد تم حل هذه المشكلة بالفعل باستخدام وحدات التحكم في ذاكرة التخزين المؤقت.

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

من حيث السرعة النسبية ، لم تكن محركات الأقراص الصلبة بعيدة عن السرعة في التسعينيات: فهي لا تزال أبطأ جزء في الكمبيوتر. لكن التقدم التكنولوجي جعل من الممكن وضع ذاكرة تخزين مؤقت كافية في الأقراص. يكفي لإزالة الحاجة إلى وحدات تحكم ذاكرة التخزين المؤقت منفصلة.

بالإضافة إلى ذلك ، في نظام التشغيل Unix OS ، تعمل ذاكرة الوصول العشوائي "الإضافية" (غير المستخدمة) كذاكرة تخزين مؤقت إضافية. ما يسمى ، ذاكرة التخزين المؤقت على قرص البرنامج... يشار إليه أحيانًا باسم "المخزن المؤقت المؤقت" ، لكن هذا يختلف إلى حد ما.

يحتوي Windows أيضًا على ذلك ، ولكن يتم تعويض جميع فوائده بالكامل عن طريق الاستخدام غير الكافي لملف ترحيل الصفحات.
الحالة الطبيعية للنظام هي أن محتويات ذاكرة الوصول العشوائي موجودة على القرص (pagefile.sys) ، ومحتويات القرص موجودة في ذاكرة الوصول العشوائي (ذاكرة التخزين المؤقت للقرص الناعم). انفصام فى الشخصية.

منذ وقت ليس ببعيد ، بدأت وحدات التحكم في ذاكرة التخزين المؤقت في العودة ، ولكن بالفعل في شكل محركات أقراص SSD. أولاً ، ظهر ما يسمى بمحركات الأقراص الهجينة - محركات الأقراص الصلبة العادية ، حيث تم أيضًا إنشاء محرك أقراص صلبة صغير منفصل (16-32 جيجابايت) ، والذي تم استخدامه حصريًا للتخزين المؤقت.

لا يفهم المؤلف أن شيئًا لم يذهب إلى أي مكان ، حتى يتمكن الآن من العودة بالألعاب النارية والجعجعة.
وتعد محركات الأقراص الهجينة هذه حيلة تسويقية (لسبب ما ، تم حشو محرك أقراص الحالة الصلبة سعة 16 جيجا بايت في برغي عادي ، وحتى مع وظائف منخفضة).
وما هو أكثر منطقية وأسهل وأكثر صحة لاستخدام اثنين من البراغي: SSD سريع للنظام ومسمار منتظم للبيانات. بالنسبة لذاكرة التخزين المؤقت المكونة من 16 عربة ، فهذا هراء ساحر (مع تحذير واحد: تشغيل هذه اللحظة ).

والآن بدأوا في إنتاج محركات أقراص صلبة منفصلة ، والتي تُستخدم أيضًا خصيصًا للتخزين المؤقت.

قراءة - محركات أقراص صلبة عادية ذات أحرف حمراء "ذاكرة التخزين المؤقت فقط".

أسوأ من أعرج هو مجرد أعرج مع جمهور كبير. ©

اليوم ، التخزين الشائع للمعلومات مغناطيسي HDD... يحتوي على قدر معين من الذاكرة مخصص لتخزين البيانات الأساسية. يحتوي أيضًا على ذاكرة تخزين مؤقت ، والغرض منها هو تخزين البيانات الوسيطة. يطلق المحترفون على ذاكرة التخزين المؤقت للقرص الصلب مصطلح "ذاكرة التخزين المؤقت" أو ببساطة "ذاكرة التخزين المؤقت". دعنا نتعرف على سبب الحاجة إلى المخزن المؤقت لمحرك الأقراص الصلبة ، وما الذي يؤثر عليه وحجمه.

يساعد المخزن المؤقت للقرص الصلب نظام التشغيلتخزين البيانات التي تمت قراءتها من الذاكرة الرئيسية لمحرك الأقراص الثابتة مؤقتًا ، ولكن لم يتم نقلها للمعالجة. ترجع الحاجة إلى التخزين العابر إلى حقيقة أن سرعة قراءة المعلومات من HDD و الإنتاجيةنظام التشغيل يختلف اختلافا كبيرا. لذلك ، يحتاج الكمبيوتر إلى تخزين البيانات مؤقتًا في "ذاكرة التخزين المؤقت" ، وبعد ذلك فقط يستخدمها للغرض المقصود منها.

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

وتجدر الإشارة إلى أن حجم "ذاكرة التخزين المؤقت" يعتمد على طراز القرص المحدد. في السابق كان حجمها حوالي 8 ميغا وكان هذا الرقم يعتبر مرضيا. ومع ذلك ، مع تقدم التكنولوجيا ، أصبح المصنعون قادرين على إنتاج رقائق ذات ذاكرة أكبر. لذلك ، تحتوي معظم محركات الأقراص الثابتة الحديثة على مخزن مؤقت ، يتراوح حجمه بين 32 و 128 ميغا بايت. بالطبع ، يتم تثبيت أكبر "ذاكرة تخزين مؤقت" في نماذج باهظة الثمن.

كيف يؤثر المخزن المؤقت للقرص الثابت على الأداء

الآن دعنا نخبرك لماذا يؤثر حجم المخزن المؤقت لمحرك الأقراص الثابتة على أداء الكمبيوتر. نظريًا ، كلما زادت المعلومات المتوفرة في "ذاكرة التخزين المؤقت" ، قل عدد مرات وصول نظام التشغيل إلى القرص الصلب. هذا صحيح بشكل خاص لسيناريو العمل عندما يقوم مستخدم محتمل بمعالجة عدد كبير من الملفات الصغيرة. ينتقلون ببساطة إلى المخزن المؤقت للقرص الصلب وينتظرون دورهم هناك.

ومع ذلك ، إذا تم استخدام جهاز كمبيوتر لمعالجة الملفات الكبيرة ، فإن "ذاكرة التخزين المؤقت" تفقد ملاءمتها. بعد كل شيء ، لا يمكن أن تتناسب المعلومات مع الدوائر الدقيقة ، التي يكون حجمها صغيرًا. نتيجة لذلك ، لن يلاحظ المستخدم زيادة في أداء الكمبيوتر ، حيث لن يتم استخدام المخزن المؤقت. يحدث هذا في الحالات التي يتم فيها تشغيل برامج تحرير ملفات الفيديو وما إلى ذلك في نظام التشغيل.

وبالتالي ، عند شراء قرص صلب جديد ، يوصى بالاهتمام بحجم "ذاكرة التخزين المؤقت" فقط إذا كنت تخطط للتعامل باستمرار مع معالجة الملفات الصغيرة. بعد ذلك سوف يتضح أنه يلاحظ حقًا زيادة في إنتاجية كمبيوتر شخصي... وإذا كان الكمبيوتر الشخصي سيستخدم في المهام اليومية العادية أو معالجة الملفات الكبيرة ، فلا يمكنك أن تعلق أي أهمية على الحافظة.

شكل مهم جدًا ومحدد من التخزين المؤقت هو التخزين المؤقت ... يشير هذا المصطلح إلى استخدام ذاكرة صغيرة نسبيًا ولكنها سريعة لتقليل عدد المكالمات إلى ذاكرة كبيرة أبطأ.

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

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

دور الذاكرة عالية السرعة (التخزين المؤقت) هنا هو مجموعة من المخازن المؤقتة الموجودة في ذاكرة النظام. يتكون كل مخزن مؤقت من رأس وكتلة بيانات مقابلة في الحجم لكتلة (قطاع) من القرص. يحتوي رأس المخزن المؤقت على عنوان كتلة القرص ، ونسخة منه موجودة حاليًا في المخزن المؤقت ، والعديد من العلامات التي تميز حالة المخزن المؤقت.

عندما يتلقى النظام طلبًا لقراءة أو كتابة كتلة معينة من بيانات القرص ، فإنه يتحقق أولاً لمعرفة ما إذا كانت نسخة من تلك الكتلة موجودة حاليًا في أحد مخازن التخزين المؤقت. هذا يتطلب البحث من خلال رؤوس المخزن المؤقت. إذا تم العثور على الكتلة في ذاكرة التخزين المؤقت ، فلن يتم الوصول إلى القرص. بدلاً من ذلك ، تتم قراءة البيانات من المخزن المؤقت أو كتابتها إلى المخزن المؤقت ، على التوالي. في حالة كتابة البيانات ، يجب أيضًا الإشارة في رأس المخزن المؤقت باستخدام علامة خاصة إلى أن المخزن المؤقت أصبح " متسخ "، بمعنى آخر. محتوياته لا تتطابق مع البيانات الموجودة على القرص.

إذا لم يتم العثور على كتلة القرص المطلوبة في ذاكرة التخزين المؤقت ، فيجب تخصيص مخزن مؤقت لها. المشكلة هي أن العدد الإجمالي للمخازن المؤقتة محدود. لإعطاء واحد منهم للكتلة المطلوبة ، يجب "استباق" إحدى الكتل المخزنة هناك من ذاكرة التخزين المؤقت. في هذه الحالة ، إذا كانت الكتلة المستبعدة "متسخة" ، فيجب "تنظيفها" ، أي مكتوب على القرص. عندما يتم استباق كتلة "نظيفة" ، لا يلزم إجراء أي عمليات قرص.

أي كتلة في ذاكرة التخزين المؤقت يجب أن تختارها للإخلاء لتقليل إجمالي عمليات الوصول إلى القرص؟ هذه مشكلة مهمة للغاية ، وإذا تم حلها بشكل غير صحيح ، فيمكن أن تتباطأ عملية النظام بالكامل بسبب الوصول الثابت إلى القرص.

هناك حل أمثل نظريًا لهذه المشكلة ، وهو كالتالي. سيكون عدد مرات الوصول إلى القرص في حده الأدنى إذا اخترت في كل مرة يتم فيها الإخلاء كتلة البيانات التي لن يتم الوصول إليها لأطول فترة في المستقبل. لسوء الحظ ، من المستحيل استخدام هذه القاعدة في الممارسة العملية ، لأن تسلسل الوصول إلى كتل القرص لا يمكن التنبؤ به. هذه النتيجة النظرية مفيدة فقط باعتبارها مثالية غير قابلة للتحقيق لمقارنة نتائج تطبيق خوارزميات اختيار أكثر واقعية.

من بين الخوارزميات المستخدمة في الممارسة ، الأفضل هو ذلك LRU (الأقل استخدامًا مؤخرًا ، مترجم بشكل فضفاض "لم يُستخدم لفترة طويلة"). يتكون مما يلي: يجب اختيار الكتلة التي لم يتم الوصول إليها لأطول فترة للتهجير. هنا ، يتم استخدام مبدأ محلية الروابط: نظرًا لعدم وجود مكالمات لفترة طويلة ، فمن المحتمل أنها لن تكون في المستقبل القريب.

كيف يتم تنفيذ اختيار الكتلة على أساس قاعدة LRU عمليًا؟ الحل الواضح هو تسجيل الوقت الحالي في رأسه في كل مرة يتم فيها الوصول إلى المخزن المؤقت ، وعند اختيار الاستباق ، يكون البحث عن السجل الأقدم مرهقًا وبطيئًا للغاية. هناك فرصة أفضل بكثير.

يتم ربط كافة المخازن المؤقتة في قائمة خطية. يخزن رأس كل مخزن مؤقت مرجعًا إلى المخزن المؤقت التالي بترتيب القائمة (في الواقع ، يتم تخزين فهرس هذا المخزن المؤقت في صفيف المخزن المؤقت). في كل مرة يتم فيها الوصول إلى كتلة بيانات للقراءة أو الكتابة ، يتم أيضًا نقل المخزن المؤقت المقابل إلى نهاية القائمة. هذا لا يعني نقل البيانات المخزنة في المخزن المؤقت ، فقط عدد قليل من الروابط في الرؤوس تتغير.

نتيجة لتحريك الكتل المستخدمة باستمرار إلى نهاية قائمة المخزن المؤقت ، يتم فرز هذه القائمة بترتيب تصاعدي لآخر وقت وصول. في بداية القائمة يوجد المخزن المؤقت الذي لم يتم الوصول إلى بياناته لأطول فترة. إنه ما نحتاجه كمرشح للقمع.

في التين. 2-3 يُظهر مجموعة من المخازن المؤقتة مرتبطة بقائمة.

الآن حول المخازن القذرة. في أي الحالات يجب "تنظيفها" ، أي كتابة كتلة من البيانات من المخزن المؤقت إلى القرص؟ هناك ثلاث حالات من هذا القبيل.

· اختيار كتلة للإخلاء من المخبأ.

· إغلاق الملف الذي تنتمي إليه الكتل المتسخة. من المقبول عمومًا أنه عند إغلاق الملف ، يجب حفظه على القرص.

· عملية التطهير القسري لجميع المخازن المؤقتة أو فقط المخازن المؤقتة المتعلقة بملف معين. يمكن إجراء عملية مماثلة لتحسين موثوقية تخزين البيانات ، كتأمين ضد الأعطال المحتملة. في نظام التشغيل UNIX OS ، على سبيل المثال ، يتم إجراء مسح لجميع المخازن المؤقتة بشكل تقليدي كل 30 ثانية.

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

يتمثل عنق الزجاجة في التخزين المؤقت على القرص في العثور على كتلة البيانات المطلوبة في ذاكرة التخزين المؤقت. كما هو موضح أعلاه ، يبحث النظام في رؤوس المخزن المؤقت لهذا الغرض. إذا كانت ذاكرة التخزين المؤقت تتكون من عدة مئات من المخازن المؤقتة ، فسيكون وقت البحث ملحوظًا. تظهر إحدى تقنيات تسريع البحث الممكنة في UNIX في الشكل. 2-4.

في UNIX ، يمكن أن يظهر كل مخزن مؤقت في نفس الوقت في قائمتين خطيتين. واحدة من هذه ، تسمى "القائمة الحرة" ، هي قائمة LRU المألوفة المستخدمة لتحديد الكتلة المراد إزالتها. الحرة لا تعني فارغة ؛ في هذه الحالة ، تعني هذه الكلمة كتلة لا تشغلها حاليًا عملية قراءة / كتابة يتم إجراؤها بواسطة بعض العمليات. هناك قائمة أخرى تسمى "سلسلة التجزئة" وتستخدم لتسريع البحث عن الكتلة المطلوبة.

عند الكتابة إلى بيانات المخزن المؤقت المقابلة لكتلة معينة من القرص ، يتم تحديد رقم سلسلة التجزئة ، التي سيتم وضع هذا المخزن المؤقت فيها ، على أنه باقي قسمة رقم الكتلة على N - عدد سلاسل التجزئة. من أجل الوضوح ، اعتمد الشكل القيمة N = 10. وبالتالي ، فإن الكتل ذات الأرقام 120 ، 40 ، 90 تقع في السلسلة 0 ، الكتل 91 ، 1 ، 71 - في السلسلة 1 ، إلخ. عندما يبحث النظام في ذاكرة التخزين المؤقت عن كتلة بامتداد عدد معين، أولاً وقبل كل شيء ، من خلال رقم الكتلة ، فإنه يحدد أي من سلاسل التجزئة التي يجب أن تكون هذه الكتلة فيها. إذا لم تكن الكتلة في هذه السلسلة ، فهي ليست في ذاكرة التخزين المؤقت على الإطلاق. بهذه الطريقة ، من الممكن تقصير البحث بعامل N في أحسن الأحوال (هذا إذا كانت جميع السلاسل من نفس الطول).

لا يتطلب نقل المخزن المؤقت من سلسلة تجزئة إلى أخرى ، مثل نقله إلى نهاية القائمة المجانية ، إعادة كتابة كتلة البيانات بالكامل في الذاكرة ويتم إجراؤه عن طريق تغيير المراجع في رؤوس المجموعة.

ميزة أخرى للتخزين المؤقت على القرص في UNIX هي أنه عندما يتم العثور على المخازن المؤقتة المتسخة في بداية القائمة المجانية ، يبدأ النظام في مسحها ، لكنه لا ينتظر اكتمال هذه العمليات ، ولكنه يختار أول كتلة نظيفة في القائمة للإخلاء. عند اكتمال التدفق ، يتم إرجاع الكتل إلى أعلى القائمة الحرة ، وتبقى أول المرشحين للعمل الوقائي.