قبل أسبوعين ، نشرت مراجعة Pinebook Pro . نظرًا لأن Raspberry Pi 4 يعتمد أيضًا على ARM ، فإن بعض التحسينات المذكورة في المقالة السابقة مناسبة تمامًا له. أود مشاركة هذه الحيل ومعرفة ما إذا كان لديك نفس التحسينات في الأداء.بعد تثبيت Raspberry Pi في غرفة الخادم الرئيسية ، لاحظت أنه في أوقات النقص في ذاكرة الوصول العشوائي ، أصبحت غير مستجيبة للغاية وحتى معلقة. لحل هذه المشكلة ، أضفت ZRAM وأدخلت عدة تغييرات على معلمات kernel.تفعيل ZRAM على Raspberry Pi
تقوم ZRAM بإنشاء تخزين كتلة في ذاكرة الوصول العشوائي (RAM) بالاسم / dev / zram0 (أو 1 ، 2 ، 3 ، إلخ.). الصفحات المسجلة هناك مضغوطة ومخزنة في الذاكرة. يسمح هذا بإدخال / إخراج سريع للغاية ، كما أنه يحرر الذاكرة بسبب الضغط.يأتي Raspberry Pi 4 مع 1 أو 2 أو 4 أو 8 غيغابايت من ذاكرة الوصول العشوائي. سأستخدم طراز 1 جيجا بايت ، لذا اضبط التعليمات حسب طرازك. مع 1 جيجا بايت من ZRAM ، سيتم استخدام ملف المبادلة الافتراضي (البطيء!) بشكل أقل. لقد استخدمت مثل هذا البرنامج النصي للتثبيت 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) تؤخر استنفاد الذاكرة الذي لا مفر منه ، وتزيد من الضغط على ذاكرة التخزين المؤقت للنواة ، و 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٪ ، لكن النظام لن يفرض إدخال / إخراج متزامن حتى يصل إلى dirty_ratio بنسبة 50٪.ستساعد هذه الخطوط الأربعة (عند استخدامها مع ZRAM) على تحسين الأداء إذا نفدت ذاكرة الوصول العشوائي حتمًا وبدأت في التبديل إلى التبديل ، مثل الخط الخاص بي. بمعرفة هذه الحقيقة ، بالإضافة إلى مراعاة ضغط الذاكرة في ZRAM ، من الأفضل ثلاث مرات بدء هذا التبادل مقدمًا.يساعد الضغط على ذاكرة التخزين المؤقت لأننا في الواقع نقول للنواة: "مهلاً ، اسمع ، ليس لدي ذاكرة إضافية لاستخدامها في ذاكرة التخزين المؤقت ، لذا يرجى التخلص منها في أقرب وقت ممكن والاحتفاظ فقط بالبيانات الأكثر استخدامًا / المهمة".حتى مع انخفاض التخزين المؤقت ، إذا كانت معظم الذاكرة المثبتة مشغولة بمرور الوقت ، ستبدأ النواة مبادلة انتهازية في وقت أبكر بكثير ، بحيث لا يسحب المعالج (الضغط) والتبديل I / O إلى الأخير ويستخدم كل الموارد في وقت واحد ، عندما يكون الوقت متأخرًا جدًا. تستخدم 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 هو تقريبًا واحد غيغابايت من البيانات غير المضغوطة. ذهب كل شيء إلى ZRAM ولم يصل أي شيء إلى ملف المبادلة أبطأ بكثير. جرب هذه الإعدادات بنفسك ، فهي تعمل على جميع طرازات Raspberry Pi. لقد تحول نظام التجميد غير المناسب لي إلى نظام عملي ومستقر.في المستقبل القريب ، آمل في متابعة هذه المقالة وتحديثها ببعض نتائج اختبار النظام قبل تثبيت ZRAM وبعده. الآن ليس لدي الوقت لذلك. في هذه الأثناء ، لا تتردد في تشغيل اختباراتك الخاصة وإخبارنا بذلك في التعليقات. إن Raspberry Pi 4 هو مجرد وحش بمثل هذه الإعدادات. استمتع بها!حول هذا الموضوع: