تخطَّ إلى المحتوى

مدير الذاكرة وذاكرة التخزين المؤقت للنظام في Windows: الترحيل ودمج الصفحات والكتابة المؤجلة

على هذه الصفحة

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

DisablePageCombining يعطّل دمج الصفحات في الخلفية: يتوقف مدير الذاكرة عن أداء هذا العمل، لكن استهلاك RAM قد يزداد. DisablePagingExecutive يُبقي كود برامج التشغيل القابل للترحيل في الذاكرة الفعلية؛ الفائدة عادةً ضئيلة. أما المعاملات المتبقية فتنطبق فقط على مهام محددة للنواة أو وحدات التخزين، أو أنها تمتلك بالفعل قيمًا افتراضية مناسبة في 25H2.

لكل قيمة تم فحص:

  1. المسار الدقيق في Registry والنوع؛
  2. القيمة الافتراضية المحددة بواسطة كود Windows 11 25H2؛
  3. القيم المرتبطة في النظام الفرعي نفسه؛
  4. كود القراءة في النظام ولحظة تنفيذه؛
  5. حدود النطاق، وتحويل القيم، ووحدات القياس؛
  6. التأثير المباشر وحدود قابلية التطبيق.

إلى جانب كود القراءة، فحصنا أين يُطبَّق المعامل، وما العواقب المترتبة على تغييره، وفي أي سيناريوهات قد يكون مفيدًا. مجرد وجود المعامل لا يكفي للتوصية به.

  • Windows 11 25H2 x64، build 26200.9168.
  • تمت مقابلة معاملات النواة مع جدول التكوين الرئيسي ntoskrnl.exe وكود تطبيقها في Memory Manager وCache Manager.
  • تم فحص الوصول أثناء التشغيل عبر تتبع Registry على مستوى النظام. قد تكون القراءات في المرحلة 0 وبداية المرحلة 1 غائبة في تتبع الإقلاع العادي: يبدأ برنامج التتبع الكتابة لاحقًا.
  • بالنسبة لعمليات المستخدم، تم فحص قراءة القيمة بشكل منفصل في ntdll.dll. بالنسبة لـ HeapDeCommitFreeBlockThreshold في 25H2 تم العثور على قراءة في النواة، لكن كومة عمليات المستخدم لا تستخدم هذا المعامل.
  • لا يُغني التحليل الساكن لمكونات النظام عن التكرار على جهاز فعلي، أو build آخر، أو نوع آخر من وحدات التخزين.
Registry path Value Type Default Windows 11 25H2 التطبيق
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management DisablePagingExecutive REG_DWORD 0 ترحيل الكود القابل للترحيل لبرامج تشغيل النظام
المسار نفسه DisablePageCombining REG_DWORD 0 دمج الصفحات الفعلية المتطابقة في الخلفية
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager HeapDeCommitFreeBlockThreshold REG_DWORD 0x1000 (4 KB) لـ kernel heap عتبة decommit للكتل الحرة في kernel-mode heap
المسار نفسه ModifiedWriteMaximum REG_DWORD 1 الوحدة = 1 MB الحد الأعلى لـ modified page writer بعد clamp
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management EnableAsyncLazywrite REG_DWORD 2 الوضع غير المتزامن لـ Cache Manager
المسار نفسه CacheUnmapBehindLengthInMB REG_DWORD 8 MB نافذة unmap خلف القراءة التسلسلية
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel SplitLargeCaches REG_DWORD 0 تمثيل cache topology بين processor groups

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

تم العثور على كود القراءة في ntoskrnl.exe في مرحلة مبكرة من تهيئة النواة. تُستخدم القيمة في MmResetDriverPaging، وMmPageEntireDriver، وعند تحميل صور النظام. وهي تُطبَّق قبل أن يبدأ تتبع Registry العادي للمستخدم. لتطبيق الحالة الجديدة يلزم إعادة التشغيل.

  • 0: الحالة القياسية لـ Windows، الترحيل مسموح.
  • 1: تُحتفظ الأقسام القابلة للترحيل لبرامج تشغيل النظام في RAM.
  • يستهلك الإعداد RAM لتقليل عمليات التحميل اللاحقة لكود النظام مرة أخرى إلى الذاكرة؛ القرص نفسه لا يصبح أسرع.

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

