لماذا يستحق وضع نظام تشغيل 64 بت على Raspberry Pi4

صورة

تتمثل إحدى مزايا العمل في شركة برمجيات في أنه غالبًا ما تتاح لك فرصة اختبار النماذج الأولية الجديدة للأجهزة. ومع ذلك ، ليس في هذه الحالة - اشتريت Raspberry Pi4 لأنه رخيص جدًا!

يحتوي جهاز Raspberry Pi4 على معالج ARM Cortex A72 رباعي النواة ، وما يصل إلى 4 جيجا بايت من الذاكرة ومنفذ جيجابت إيثرنت - كل ذلك مقابل 35 دولارًا فقط.

على Raspberry Pi4 لديك OS Raspbian (على أساس دبيان) ، ومكتبة المنتجات النهائية ، لذلك أضعه في بطاقة SD للتمهيد بشكل أسرع. لقد بحثت في syslog ولاحظت أنه تم تجميع كل من برامج kernel وجميع برامج المستخدم على أنها armv7 - أي للذاكرة 32 بت.

أعلم أن Raspberry Pi4 يدعم 64 بت ، لذلك لم أكن أرغب في تشغيل نظام تشغيل 32 بت عليه. أخذت بطاقة ذاكرة أخرى ووضعت عليها دبيان. ديبيان ، الذي لا يحتوي على أي شيء غير ضروري ، تم تجميعه كـ aarch64 - مما يعني ذاكرة 64 بت.

بعد تنزيل نظام التشغيل 64 بت ، أصبحت مهتمًا بمدى أنه يعمل بشكل أفضل في 32 بت ، لذلك أجريت عدة اختبارات.

اختبارات السرعة الاصطناعية


أول شيء حدث لي كان اختبار ال dhrystone القديم ، الذي كان موجودًا منذ بداية الوقت. تمت كتابة هذا البرنامج عام 1988 ، ويتناول الحسابات الرياضية. من غير المحتمل أن تكون قادرة على محاكاة الحمل الحالي ، ويمكننا استخدامه فقط من أجل الحفاظ على نوع من الاتصال بالأجهزة والبرامج القديمة.



يتم محاكاة تطبيق الملخص الحديث بشكل أفضل عن طريق تجزئة الحوسبة ، لذلك أردت تشغيل اختبار مع SHA1. لسوء الحظ ، تم تجميع أداة sha1sum دون دعم وظائف libssl أو وظائف نواة التشفير ، لذلك كان عليّ تجميعها من المصدر.

لتجنب الاختناقات في I / O ، أحسب تجزئة ملف 2 غيغابايت مع خيار truncate -s 2GB ، لذلك لم يكن هناك إدخال أو إخراج من البطاقة:



SHA1 هو اختبار أكثر واقعية من dhrystone ، لأن هذه الخوارزمية تستخدم في عدد كبير من التطبيقات - السيول ، git ، إلخ.

الرامات "الذاكرة العشوائية في الهواتف والحواسيب


يوفر نظام 64 بت الوصول إلى ذاكرة 8 بايت لكل قراءة / كتابة. لقد كتبت برنامجًا بسيطًا يضع حاجزًا كبيرًا - تكتبه ، ثم تقرأه. لضمان تخصيص حقيقي للذاكرة ، استخدمت mlock (). في هذا الاختبار ، يبلغ حجم المخزن المؤقت 2 غيغابايت: يعمل المخزن المؤقت 3 غيغابايت في وضع 64 بت ، وفي وضع 32 بت ، حدث خطأ "نفاد الذاكرة".



ترميز الصوت


لقد لاحظت أن العديد من مستخدمي Raspberry Pi4 يستخدمون الكمبيوتر كمركز وسائط ، لذلك بدأت مهمة ترميز الصوت مع أكثر برامج الترميز شيوعًا.

لقد قمت بتشفير تكوين "أصداء" بينك فلويد لأنه مسار طويل إلى حد ما ويمكنك الحصول على قيم مقاسة منه. لتجنب تأخيرات الإدخال / الإخراج ، تم تخزين ملف المصدر والوجهة على أقراص ramfs:





قياسات سرعة الشبكة


خيار آخر لاستخدام Raspberry Pi4 هو VPN أو جدار حماية. لا أوصي باستخدام هذه الأنظمة لهذه الأغراض ، ولكن لا يزال لدى العديد من الأشخاص اتصال إنترنت بطيء (أقل من 100 ميجابايت) ، لذلك قد لا ينتبهون إلى التشغيل البطيء لـ Raspberry Pi4.

السؤال الأول: ما مقدار حركة المرور التي يمكن لجهاز Raspberry Pi4 التعامل معها؟ نحن بحاجة إلى قياس صافي طاقة الشبكة للكمبيوتر ، دون قيود الواجهات المادية ، لذلك بدأت جلسة iperf3 بين الحاويتين. ومع ذلك ، تقوم الحاويات بتبادل البيانات من خلال زوج من veths ، وتسريع veth حركة المرور من خلال عمليات التحميل الخاطئة.

يتم تفريغ حساب المجموع الاختباري لعنوان IP ببساطة من خلال رفض احتسابه ، وإلغاء تحميل بروتوكول TCP عن طريق الرفض من تقسيم حركة المرور وإعادة تجميعها: يتم ببساطة نقل جزء كبير من بيانات 64 كيلوبايت إلى الذاكرة كما هي.

لتجنب مثل هذه اللحظات ، منعت التفريغ باستخدام أمر

ethtool -K veth0 tx off rx off tso off gro off gso off



جدار الحماية


إن أسرع معدات الشبكة قادرة على - إسقاط جزء من حركة المرور ، وأسرع طريقة للقيام بذلك هي من خلال قاعدة TC. من أجل عدم الوصول إلى أقصى سرعة ممكنة ، استخدمت الحد الأدنى لحجم إطار Ethernet ، 64b.



على الرغم من أن كلا النظامين لم يصل إلى سرعة النقل القصوى (1.5 ميجا بايت / ثانية) ، أظهر قلب 64 بت سرعة أعلى قليلاً من سرعة 32 بت. إذا كنت تريد استخدام Raspberry Pi4 كجدار حماية ، فتأكد من استخدام kernel 64 بت.

VPN


حالة استخدام شائعة أخرى لـ Raspberry Pi4 هي خادم VPN ، أو بالأحرى OpenVPN. أنا أفضل WireGuard ، لذا راجعت كلا البرنامجين لأن كلاهما سهل التثبيت:



كما هو متوقع ، فإن OpenVPN أبطأ 10 مرات من WireGuard. ما لم يكن متوقعًا هو أن OpenVPN يعمل بنفس السرعة عند 32 و 64 بت في الثانية. يكاد WireGuard يشبع منفذ جيجابت في كلتا الحالتين - ربما وصلنا إلى حد NIC.

لمعرفة ما إذا كان بإمكان WireGuard العمل بشكل أسرع ، قمت بإجراء اختبار آخر مع حاويتين لم تستخدما Ethernet المادي. كانت المشكلة الوحيدة هي أن كل من العميل وخادم iperf3 كانا يعملان على Raspberry Pi4 ، وهما يحملان مركزين.



كما هو متوقع ، كان أداء OpenVPN و WireGuard 32 بت ، المحدود بواسطة وحدة المعالجة المركزية ، أسوأ ، وكان أداء WireGuard 64 بت أفضل.

الاستنتاجات


كثيراً ما أقرأ عبارات مثل "الأمر لا يستحق ذلك" ، "ستفوز ببضعة أجزاء من الثانية" ، إلخ ، ببساطة ، لأن Raspberry Pi4 ليس حاسوبًا قويًا للغاية. هذا ليس صحيحا! كما يعلم أي شخص يشارك في المعدات المدمجة ، فإن التحسين البطيء لبرامج الأجهزة هو أكثر أهمية من الأجهزة السريعة.

كنت أعلم بالفعل أن نظام التشغيل 64 بت سيعمل بشكل أفضل على Raspberry Pi4 ، لكنني لم أكن أعرف كم أفضل. لذا أجريت كل هذه الاختبارات. اتمنى ان تكون قد استمتعت به!

All Articles