أثناء القراءة من خلال بعض منتديات Apple ، وجدت سؤالًا طرحه الناس كثيرًا. بينما كانت معظم الردود صحيحة بشكل عام ، شعرت أن جميع الإجابات تفتقر إلى بعض التفاصيل المهمة ونتيجة لذلك أربكت الناس أكثر. والغرض من هذه المقالة هو توضيح تلك التفاصيل قدر الإمكان.
أولاً ، دعنا نجيب على السؤال الأول من عنوان المشاركة.
ما هي الذاكرة السلكية؟
الذاكرة السلكية على Mac محجوزة لـ macOS kernel وهياكل البيانات الخاصة به ، ولا يمكن ترحيلها. الحجم الطبيعي للذاكرة السلكية حوالي 2 جيجا بايت. تضيف تطبيقات المستخدم 1 ميغا بايت في المتوسط لكل مثيل ، ويمكن أن يساهم عدد كبير جدًا من البرامج قيد التشغيل في زيادة استخدام الذاكرة السلكية.
الآن ، دعنا نتعمق في المزيد من التفاصيل الفنية.
عندما يصبح جهاز Mac فجأة بطيئًا للغاية ، يبدأ مالكو الكمبيوتر المحمول في تصفح المنتديات وتعلم كيفية التحقق من علامة تبويب الذاكرة في مراقب النشاط.
تشير لقطة الشاشة التي صنعتها أعلاه بعد إعادة تشغيل جهاز Mac إلى أن جهاز Mac الخاص بي به ذاكرة فعلية تبلغ 8 جيجابايت و 2.33 جيجابايت منها في دلو الذاكرة المستخدمة. ثم تتكون الذاكرة المستخدمة من ذاكرة التطبيقات (1.2 جيجابايت) والذاكرة السلكية (1.13 جيجابايت).
لماذا يسأل الناس عن الذاكرة السلكية؟
الذاكرة السلكية هي ذاكرة لا يمكن ضغطها أو ترحيلها إلى محركات أقراص بدء التشغيل ، لذا يجب أن تظل في ذاكرة الوصول العشوائي. علاوة على ذلك ، لا يمكن للعمليات الأخرى استعارته.
العبارة الأساسية هنا هي "لا يمكن ترحيلها."
قبل المضي قدمًا ، اسمحوا لي أن أشرح ما هو الترحيل.
تم تصميم هندسة أجهزة الكمبيوتر الحديثة في القرن العشرين. يتكون أي كمبيوتر من ثلاثة أجزاء رئيسية:المعالج ، وذاكرة الوصول العشوائي (ذاكرة الوصول العشوائي) والتخزين (القرص ، والشريط ، والبطاقات المثقوبة ، وما إلى ذلك).
يعمل المعالج مباشرة مع ذاكرة الوصول العشوائي لأن الأخير أسرع بآلاف المرات من HHD أو SSD. إلى جانب السرعة ، هناك اختلافان آخران بين ذاكرة الوصول العشوائي و HHD:
- تحتاج ذاكرة الوصول العشوائي إلى طاقة ثابتة. عند إيقاف تشغيل الكمبيوتر أو إعادة تشغيله ، يتم مسح البيانات الموجودة في ذاكرة الوصول العشوائي. محركات الأقراص الصلبة تحافظ على البيانات حتى في حالة إيقاف تشغيل الكمبيوتر.
- ذاكرة الوصول العشوائي أغلى ثمناً . على سبيل المثال ، مقابل 200 دولار إضافية ، يمكنك شراء ذاكرة وصول عشوائي (RAM) إضافية بسعة 8 جيجابايت أو محرك أقراص ذي حالة صلبة (SSD) بسعة 128 جيجابايت عند شراء جهاز MacBook Pro جديد.
النقطة الأخيرة مهمة. إذا كانت ذاكرة الوصول العشوائي رخيصة ، فستقوم شركة Apple بتعبئة أجهزة الكمبيوتر المحمولة الخاصة بها بأطنان من الذاكرة ، ولن يهتم أحد بقراءة هذا المقال. ولكن نظرًا لأنه أغلى من تخزين القرص ، اخترع مهندسو الكمبيوتر تبادل الذاكرة أو الترحيل.
اسمحوا لي أن أستخدم تشبيه السبورة.
تخيل أنك تعمل في شركة ناشئة تؤجر مكاتب مشتركة في مساحة عمل مشتركة. تشتمل وسائل الراحة في بيئة العمل المشترك على عدد غير محدود من القهوة والبيرة ، وشبكة Wi-Fi ، وتخزين الدراجات ، ولوحة بيضاء.
عندما يحتاج الفريق "أ" إلى طرح الأفكار حول الشيء الكبير التالي ، يذهبون إلى السبورة البيضاء ويبدأون في تدوين بعض الأفكار. لسوء الحظ ، لا يوجد سوى سبورة بيضاء واحدة على الأرض. يريد الفريق B طرح أفكار TNBT أيضًا ، ويحتاجون أيضًا إلى بعض مساحة السبورة البيضاء.
يوافق الفريق "أ" بلطف على مشاركة بعض مساحات السبورة البيضاء. ثم يأتي فريق آخر وآخر. مع كل فريق ، تتقلص المساحة الخالية.
عندما تصبح المساحة المتاحة ضيقة للغاية ، تقرر الفرق كتابة بعض أفكارهم على الورق ومسح جزء السبورة البيضاء للأفكار الجديدة. عندما يحتاجون إلى الوصول إلى أفكارهم القديمة ، يقومون بالبحث من خلال الأوراق السابقة ونسخها إلى السبورة البيضاء.
تعمل إدارة الذاكرة في أنظمة التشغيل الحديثة بالمثل. في هذه الحالة ، فإن السبورة هي ذاكرة فعلية تشاركها التطبيقات (الفرق). عندما تطلب التطبيقات ذاكرة إضافية ، ولم تعد هناك مساحة خالية ، يتحقق نظام التشغيل من جميع صفحات الذاكرة.
يحاول نظام التشغيل العثور على تلك التي لم يتم استخدامها مؤخرًا ونسخها على القرص. لا تقوم التطبيقات بتدوين الذاكرة غير المستخدمة كما في مثال السبورة البيضاء ، كما يفعل نظام التشغيل. عندما يحتاج التطبيق إلى استعادة تلك البيانات ، يعيد نظام التشغيل قراءتها مرة أخرى إلى ذاكرة الوصول العشوائي من القرص.
من الناحية النظرية ، يمكن توسيع مساحة تخزين القرص التي يحتوي عليها الكمبيوتر ذاكرة وصول عشوائي أكبر عن طريق الترحيل. والعكس صحيح أيضًا ، في حالة ضعف أو عدم تبديل مساحة القرص الحرة يكاد يكون مستحيلًا.
ومع ذلك ، فإن هذه الآلية الرائعة لها تدفق كبير:القرص أبطأ بآلاف المرات من ذاكرة الوصول العشوائي. في حالة عدم وجود ذاكرة كافية ، يواصل النظام ترحيل البيانات وإخراجها باستمرار ، مما يتسبب في حدوث ما يسمى تحطم القرص.
في الحالة الأخيرة ، يستمر الكمبيوتر ، بدلاً من تنفيذ البرامج ، في نقل البيانات مما يجعل حياة مستخدم الكمبيوتر بائسة.
إذًا ما علاقة ذلك بالذاكرة السلكية؟ استمرارًا للتماثل ، قررت إدارة العمل المشترك منع ربع السبورة وكتابة جدول الأحداث عليها. بالإضافة إلى أنهم لم يسمحوا لأي فريق بمسح الجدول الزمني.
مساحة أكبر تحتلها الإدارة أقل يمكن لفرق استخدام السبورة البيضاء استخدامها. المزيد من الذاكرة السلكية التي يستخدمها macOS والتي يمكن أن تشاركها تطبيقات ذاكرة أقل.
بالمناسبة ، إذا كنت تتساءل ما الذي يمثل الملفات المخزنة مؤقتًا في لقطة الشاشة الأولى ، إنها ذاكرة تم استخدامها بواسطة أحد التطبيقات التي تم إنهاؤها مؤخرًا. يبدو الأمر كما لو أن فريق "أ" قرر الذهاب إلى مطعم قريب لتناول بعض الغداء.
إذا كانت أفكارهم لا تزال على السبورة بحلول الوقت الذي عادوا فيه ، فيمكنهم البدء من حيث غادروا. إذا لم يكن الأمر كذلك ، فعليهم نسخ كل شيء من أوراقهم إلى السبورة البيضاء.
الملفات المخزنة مؤقتًا هي آلية يستخدمها macOS لتسريع التطبيقات المغلقة مؤخرًا في حالة رغبة المستخدم في بدء تشغيلها مرة أخرى. إذا احتاج تطبيق آخر في غضون ذلك إلى مزيد من الذاكرة ، فسيقوم نظام التشغيل بالمطالبة به من Cashed Files.
لذا ، إذا رأيت عددًا كبيرًا جدًا من الملفات المخزنة مؤقتًا ، فلا داعي للقلق ، فهي مماثلة للذاكرة الخالية.
إذا كنت بحاجة إلى دليل ، فحاول اتباعه في Terminal:
- في تطبيق Terminal ، اكتب sudo purge واضغط على Enter
- اكتب كلمة مرور المسؤول
عندما قمت بتشغيل هذا الأمر ، الشيء الوحيد الذي تغير في مراقب النشاط هو الملفات المخزنة مؤقتًا:انخفض حجمها من 1.89 جيجابايت إلى 594 ميجا بايت.
هل يجوز استخدام sudo purge؟ لا يوجد أي ضرر لأن كل ما يفعله هو مسح الذاكرة غير المستخدمة. لكنها أيضًا لا تفعل شيئًا ذا قيمة. يمكن لـ macOS إطلاق ذاكرة غير مستخدمة عندما تطلب التطبيقات المزيد.
ما الذي تتضمنه الذاكرة السلكية؟
وفقًا لوثائق Apple ، تعد الذاكرة السلكية جزءًا من الذاكرة المحجوزة لـ OS kernel وهياكل البيانات الخاصة به. تنتمي كائنات kernel التالية إلى الذاكرة السلكية:كائنات الذاكرة الظاهرية والذاكرة الافتراضية وذاكرة التخزين المؤقت للإدخال / الإخراج ، وبرامج تشغيل مختلفة.
لا تعمل تطبيقات المستخدم مباشرة مع الأجهزة ؛ يرسلون الطلبات إلى برامج تشغيل kernel والذين يقومون بدورهم بعمليات الأجهزة. على سبيل المثال ، لا يرسل مستعرض الإنترنت وحدات البكسل إلى شاشة MacBook. بدلاً من ذلك ، يرسل طلبات إلى برنامج تشغيل الفيديو ، والذي يقوم بعد ذلك بتغيير ألوان البكسل على الشاشة.
ومع ذلك ، يمكن أن تؤثر تطبيقات المستخدم أيضًا على مقدار الذاكرة السلكية المستخدمة ، وإن كان ذلك بشكل غير مباشر.
فيما يلي جدول يحتوي على بعض (وليس كل) أنواع الكائنات التي أنشأتها تطبيقات المستخدم بشكل غير مباشر في الذاكرة السلكية. لاحظ أن البيانات الواردة في الجدول قديمة ، ولكنها على الأقل تعطي فكرة عن سبب تغير الذاكرة السلكية في كل مرة نقوم فيها بتحميل أو إلغاء تحميل أحد التطبيقات.
المورد | الذاكرة السلكية المستخدمة |
معالجة | 16 كيلو بايت |
خيط | 21 كيلو بايت |
منفذ Mach | 116 بايت |
رسم الخرائط | 32 بايت |
مكتبة | 2 كيلو بايت بالإضافة إلى 200 بايت لكل مهمة |
منطقة الذاكرة | 160 بايت |
اسمحوا لي أن أشرح بعض العناصر الموجودة في الجدول في مثال متصفح Google Chrome. عندما بدأت تشغيل Chrome لأول مرة ، فقد أنشأ عدة عمليات:Google Chrome و 8 Google Chrome Helpers. قفزت الذاكرة السلكية على الفور إلى 1.35 جيجابايت.
كل سطر في مراقب النشاط عبارة عن عملية:مثيل تطبيق. كل عملية عبارة عن مجموعة من سلاسل الرسائل والخيوط تؤدي العمل الفعلي على الكمبيوتر. إذا كانت البيانات في الجدول 1 حديثة ، فيمكننا حساب أن عملية Google Chrome أضافت 16 كيلو بايت لتخزين بيانات العملية ، بالإضافة إلى 46 * 21 كيلو بايت =966 كيلو بايت للسلاسل.
Chrome هو تطبيق مثير للاهتمام. في كل مرة تفتح فيها علامة تبويب جديدة ، تبدأ في إنشاء مساعدين إضافيين. كل مساعد هو عملية منفصلة ، وكل عملية تولد العديد من سلاسل العمليات.
عندما فتحت علامة تبويب واحدة ، قفز عدد مساعدي Chrome من 8 إلى 16. بعد فتح علامة تبويب ثانية ، زاد عدد المساعدين إلى 24 ، وبعد الثالث إلى 26. بعد فتح ثلاث علامات تبويب ، زاد حجم الذاكرة السلكية إلى 1.61 جيجابايت.
كما ترى ، فإن كل عملية تزيد بشكل غير مباشر من الذاكرة السلكية لأن macOS يجب أن يسجل تلك الخيوط في مكان ما.
وهذا ليس كل شيء. بينما تدعي Apple أن الذاكرة السلكية محجوزة لـ kernel وبعض الكائنات التي تصف عمليات المستخدم ، يمكن لبعض التطبيقات الاستفادة من الذاكرة السلكية مباشرة.
على سبيل المثال ، إذا سبق لك استخدام برنامج ظاهرية مثل Parallels Desktop أو VMWare ، فيجب أن تعلم أنهم يستخدمون الذاكرة السلكية مباشرةً لتحسين الأداء.
إذا كنت تفكر في هذا ، فمن المنطقي تمامًا. تم تصميم الأطر الافتراضية للعمل مثل الأجهزة الحقيقية بحيث يمكن لنظام التشغيل الذي يعمل بالداخل التعامل مع الذاكرة بالطريقة التي تعمل بها دائمًا. على سبيل المثال ، إذا قمت بتشغيل جهاز macOS الظاهري على جهاز Mac ، فسيقوم macOS بإنشاء نسخته من الذاكرة السلكية داخل VM.
بعد البحث قليلاً في دليل برمجة Kernel ، وجدت أن التطبيقات يمكنها تخصيص ذاكرة في النواة عن طريق استدعاء kmem_alloc_wired بدلاً من تخصيص منتظم .
الآن ، ماذا يعني كل هذا عمليًا؟
كيفية تفريغ الذاكرة على نظام التشغيل Mac
هناك سببان رئيسيان لارتفاع استخدام الذاكرة السلكية:
1) تقوم بعض التطبيقات بتعديل النواة واستخدام الذاكرة السلكية بشكل متعمد. ومن الأمثلة على ذلك برامج التشغيل والتطبيقات التي تعمل على مستوى النواة مثل برامج مكافحة الفيروسات أو الأجهزة الظاهرية. على سبيل المثال ، إذا كانت هناك بعض الأدوات في التحكم في المهمة ، فقم بإيقاف تشغيل تلك التي لا تحتاجها.
في حالة الأجهزة الافتراضية ، يكون العلاج هو تقييد تكوين الذاكرة. على سبيل المثال ، إذا تم تكوين Windows VM لاستخدام 8 غيغابايت من ذاكرة الوصول العشوائي ، فخفضه إلى 4 غيغابايت.
2) عندما يكون هناك عدد كبير جدًا من التطبيقات النشطة ، فإنها لا تزال تستخدم ذاكرة الوصول العشوائي. على عكس Windows ، حيث يؤدي النقر فوق زر الإغلاق إلى إلغاء تحميل التطبيق ، في macOS ، يستمر التطبيق في البقاء في الذاكرة. يمكنك إخبارهم بنقطة صغيرة تحت الرمز في Dock.
استخدم الأوامر و Q تركيبة المفاتيح لإنهاء التطبيق تمامًا. في حالة استمرار بقاء بعض التطبيقات في الذاكرة ، يمكن لإعادة تشغيل الكمبيوتر أحيانًا إصلاح المشكلة.
وأخيرًا ، لا يعد الاستخدام العالي للذاكرة السلكية دائمًا علامة على وجود مشكلة. في المثال التالي ، كانت الذاكرة المستخدمة حوالي 31 غيغابايت على جهاز Mac بسعة 32 غيغابايت ، وكانت الذاكرة السلكية تمثل الجزء الأكبر من الاستخدام (26.61 غيغابايت).
ومع ذلك ، انظر إلى الجانب الأيسر من لقطة الشاشة: Memory Pressure. يمكن أن يحتوي قسم ضغط الذاكرة في مراقب النشاط على ثلاثة ألوان مثل إشارة المرور:الأخضر والأصفر والأحمر. إذا كان لون ضغط الذاكرة أحمر ، فستكون هناك حاجة إلى مزيد من ذاكرة الوصول العشوائي. إذا كان لونه أخضر ، فهناك ذاكرة كافية للتحميل الحالي.
لا يتم تحرير الذاكرة السلكية فورًا عند إنهاء أحد التطبيقات. يتم مسحها من خلال عملية جمع البيانات المهملة والتي قد تستغرق بعض الوقت ، وخلال هذا الوقت قد يكون حجم الذاكرة السلكية عالية جدًا.
الموارد:
- دليل برمجة Kernel
- الذاكرة والذاكرة الافتراضية
- كيفية استخدام مراقب النشاط على جهاز Mac الخاص بك
- إرشادات أداء استخدام الذاكرة
رصيد الصورة:Flikr