تم تأكيد قراءة المعامل واتجاه التأثير النظامي بواسطة كود ntoskrnl.exe.

عند 0 يبدأ مدير الذاكرة مهمة في الخلفية تبحث عن الصفحات الفعلية المتطابقة وتدمجها. عند 1 لا تنفذ هذه المهمة الدمج.

في ntoskrnl.exe تم العثور على كود دمج الصفحات في الخلفية بوسم pool MmCb، ما يؤكد وجود الآلية.

  • 0: دمج الصفحات مسموح، الحالة القياسية لـ Windows.
  • 1: الدمج معطّل.
  • تقليل الدمج يقلل العمل في الخلفية لمدير الذاكرة، لكنه قد يزيد استهلاك RAM.

يكون التعطيل مفيدًا إذا كان دمج الصفحات يخلق حملًا ملحوظًا في الخلفية ولدى النظام RAM حرة. عادةً تكون هذه المهمة قليلة النشاط، لذا فالتأثير ضئيل جدًا. وعند حجم ذاكرة محدود، يكون توفير RAM من الدمج أكثر فائدة من وقت المعالج الموفَّر.

تم تأكيد كود القراءة والمهمة في الخلفية في ntoskrnl.exe. وتصف Microsoft دمج الصفحات والمقايضة بين عمل المعالج وتوفير RAM.

تحدد القيمة عتبة تحرير الذاكرة المخصصة (decommit) للكتلة الحرة في كومة النواة. عند عتبة أكبر، تحدث هذه العمليات للكتل الحرة الكبيرة بشكل أقل تكرارًا.

في Windows 11 25H2 يوجد كود القراءة في ntoskrnl.exe، ويرتبط تطبيق المعامل بدالة النواة RtlCreateHeap. وفي ntdll.dll لم يتم العثور على كود قراءة مقابل لكومات العمليات العادية.

  • القيمة الافتراضية في الكود لكومة النواة: 0x1000 (4 KB).
  • 0x40000 (256 KB) هي عتبة صالحة لكومة النواة.
  • وصفت وثائق Microsoft التاريخية سيناريو user-mode بالاسم نفسه لإصدارات Windows القديمة، لذا لا يمكن نقله تلقائيًا إلى Windows 11 25H2.

بالنسبة للتطبيقات العادية لا توجد فائدة عمليًا: فكوماتها لا تستخدم هذه القيمة. قد يغيّر المعامل تكرار تحرير الذاكرة فقط في كومة النواة. وبدون مشكلة مقيسة تحديدًا معها، يكون التأثير المتوقع ضئيلًا جدًا.

تم تأكيد القراءة في وضع النواة في ntoskrnl.exe. ولم يتم تأكيد التأثير على عمليات المستخدم في 25H2.

يحدد المعامل الحد الأعلى لآلية كتابة الصفحات المعدّلة (modified page writer). يُستخدم في الكود وحدات من 256 صفحة، أي أن الوحدة الواحدة تساوي 1 MB.

التطبيع في Windows 11 25H2:

  • 0 يُحوَّل إلى 1 وحدة، أي 1 MB؛
  • القيم الأكبر من 0x40 تُقيَّد بـ 0x40؛
  • الحد الفعلي الأقصى يساوي 64 MB، أو 16 384 صفحة.

تبدأ الآلية الكتابة النشطة عند بلوغ نحو ربع الحد المحدد. يغيّر زيادة الحد لحظة بدء الكتابة وحجم الصفحات المعدّلة المتراكمة. ولا تزداد سرعة القرص نفسه من ذلك.

