近日,樹莓派基金會宣布了樹莓派的8G內(nèi)存版本,并發(fā)布了一個支持USB引導的固件版本。借此來解決長期以來令人詬病的磁盤IO問題。此前硬件版本樹莓派最大外部磁盤速度受到限制,尤其是 USB 2.0 總線與網(wǎng)絡適配器共享,進一步限制了其帶寬,即使 USB 啟動也快不到哪去。
樹莓派 Pi 4 架構中不僅將網(wǎng)絡適配器與USB總線分離,而且開始支持USB 3.0,其理論上可以比USB 2.0快10倍。所以此次USB引導測試版的新固件為提高樹莓派的性能帶來了曙光。日前一個小哥Jeff Geerling就分享了他的對新版本體驗,并且做了基準測試,本文我們就一起來學習下小哥的實踐過程。
用USB 引導樹莓Pi 4首先,用一個32GB SanDisk Pro microSD制作了最新的64位測試版樹莓派操作系統(tǒng)。該測試版本系統(tǒng)可以從樹莓派論壇下載:
要制作引導盤,需要使用使用dd。實踐中使用了一臺老的Mac,當然也可以直接使用樹莓派官方鏡像。
然后,按照USB 引導測試版設置說明,進行以下操作:
1、啟動SD卡引導的樹莓派系統(tǒng)。
2、在樹莓派操作系統(tǒng)中打開終端,也可以通過SSH 從另一臺計算機執(zhí)行。
3、運行以下命令,升級系統(tǒng)
sudo apt update
sudo apt full-upgrade
4、修改/etc/default/rpi-eeprom-update文件,將其值由"CRITICAL"修改為"BETA"。
5、 運行下面命令,更新EEPROM :
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-06-03.bin
6、 重新啟動,并通過打開終端并運行檢查引導加載程序版本:
vcgencmd bootloader_version
應該輸出類似下面的信息:
Jun 3 2020 13:53:47
version b5de8c32f4f45a12a1fdfe107254df82965f9d56 (release)
timestamp 1591188827
這樣表示引導成功,接下來還需要將 Pi OS flash到外部 USB SSD 或 HDD。首先,最好在啟動驅動器時將需要加載的設備插入并確保系統(tǒng)已經(jīng)識別了它(應該出現(xiàn)在桌面上或者使用lusb找的到)。注意:不是任何外部驅動器和 USB SATA 適配器支持開箱即用。
該試驗中使用的是金士頓A400 240GB SSD,硬盤盒使用的是Inateck USB 3.0 SATA enclosure。
將USB驅動器插入主計算機(之前制作microSD卡的電腦),并將樹莓派操作系系統(tǒng)燒錄到它,和microSD 操作一樣。
在引導boot卷之前,需要將卷上的一些文件替換為 GitHub 的最新版本
在樹莓派固件GitHub 存儲庫(github.com/raspberrypi/firmware),下載發(fā)布的zip壓縮包或者git clone整個倉庫。
在boot目錄中,復制所有以.elf和.dat的結尾的文件到boot卷(替換已存在的同名文件)。
彈出boot卷,然后拔下 USB 驅動器。
重啟當前以microSD 卡運行的系統(tǒng),拔下microSD卡,然后插入USB驅動器。
請確保將驅動器插入到了USB 3.0端口(藍色端口)。
打開樹莓派電源,大約一分鐘后,如果正常就可以應該可以啟動,引導界面如下:
注意:上圖有個錯誤提示,主要是引導加載程序不能啟動通過USB-HDD后系統(tǒng)重新啟動的問題,不影響使用。目前解決方案拔下引導usb設備樹莓派完全關閉電源, 然后插入它回來。
基準測試為了了解其microSD卡啟動時磁盤和USB SSD啟動的性能差距,小哥進行了一系列的基準測試。
第一個基準測試是對大文件寫入及小文件(4K)隨機訪問讀取/寫入。這兩者都很重要,但在許多方面,當使用像樹莓派這樣的通用計算機時,后者的差異會更有意義,因為計算機不不會整天讀取和寫入大型文件(大量順序訪問),例如攝像機或無人機(這是大多數(shù)microSD卡都會優(yōu)化的用例)。
如果要自行運行此基準測試。記錄在Pi Dramble維基的磁盤訪問基準頁。注意,對于 USB SSD,測試中修改了hdparm路徑由/dev/mmcblk0改成了/dev/sda1。結果如下圖:
結果確實可以說明問題。對于順序操作,使用 USB SSD 比使用 microSD 卡快 3-4 倍。對于隨機訪問,隨機讀取速度稍快一些,但寫入速度約為8倍。這在很多活動中有所不同,例如啟動應用、運行具有許多選項卡的 Web 瀏覽器。順序性能意味著可以輕松流式傳輸和錄制4K高清視頻,樹莓派也有足夠的帶寬用于其他內(nèi)容。
為了了解磁盤訪問如何影響熟悉的真實應用程序的性能(并且能夠以高度準確的結果徹底進行基準測試),還測試運行多年的Pi Dramble Drupal 基準,運行了一組Drupal基準。測試會運行Docker容器化的Drupal系統(tǒng)和MariaDB數(shù)據(jù)庫,然后通過Nginx訪問。結果如下:
和前面一樣,也運行了所有測試 4x,在同一配置上,所有結果都相差不到 0.5%,因此很明顯,SSD 在許多操作中產(chǎn)生了巨大的不同:Drupal 的安裝和第一頁加載導致數(shù)百個文件被訪問和/或寫入磁盤,因此在 SSD 上更快。因此,它有意義。
另外還測試了另一個方案:在 Drupal 中加載和重新加載頁面:
這些基準測試顯示,對于某些操作,磁盤IO性能差異并不明顯。在 Drupal的案例中,處理和返回每個頁面時會將所需的數(shù)據(jù)將緩存(opcache 或者memcache,redis等數(shù)據(jù)庫的緩存中),可以保持讀取和寫入最小化。
總結本文中嘗試了在樹莓派中運行USB SSD的嘗試。根據(jù)基準測試使用USB3.0和SSD硬盤可以極大提高樹莓派的IO性能。在這種方案下,可以一定程度上擴充樹莓派的存儲和訪問性能,可以讓樹莓派的通用性加大,而不僅僅是個玩具。當然我們的呼聲是樹莓派能提供真正的磁盤接口,而不僅僅是USB。
掃描二維碼推送至手機訪問。
版權聲明:本文由信途科技轉載于網(wǎng)絡,如有侵權聯(lián)系站長刪除。