ما هي الشروط الدقيقة تستند إلى ذاكرة Microsoft Linux Pristay (S) من RAM إلى ملف مبادلة؟

StackOverflow https://stackoverflow.com/questions/2029015

سؤال

يحتوي الخادم الخاص بي على 8GIGs من ذاكرة الوصول العشوائي و 8 جنيه تم تكوينه لملف المبادلة. لدي تطبيقات مكثفة للذاكرة تعمل. تحتوي هذه التطبيقات على أحمال ذروة نظرا لزيادة استخدام المبادلة. يتم استخدام حوالي 1 أزعج من المبادلة.

لدي خادم آخر مع 4Gigs من ذاكرة الوصول العشوائي و 8 العربات من المبادلة وتطبيقات مكثفة في الذاكرة التي تعمل على ذلك. ولكن هنا استخدام المبادلة مهم للغاية. حوالي 100 ميغابايت.

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

هل كانت مفيدة؟

المحلول

لقد رأيت الكثير من الناس نشر تفسيرات ذاتية لما يفعله هذا. هنا نأمل إجابة أكثر اكتمالا.

في LRU SPLIT LRU على ما بعد 2.6.28 Linux Swappiness هو مضاعف يستخدم لتعديل الكسر بشكل تعسفي يتم احتسابه تحديد الضغط المتراكم في كلا LRUS.

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

LRU مع العديد من العروض الترويجية / الشياطينات من الصفحات بين نشط وغير نشط في الكثير من الاستخدام.

عادة ما يكون التخزين المدعوم من الملف أرخص وأكثر أمانا لإدخاله عند نفاد الذاكرة ويتم إعطاؤه تلقائيا بمعدل 200 (هذا يجعل الذاكرة المدعومة بالملف 200 مرة أكثر قيمة من ذاكرة المبادلة المدعومة (والتي لها قيمة 0) عندما تضاعف هذا جزء.

ما هو Swappiness يقوم بتعديل هذه القيمة من خلال خصم رقم Swappiness الذي قدمته (افتراضي 60) إلى ملف الذاكرة وإضافة قيمة التضخم التي قدمتها كمضاعف لذاكرة Anon. وبالتالي فإن القفز الافتراضي يتركك بذاكرة مجهولة أن تكون أكثر قيمة من ذاكرة الملفات (200-60 للملف، 0 + 60 لانون). وبالتالي، في نظام Linux النموذجي الذي استخدم كل ذاكرةه، يجب أن يكون ذاكرة التخزين المؤقت للصفحة 80 مرة أكثر نشاطا من الذاكرة المجهولة لذاكرة الذاكرة المجهولة التي سيتم تبديلها لصالح ذاكرة التخزين المؤقت للصفحة.

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

نصائح أخرى

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

عندما يعمل النظام على الذاكرة منخفضة، تبدأ Kernel في تبديل الصفحات بناء على استخدامها. استخدام قائمة الصفحات التي تم فرزها WRT Access of Access شائعة لتحديد الصفحات التي يمكن تبديلها (Linux Kernel يحتوي على مثل هذه القائمة أيضا).

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

عن طريق ضبط Swappiness = 0، فأنت تخبر Kernel Linux بعدم تبديل الصفحات التي تنتمي إلى عمليات. عند ضبط Swappiness = 100 بدلا من ذلك، تخبر Kernel بتبديل الصفحات التي تنتمي إلى عمليات تعالج بشكل أكبر. لحن نظامك، حاول تغيير تغيير المعلمة Swappiness في خطوات 10، ومراقبة الأداء والصفحات التي يتم تبديلها في / خارج في كل إعداد باستخدام الأمر "VMstat". الحفاظ على الإعداد الذي يمنحك أفضل النتائج. تذكر أن تفعل هذا الاختبار خلال ساعات استخدام الذروة. :)

لتطبيقات قاعدة البيانات، ينصح بشكل عام Swappiness = 0. (حتى ذلك الحين، اختبار إعدادات مختلفة على أنظمتك للوصول إلى قيمة جيدة).

مراجع:
http://www.linuxvox.com/2009/10/What-S-S-The-Linux-kernel-parameter-vm-swappiness/
http://www.pythian.com/news/1913/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top