عند حد أكبر تتراكم صفحات معدّلة أكثر قبل بدء الكتابة النشطة. قد تبدأ الكتابة بشكل أقل تكرارًا، لكن حجم البيانات غير المحفوظة بعد وحجم الدفعة التالية من الكتابة يزدادان. إذا لم تكن هناك مشكلة محددة مع الكتابة، فاترك القيمة الافتراضية. الحد الفعلي مقيّد بـ 64 MB.

تم تأكيد كود القراءة ووحدات القياس وتقييد النطاق في ntoskrnl.exe. المعامل الذي يحمل الاسم نفسه من وثائق Microsoft القديمة حول BitLocker يخص نظامًا فرعيًا آخر؛ ولا تُستخدم هذه الوثائق هنا كمصدر.

EnableAsyncLazywrite والقيم المرتبطة

Section titled “EnableAsyncLazywrite والقيم المرتبطة”

EnableAsyncLazywrite يتحكم في الكتابة المؤجلة غير المتزامنة لـ Cache Manager. في كود 25H2 تم تعيين القيمة الافتراضية 2: هذا الوضع مُفعَّل بالفعل.

القيم المرتبطة في النظام الفرعي نفسه:

Value Default 25H2 الدور
EnableAsyncLazywrite 2 وضع async lazy-write العام
EnableAsyncLazywriteMulti 2 وضع multi-volume المجاور
EnablePerVolumeLazyWriter 2 Per-volume lazy writer

0 يعطّل الكتابة المؤجلة غير المتزامنة. بالنسبة لـ 1 يلزم وضع معالج كتابة مؤجلة منفصل على كل وحدة تخزين. 2 يفعّل الوضع غير المتزامن دون هذا الشرط. يعيد Cache Manager قراءة القيم عند التعامل مع تكوين وحدات التخزين.

الكتابة الصريحة لـ 2 تكرر التكوين القياسي لـ Windows 11 25H2 ولا تحسّن أي شيء إضافي. الإعداد مناسب прежде всего للتشخيص: القيمة 0 تتيح تعطيل الآلية العاملة افتراضيًا.

لوحظت القراءة في تتبع النظام وتم تأكيدها في ntoskrnl.exe. القيمة الافتراضية 2 مؤكدة بالكود وبوصف مستقل لمعاملات Registry أُعدّ بناءً على نتائج الهندسة العكسية.

يحدد المعامل المسافة بالميغابايت، التي بعدها يحرر Cache Manager العروض المخزنة مؤقتًا التي بقيت خلف الموضع الحالي للقراءة التسلسلية.

يوجد كود قراءة المعامل وتطبيقه في ntoskrnl.exe ويُستدعى عند عرض وقراءة ذاكرة التخزين المؤقت. يخص المعامل القراءة التسلسلية للملفات الكبيرة؛ وهو لا يعطّل ذاكرة التخزين المؤقت للملفات بالكامل.

  • 0 أو قيمة أكبر من 128 يستبدلها الكود بـ 8.
  • النطاق العامل: 1..128 MB.
  • القيمة الافتراضية في الكود: 8 MB.
  • وحدات Registry value هي MB بالتحديد، وليست بايتات.

يكون للمعامل معنى فقط للمهام المتخصصة للقراءة التسلسلية للملفات الكبيرة. عند نافذة أكبر يبقى عرض ذاكرة التخزين المؤقت خلف الموضع الحالي مدة أطول، وعند نافذة أصغر يُحرَّر أبكر. للعمل العادي تناسب القيمة القياسية 8 MB؛ والفائدة من الضبط اليدوي عادةً ضئيلة.

تم تأكيد كود القراءة والتطبيق وتقييد النطاق في ntoskrnl.exe. ولم يتم العثور على وثائق Microsoft عامة حديثة لهذا المعامل الداخلي.

