I have been recently playing with Raspberry Pi - mostly setting some services for personal use. One thing I was tempted to do was to increase its CPU frequency. I have never overclocked anything, but this seemed like an easy and safe thing to try. I was interested in its impact on performance and temperature - here are my findings.
I have Raspberry Pi 4 Model B in aluminum case with 2 fans.
I've noted values of two commands with and without overclocking: lscpu
and vcgencmd measure_clock arm
.
lscpu
displays useful information about CPU, including its frequency range and BogoMIPS metric (which I just learned about). The second command vcgencmd measure_clock arm
“returns the current frequency of the specified clock”.
$ lscpu
...
CPU max MHz: 1800.0000
CPU min MHz: 600.0000
BogoMIPS: 324.00
...
$ vcgencmd measure_clock arm
frequency(48)=1800457088
I've decided to overclock to 2 GHz, by adding the following options into /boot/config.txt
:
# My changes: overclocking
over_voltage=6
arm_freq=2000
After reboot I've got the following CPU information:
$ lscpu
...
CPU max MHz: 2000.0000
CPU min MHz: 600.0000
BogoMIPS: 360.00
...
$ vcgencmd measure_clock arm
frequency(48)=2000478464
Based on the output above I can see that max CPU frequency got increased by ~ 10 %, from 1.8 GHz to 2.0 GHz.
I've checked various metrics for a period of 5 hours without and with overclocking. Raspberry Pi was under a similar load in both cases - majority of CPU time is spent on some image processing and passthrough recording of multiple video streams.
I assume that the environment temperature is steady enough for this comparison and I don't take it into consideration (nor do I control or measure it).
My expectation was to see roughly 10% increase of temperature and 10% decrease of CPU usage, since the CPU should do the same work a bit quicker now.
The left half indicates default configuration, the right half the overclocked one. Numbers below are eyeballed estimates.
The temperature increase follows closely CPU frequency increase.
As for CPU utilization and system load, their graphs don't look too convincing. Unintuitively both metrics look like they actually increased, but look more noisy as well. This might be caused by some randomness in the running application, or my wrong intuition.
I would probably get more accurate results by running stress
, but I was mostly interested in the impact of overclocking on my specific setup. Further tests would be needed to figure this out :)