قبل أسبوعين نشرت
بعد تثبيت Raspberry Pi في ملف
تفعيل ZRAM على Raspberry Pi
يأتي Raspberry Pi 4 مع 1 أو 2 أو 4 أو 8 جيجابايت من ذاكرة الوصول العشوائي. سأستخدم نموذج 1 غيغابايت ، لذا اضبط التعليمات وفقًا للطراز الخاص بك. مع 1 جيجا بايت من ZRAM ، سيتم استخدام ملف المبادلة الافتراضي (بطيء!) في كثير من الأحيان. لقد استخدمت مثل هذا السيناريو
يتم توفير التعليمات في المستودع المرتبط أعلاه. تثبيت:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh
إذا كنت تريد تحرير التكوين:
vi /etc/default/zram-swap
بالإضافة إلى ذلك ، يمكنك تنشيط ZRAM عن طريق الضبط zram-tools
. إذا كنت تستخدم هذه الطريقة ، فتأكد من تحرير ملف التكوين في ملف /etc/default/zramswap
، وقم بتثبيت حوالي 1 جيجابايت ZRAM:
sudo apt install zram-tools
بعد التثبيت ، يمكنك عرض إحصائيات تخزين ZRAM باستخدام الأمر التالي:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $
إضافة خيارات Kernel لاستخدام ZRAM أفضل
الآن دعنا نصلح سلوك النظام عندما يتحول Raspberry Pi إلى التبديل في اللحظة الأخيرة ، مما يؤدي غالبًا إلى التجمد. دعنا نضيف بعض الأسطر إلى الملف /etc/sysctl.conf وإعادة التشغيل.
هذه الخطوط 1) يؤخر استنفاد الذاكرة الذي لا مفر منه، عن طريق زيادة الضغط على kernel cache و 2) ابدأ في الاستعداد لإرهاق الذاكرة في وقت مبكر، وبدء الترحيل مقدمًا. لكنها ستكون أكثر كفاءة من حيث الترحيل للذاكرة المضغوطة عبر ZRAM!
فيما يلي الأسطر التي سيتم إضافتها في نهاية الملف /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50
ثم أعد تشغيل النظام أو قم بتنشيط التعديلات باستخدام الأمر التالي:
sudo sysctl --system
vm.vfs_cache_pressure = 500 يزيد الضغط على ذاكرة التخزين المؤقت ، مما يزيد من ميل النواة لاستعادة الذاكرة المستخدمة للتخزين المؤقت للدليل وكائنات الفهرس. سوف تستخدم ذاكرة أقل على مدى فترة زمنية أطول. يتم إبطال الانخفاض الحاد في الأداء من خلال المبادلة السابقة.
vm.swappiness = 100 يزيد المعلمة الخاصة بمدى قوة تبادل النواة لصفحات الذاكرة ، نظرًا لأننا نستخدم ZRAM أولاً.
vm.dirty_background_ratio = 1 & vm.dirty_ratio = 50 - ستبدأ عمليات الخلفية في التسجيل بمجرد الوصول إلى حد 1٪ ، لكن النظام لن يفرض إدخال / إخراج متزامن حتى يصل إلى 50٪ dirty_ratio.
ستساعد هذه الأسطر الأربعة (عند استخدامها مع ZRAM) في تحسين الأداء إذا كان لديك لا محالة تنفد ذاكرة الوصول العشوائي ويبدأ الانتقال إلى المبادلة ، مثل بلدي. معرفة هذه الحقيقة ، ومراعاة ضغط الذاكرة في ZRAM بمعامل ثلاثة ، فمن الأفضل أن تبدأ هذه المبادلة مبكرًا.
يساعد ضغط ذاكرة التخزين المؤقت لأننا نقول للنواة بشكل أساسي ، "مرحبًا ، انظر ، ليس لدي ذاكرة إضافية لاستخدامها في ذاكرة التخزين المؤقت ، لذا يرجى التخلص منها في أسرع وقت ممكن والاحتفاظ فقط بالبيانات الأكثر استخدامًا / أهمية. "
حتى مع تقليل التخزين المؤقت ، إذا تم شغل معظم الذاكرة المثبتة بمرور الوقت ، فستبدأ النواة عملية التبديل في وقت أقرب بكثير ، لذلك لن يتم سحب وحدة المعالجة المركزية (الضغط) ومبادلة الإدخال / الإخراج إلى الأخير واستخدام جميع الموارد في الحال عندما يكون الوقت قد فات. يستخدم ZRAM القليل من وحدة المعالجة المركزية للضغط ، ولكن في معظم أنظمة الذاكرة المنخفضة ، يكون لهذا تأثير أداء أقل بكثير من المبادلة بدون ZRAM.
في الختام
لنلقِ نظرة على النتيجة مرة أخرى:
pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi
pi@raspberrypi:~ $ sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5
264448 في ZRAM ما يقرب من XNUMX جيجا بايت من البيانات غير المضغوطة. ذهب كل شيء إلى ZRAM ولم يتم إدخال أي شيء في ملف المبادلة الأبطأ بكثير. جرب هذه الإعدادات بنفسك ، فهي تعمل على جميع طرز Raspberry Pi. لقد تحول نظام التعليق غير القابل للاستخدام إلى نظام عملي ومستقر.
آمل أن أكمل في المستقبل القريب وأحدث هذه المقالة ببعض نتائج اختبار النظام قبل وبعد تثبيت ZRAM. الآن ليس لدي وقت لذلك. في غضون ذلك ، لا تتردد في إجراء الاختبارات الخاصة بك واسمحوا لي أن أعرف في التعليقات. يعد Raspberry Pi 4 وحشًا بهذه الإعدادات. يتمتع!
حول هذا الموضوع:
المصدر: www.habr.com