عند 0 يعيد API وصف cache topology سجلًا موحدًا للبنية المقابلة التي تشمل عدة processor groups. عند 1 تُفصل السجلات حسب processor groups.

يوجد كود القراءة في ntoskrnl.exe. يُستخدم المعامل عند معالجة العلاقة RelationCache في KeQueryLogicalProcessorRelationship.

لا يتغير سوى وصف topology الذي يعيده API النظام. ولا تُفصل كتل الذاكرة الفعلية المخصصة، ولا تنخفض بحد ذاتها احتمالية نقص كتلة متصلة.

  • 0: القيمة الافتراضية.
  • 1: فصل سجلات topology حسب processor groups.
  • التأثير العملي ممكن прежде всего على الأنظمة ذات عدة processor groups، عادةً عند أكثر من 64 معالجًا منطقيًا.
  • على نظام عادي بمجموعة واحدة لا يوجد تأثير.

يحتاج المعامل فقط البرامج التي تطلب cache topology على جهاز بعدة processor groups. وهو لا يغيّر عمل ذاكرة التخزين المؤقت ولا تخصيص الذاكرة. لجهاز مكتبي عادي لا توجد فائدة.

تم تأكيد كود القراءة والتطبيق في ntoskrnl.exe. وتمت مقابلة القيمة والغرض مع الوصف العام للهندسة العكسية KiSplitLargeCaches.

المعامل التقييم العملي
DisablePagingExecutive عادةً يعطي فائدة ضئيلة جدًا، بإبقاء مزيد من الكود في RAM
DisablePageCombining مفيد عند حمل مؤكد لدمج الصفحات في الخلفية واحتياطي كبير من RAM
HeapDeCommitFreeBlockThreshold يعمل في النواة فقط؛ للتطبيقات العادية لا توجد فائدة عملية
ModifiedWriteMaximum يغيّر شروط كتابة الصفحات المعدّلة؛ بدون مشكلة مكتشفة اترك القيمة القياسية
EnableAsyncLazywrite القيمة القياسية 2 تفعّل الآلية بالفعل؛ وإعادة الكتابة لا تحسّن شيئًا
CacheUnmapBehindLengthInMB إعداد للقراءة التسلسلية؛ القيم القياسية 8 MB مناسبة للعمل العادي
SplitLargeCaches يغيّر وصف topology لعدة processor groups؛ على نظام عادي لا يوجد تأثير

ما الذي تم تأكيده وما لم يُقس

Section titled “ما الذي تم تأكيده وما لم يُقس”

تم تأكيد المسارات والأنواع والقيم الافتراضية وكود القراءة ولحظة قراءة المعاملات المذكورة أعلاه، وكذلك قيود النطاقات. تتعلق النتائج بـ Windows 11 25H2 build 26200.9168. قد يختلف السلوك عند تحديث آخر لـ Windows، أو حجم RAM، أو نوع وحدة التخزين، أو topology CPU.

أما كيفية تكرار الجزء الديناميكي من الملاحظات — انظر كيف تتحقق بنفسك.

لإرجاع الأمور، أعد القيم القياسية للمعاملات أو احذف السجلات الاختيارية. تُطبَّق بعض القيم عند الإقلاع التالي لـ Windows.

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

تم التحقق من الادعاءات حول الكود عبر التحليل الساكن لمكونات نظام Windows 11 25H2. ولا يُنشر الكود المفكوك، ولا الإزاحات، ولا التتبعات الأصلية، ولا المواد الداخلية.

تم التحقق من المصادر العامة: 2026-09-02.

  • 2026-09-20: أُضيف إخلاء المسؤولية حول تضارب المصالح ورابط للتحقق الذاتي من الملاحظات الديناميكية في المنهجية.
  • 2026-09-02: النشر الأول؛ تم تأكيد المسارات، وdefaults، وclamps، وكود قراءة المعاملات، وأُضيفت حدود الفائدة العملية.