Mengapa perlu menginstal OS 64-bit pada Raspberry Pi4

gambar

Salah satu manfaat bekerja untuk perusahaan perangkat lunak adalah Anda sering memiliki kesempatan untuk menguji prototipe perangkat keras baru. Namun, tidak dalam kasus ini - saya membeli Raspberry Pi4 karena sangat murah!

Raspberry Pi4 memiliki quad-core ARM Cortex A72, memori hingga 4 GB dan port Ethernet gigabit - semuanya hanya dengan $ 35.

Pada Raspberry Pi4 memiliki OS Raspbian (berdasarkan Debian), dan perpustakaan produk jadi, jadi saya letakkan di SD-card agar bisa boot lebih cepat. Saya mencari syslog dan memperhatikan bahwa baik kernel dan semua program pengguna dikompilasi sebagai armv7 - yaitu, untuk memori 32-bit.

Saya tahu bahwa Raspberry Pi4 mendukung 64 bit, jadi saya tidak ingin menjalankan OS 32-bit di atasnya. Saya mengambil kartu memori lain dan meletakkan Debian di atasnya. Debian, tidak mengandung apapun yang berlebihan, dikompilasi sebagai aarch64 - yang berarti memori 64-bit.

Setelah mengunduh OS 64-bit, saya menjadi tertarik pada betapa jauh lebih baik kerjanya dalam 32-bit, jadi saya melakukan beberapa tes.

Tes kecepatan sintetis


Hal pertama yang terpikir oleh saya adalah tes batu dhrystone lama, yang telah ada sejak awal waktu. Program ini ditulis pada tahun 1988, dan berkaitan dengan perhitungan matematika. Tampaknya tidak mungkin untuk mensimulasikan beban saat ini, dan kita dapat menggunakannya hanya untuk menjaga beberapa jenis konektivitas dengan perangkat keras dan program lama.



Aplikasi digest modern lebih baik disimulasikan oleh komputasi hash, jadi saya ingin menjalankan tes dengan SHA1. Sayangnya, utilitas sha1sum dikompilasi tanpa dukungan untuk fungsi kernel libssl atau kriptografi, jadi saya harus mengkompilasinya dari sumbernya.

Untuk menghindari kemacetan di I / O, saya menghitung hash dari file 2 GB dengan opsi truncate -s 2GB, jadi tidak ada input atau output dari kartu:



SHA1 adalah tes yang lebih realistis daripada dhrystone, karena algoritma ini digunakan dalam banyak aplikasi - torrents, git, dll.

RAM


Sistem 64-bit menyediakan akses ke memori 8 byte per baca / tulis. Saya menulis sebuah program sederhana yang menempatkan buffer besar - dia menulisnya, dan kemudian membacanya. Untuk menjamin alokasi memori nyata, saya menggunakan mlock (). Dalam tes ini, volume buffer adalah 2 GB: buffer 3 GB bekerja dalam mode 64-bit, dan dalam mode 32-bit itu menghasilkan kesalahan "kehabisan memori".



Pengkodean audio


Saya perhatikan bahwa banyak pengguna Raspberry Pi4 menggunakan komputer sebagai pusat media, jadi saya memulai tugas untuk menyandikan audio dengan dua codec paling populer.

Saya menyandikan komposisi "Echoes" Pink Floyd karena itu lagu yang agak panjang dan Anda bisa mendapatkan nilai yang terukur darinya. Untuk menghindari keterlambatan I / O, file sumber dan tujuan disimpan di ramf:





Pengukuran kecepatan jaringan


Opsi lain untuk menggunakan Raspberry Pi4 adalah sebagai VPN atau firewall. Saya tidak merekomendasikan menggunakan sistem seperti itu untuk tujuan seperti itu, tetapi banyak orang masih memiliki koneksi internet yang lambat (kurang dari 100 MB), sehingga mereka mungkin tidak memperhatikan lambatnya operasi Raspberry Pi4.

Pertanyaan pertama: berapa banyak lalu lintas yang dapat ditangani Raspberry Pi4? Kita perlu mengukur kekuatan jaringan net komputer, tanpa batasan antarmuka fisik, jadi saya memulai sesi iperf3 di antara dua wadah. Namun, kontainer bertukar data melalui sepasang veths, dan veth mempercepat lalu lintas melalui pembongkaran palsu.

Membongkar perhitungan checksum IP dilakukan hanya dengan menolak untuk menghitungnya, dan melepas segmentasi TCP dengan menolak dari segmentasi dan memasang kembali lalu lintas: sepotong besar data 64K hanya ditransfer ke memori apa adanya.

Untuk menghindari momen seperti itu, saya melarang membongkar dengan perintah

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



Firewall


Peralatan jaringan tercepat mampu - untuk menjatuhkan bagian dari lalu lintas, dan cara tercepat untuk melakukan ini adalah melalui aturan TC. Agar tidak mencapai kecepatan maksimum yang mungkin, saya menggunakan ukuran frame Ethernet minimum, 64b.



Meskipun kedua sistem tidak mencapai kecepatan transfer maksimum (1,5 Mb / dtk), inti 64-bit menunjukkan kecepatan yang sedikit lebih tinggi daripada 32-bit. Jika Anda ingin menggunakan Raspberry Pi4 sebagai firewall, pastikan untuk menggunakan kernel 64-bit.

VPN


Kasus penggunaan lain yang umum untuk Raspberry Pi4 adalah server VPN, atau lebih tepatnya, OpenVPN. Saya lebih suka WireGuard, jadi saya memeriksa kedua program karena keduanya mudah dipasang:



Seperti yang diharapkan, OpenVPN 10 kali lebih lambat daripada WireGuard. Apa yang tidak diharapkan adalah bahwa OpenVPN bekerja pada kecepatan yang sama pada 32 dan 64 bps. WireGuard hampir memenuhi port gigabit dalam kedua kasus - mungkin kita telah mencapai batas NIC.

Untuk mengetahui apakah WireGuard dapat bekerja lebih cepat, saya menjalankan tes lain dengan dua kontainer yang tidak menggunakan Ethernet fisik. Satu-satunya masalah adalah bahwa kedua klien dan server iperf3 berjalan pada Raspberry Pi4, memuat dua core.



Seperti yang diharapkan, OpenVPN dan 32-bit WireGuard, dibatasi oleh CPU, berkinerja lebih buruk, dan 64-bit WireGuard melakukan lebih baik.

Kesimpulan


Saya sering membaca pernyataan seperti "itu tidak layak", "Anda akan memenangkan beberapa milidetik", dll., Hanya karena Raspberry Pi4 bukan komputer yang sangat kuat. Ini tidak benar! Seperti diketahui oleh semua orang yang terlibat dalam peralatan tertanam, optimasi perangkat lunak perangkat keras yang lambat bahkan lebih penting daripada perangkat keras yang cepat.

Saya sudah tahu bahwa OS 64-bit akan bekerja lebih baik pada Raspberry Pi4, tetapi saya tidak tahu seberapa jauh lebih baik. Jadi saya melakukan semua tes ini. Saya harap Anda menikmatinya!

All Articles