سؤال كيف يمكنني تكوين swappiness؟


أنا بحاجة إلى طريقة خطوة بخطوة وبسيطة وسهلة لتكوين swappiness.


298
2018-02-13 18:31


الأصل


بطانة واحدة sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf" - redanimalwar
redanimalwar كنت بحاجة أيضا لتشغيل sudo sysctl -p لتحميل قيمة swappiness الجديدة من ملف sysctl.conf ، وإلا يتم تطبيق التغيير على إعادة التمهيد التالية. - waldyrious


الأجوبة:


يوفر Linux kernel إعدادًا قابلاً للتحكم في التحكّم في عدد مرات استخدام ملف المبادلة ، ويُطلق عليه swappiness.

إعداد swappiness صفر يعني أنه سيتم تجنب القرص إلا عند الضرورة القصوى (نفدت الذاكرة) ، في حين أن إعداد swappiness من 100 يعني أنه سيتم تبديل البرامج إلى القرص على الفور تقريبا.

يأتي نظام Ubuntu مع إعداد افتراضي يبلغ 60 ، مما يعني أنه سيتم استخدام ملف المبادلة بشكل معتدل إذا كان استخدام الذاكرة يبلغ نصف ذاكرة الوصول العشوائي الخاصة بي. يمكنك التحقق من قيمة swappiness للنظام الخاص بك عن طريق تشغيل:

one@onezero:~$ cat /proc/sys/vm/swappiness
60

لأنني أمتلك 4 غيغابايت من ذاكرة الوصول العشوائي ، أود تحويل هذا إلى 10 أو 15. سيتم استخدام ملف المبادلة عند استخدام ذاكرة الوصول العشوائي فقط 80 أو 90 نسبه مئويه. لتغيير قيمة swappiness النظام ، افتح /etc/sysctl.conf مثل جذر. ثم ، قم بتغيير أو إضافة هذا السطر إلى الملف:

vm.swappiness = 10

إعادة تمهيد التغيير لتصبح نافذة المفعول.

يمكنك أيضًا تغيير القيمة بينما لا يزال نظامك يعمل مع:

sysctl vm.swappiness=10

يمكنك أيضًا مسح التبادل عن طريق التشغيل swapoff -a وثم swapon -a كجذر بدلاً من إعادة التشغيل لتحقيق نفس التأثير.

لحساب مبادلة الفورمولا:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

المجموع الكلي هو 3950/100 = 39.5 * 10 = 395

ماذا يعني ذلك عندما 10٪ (395 ميغابايت) من ذاكرة الوصول العشوائي ثم سيبدأ في استخدام المبادلة.


مساعدة . أوبونتو. مبادلة

ما هو السذاجة

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

  • swappiness يمكن أن يكون لها قيمة بين 0 و 100.
  • swappiness=0:
    • نواة الإصدار 3.5 وأحدث: تعطيل التمويه.
    • إصدار Kernel الأقدم من 3.5: تجنب عمليات التبادل من الذاكرة الفعلية لأطول فترة ممكنة.
  • swappiness=1:
    • نواة الإصدار 3.5 وما بعدها: الحد الأدنى من السقوط دون تعطيله تمامًا.
  • swappiness=100:
    • يخبر النواة بتبادل العمليات بفاعلية من الذاكرة الفعلية ونقلها إلى ذاكرة التخزين المؤقت.

نرى http://en.wikipedia.org/wiki/Swappiness.

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


مثال

بدأت باستخدام المبادلة في 91٪:

enter image description here كما قمت بتكوين نظامي و vm للاستفادة من ذاكرة الوصول العشوائي في 90٪، في 90٪ لم يكن هناك مبادلة.

بعد ذلك فتحت بعض التطبيقات مثل Firefox & Shutter ، وبدأت مبادلة بسبب استخدام RAM أعلاه 90٪.


453
2018-02-13 18:33



لا تجعل ميزة Swappiness of 100 عملية استبدال البرامج على الفور ، ولا يتم استخدام قيمة 60 أو 90 نقطة للتبادل عندما يكون 60 أو 90٪ ممتلئًا. إنها نسبة التفضيل لسرقة الصفحات من ذاكرة التخزين المؤقت مقابل تبادل الأشياء لتحرير بعض الذاكرة عندما لا يكون هناك ما يكفي. ستفضل القيمة المنخفضة بشدة سرقة الصفحات من ذاكرة التخزين المؤقت ، وتفضل القيمة العالية بشدة محاولة تبديل الصفحات. يكون للإعداد أي تأثير فقط بمجرد استخدام الذاكرة (تقريبًا) ، ويجب على النواة اختيار كيفية تحرير بعض منها. - psusi
أنت بحاجة إلى الإشارة إلى أن ذاكرة الوصول العشوائي (RAM) التي لا تشغلها البرامج قيد التشغيل تُستخدم كذاكرة تخزين مؤقت للقرص ... لذا ، من خلال تقليل swappiness ، تزيد من فرصة برنامج لا يتم تبديله ، ولكن في نفس الوقت تقليل الحجم ذاكرة التخزين المؤقت على القرص ، والتي يمكن أن تجعل الوصول إلى القرص أبطأ. وبالتالي فإن تأثيرات هذا الإعداد على الأداء الفعلي ليست بهذه السهولة ... فأنت مرحب بك لتجربة الدورة التدريبية ولكن أظن أن الإعدادات الافتراضية يتم تعيينها من قبل أشخاص يفهمون ما يكفي في الموضوع :) - Sergey
Sergey والسخرية من ذلك هو أن أولئك الذين لديهم ذاكرة وصول عشوائي صغيرة هم على الأرجح يحاولون كل خدعة يمكنهم مواجهتها لتعزيز الأداء ، ومن المرجح أن يكونوا هم الأشخاص الذين يكون الرقم 60 أو أعلىهم أفضل. هؤلاء منا وضعه إلى 10 لأننا لدينا أطنان من ذاكرة الوصول العشوائي لا تكسب بقدر ما سوف تفقد إذا فعلوا ذلك. - Jon Hanna
Freedom_Ben: انظر linuxatemyram.com :) - Sergey
مجرد ترك مناقشة مماثلة هنا - unix.stackexchange.com/questions/88693/... - Elijah Lynn