20170902 初成文
20170920 更新sdram超頻參數說明
2017-10-05 更新內存超頻、添加nbench性能跑分
一、測試環境
本人測試成功的系統:Raspbian Jessie/Stretch,DietPi,OSMC,LibreELEC
本文示例使用系統:Raspbian Stretch Lite(2017-08-16)
供電:三星充電器5.3V 2A
散熱:3塊散熱鋁片+5v小風扇花式接3.3v針腳(5v太吵...)
外殼:全透明亞克力外殼
二、超頻方法
最好先更新一下固件以支持最新的超頻選項
sudo rpi-update
Win下用Notepad++編輯/boot分區(FAT32格式)下的config.txt
Raspbian下需要在root權限(sudo nano /boot/config.txt)下編輯,重啟生效
三、超頻參數參考及說明
以下為個人樹莓派上通過穩定性測試的超頻參數,僅供參考。不同板子會存在體質差異,不一定適合以下配置,建議自行摸索。比如別人能穩定超到1.45g而個人板子超到1450(提高約21%)能開機,但壓力測試時會出現死機現象。最好先對CPU超頻通過穩定性測試后,再對內存超頻,否則可能無法知道是哪個原因導致超頻失敗。
主頻性能大約提升16.7%,(1400-1200)/1200=16.7%
over_voltage=5
arm_freq=1400
core_freq=500
gpu_freq=500
dtparam=sd_overclock=100
temp_limit=85
#force_turbo=1
over_voltage_sdram=2
sdram_freq=600
sdram_schmoo=0x02000020
over_voltage? //CPU/GPU電壓,有效值為[-16,8],0對應1.2v,步進為0.025v,超過6需要同時配合force_turbo=1才生效。個人測試是達到5是1.394v,再高的值電壓也不再增加。
arm_freq? //ARM CPU主頻,默認值為1200
gpu_freq? //同時對core_freq,h264_freq,isp_freq, v3d_freq超頻;core_freq默認值為400, h264_freq、isp_freq、v3d_freq默認值為300
core_freq? //GPU核心主頻,默認400,對內存讀寫速度有一點好處
dtparam=sd_overclock? //默認50,SD卡超頻,該項設置沒有危險,默認值低是為了提高兼容性,一般的卡都可以放心調整到100,重啟后執行dmesg | grep "mmc0"見mmc0: overclocking to 100000000Hz
temp_limit? //過熱保護。默認值為85,過熱降頻。不建議長期運行在70度以上,高溫對芯片壽命影響較大。
force_turbo? //=1時一直運行在高性能模式下,策略為scaling_governor=performance;=0時根據cpu利用率動態調頻,默認策略為scaling_governor=ondemand。有五種調節策略,分別為performance/powersave/userspace/ondemand/conservative,可通過以下命令更改策略,比如:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
over_voltage_sdram? //內存電壓范圍[-16,8],默認0,同時設置over_voltage_sdram_c(control),
over_voltage_sdram_i(I/O), over_voltage_sdram_p(phy)電壓
sdram_freq? //內存工作頻率,默認450MHz
sdram_schmoo//內存部分時序4,3,2,0,0,-2,-2,0,-10,提高性能和穩定性,分別對應如下
int8_t? dphy_drive_level;? ? // 4..0 -> 34R,40R,48R,60R,80R
int8_t? aphy_drive_level;? ? // 4..0 -> 34R,40R,48R,60R,80R
int8_t? dram_drive_level;? ? // 4..-1 -> 34R,40R,48R,60R,80R,120R
uint8_t dphy_lpwr_rx;? ? ? ? // Non-zero for LPWR_RX in DPHY
uint8_t aphy_lpwr_rx;? ? ? ? // Non-zero for LPWR_RX in APHY
int8_t dll_offset_rd_n;? ? ? // DLL offset schmoo: Low phase Read
int8_t dll_offset_rd_p;? ? ? // DLL offset schmoo: High phase Read
int8_t dll_offset_wr;? ? ? ? // DLL offset schmoo: DQ/DQS Write
int8_t dll_offset_addr;? ? ? // DLL offset schmoo: Address/command
四、性能測試、壓力測試、狀態監測、穩定性測試、
1、性能測試:表示創建4個線程來尋找√ ̄20000以內的質數,
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 run
未超頻前total time=92.5s,超頻后total time=79.3s,提升約15%符合預期
另一個性能測試跑分軟件是nbench(原程序http://www.byte.com/bmark/bmark.htm。但2010年關閉了)
wget http://www.math.utah.edu/~mayer/linux/nbench-byte-2.2.3.tar.gz
tar -xvzf nbench-byte-2.2.3.tar.gz
cd nbench-byte-2.2.3
make
./nbench
2、建議壓力測試至少10分鐘或以上無出錯/死機
sudo apt install stress
stress -c 4 -t 10m -v
3、需要同時留意CPU/GPU溫度,下面兩條命令均可:
vcgencmd measure_temp
cat /sys/class/thermal/thermal_zone0/temp
4、檢測CPU核心電壓和內存電壓:
for id in core sdram_c sdram_i sdram_p ; do echo -e "$id:\t$(vcgencmd measure_volts $id)" ; done
5、檢測超頻是否成功,下面兩條命令均可:
vcgencmd measure_clock arm? //返回1400000000
sudo cat /sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq? //返回1400000
6、內存壓力測試,一個memtester占用一個核,打開四個窗口運行四次sudo memtester 210M -1,因為需要cpu生成隨機序列來對內存進行頻繁讀寫,所以cpu占用會比較高,因此該測試可以同時對cpu和內存進行穩定性測試。該測試大約10分鐘左右
sudo apt install memtester
sudo memtester 210M -1
內存穩定性測試不通過會出現如下圖failure字樣,在日常工作中可能會出現不穩定現象。
7、內存讀寫速度測試,按Ctrl+C結束
dd if=/dev/zero of=/dev/null
8、SD卡讀寫速度測試
第一行,生成1024MB大小的文件內容為0的文件,生成速度取決于sd卡寫入速度
第二行 ,將剛才生成的文件刪除,取決于sd卡讀取速度
dd if=/dev/zero of=test bs=1M count=1024? oflag=direct
dd if=test of=/dev/null bs=1M oflag=direct
sudo hdparm -tT /dev/mmcblk0 ? ? ? ? //-t是測試硬盤讀寫速率,-T是測試緩存讀寫速率
五、臨時關閉超頻
如果超頻失敗無法啟動,可以在啟動時按住shift臨時關閉所有超頻選項,進入系統后再進行修改。
主要參考文章:
轉載請注明來源,謝謝。