# First impressions of the Raspberry Pi 2

I got my hands on one today, and after arriving home and re-purposing a Class 10 MicroSD card, here are a few short notes on it.

“Pi 2” seems less of an improvement than Pi2, so I’m going to use that moniker to refer to it henceforth.

• It now displays four Raspberry Pi logos upon boot – a nice if whimsical touch.
• There is indeed an overclocking option – to 1GHz. Haven’t tried that yet, since I’m pressed for time tonight.
• To my surprise, the default browser didn’t work – it loaded pages absurdly slowly, as if there was some DNS issue. I’m assuming these are teething troubles of some sort, since Chromium worked just fine the first time, and was able to load most pages I threw at it speedily and without hassles.
• Mathematica seems to run much faster, both in terms of startup time and a couple of test plots I did, but it used only one CPU core – three cores were left idling.
• I’m sad to see this still running Debian instead of Ubuntu. With that, I’d be able to have a nicer set of packages and do direct comparisons.

I’m guessing there is still a lot of optimisation to be done in Raspbian (likely most binaries aren’t taking full advantage of the hardware at this point), but in the meantime my ODROID-U2 is still faster (and will certainly remain so).

After dinner I managed to run a Clojure web server on both, and results are telling. What I did was set up this project of mine atop JDK 1.81, and hit them with wrk in turn over Wi-Fi:

# Pi 2

$wrk -c 100 -d 60 -t 50 --latency http://quad-damage.lan:8080 Running 1m test @ http://quad-damage.lan:8080 50 threads and 100 connections Thread Stats Avg Stdev Max +/- Stdev Latency 184.05ms 175.81ms 1.63s 92.53% Req/Sec 11.93 3.25 22.00 74.40% Latency Distribution 50% 136.61ms 75% 177.25ms 90% 276.00ms 99% 1.35s 37055 requests in 1.00m, 149.55MB read Requests/sec: 616.97 Transfer/sec: 2.49MB # ODROID-U2$ wrk -c 100 -d 60 -t 50 --latency http://odroid-server.lan:8080
Running 1m test @ http://odroid-server.lan:8080
Thread Stats   Avg      Stdev     Max   +/- Stdev
Latency   190.28ms  334.34ms   3.01s    89.93%
Req/Sec    14.58      6.09    28.00     66.45%
Latency Distribution
50%   92.56ms
75%  112.97ms
90%  528.78ms
99%    2.29s
44803 requests in 1.00m, 180.81MB read
Socket errors: connect 0, read 0, write 0, timeout 11
Requests/sec:    745.91
Transfer/sec:      3.01MB


Besides the gap seen above, you should take two things into consideration:

1. The ODROID was also running a desktop environment with Chromium and a few terminals (whereas I rebooted the Pi2 beforehand).
2. This test maxed out all four cores on the Pi2, but the ODROID never went past 60% CPU usage (and even then it did so only on one core, with the others hovering between 35-45%).

So there was a network bottleneck involved, but the Pi2 was still swamped. I expect it will be able to, say, run NetBeans (like I do on the ODROID), but it won’t do it as nimbly.

Nevertheless, the new board does provide more than adequate bang for the buck, and I look forward to obtaining a normal (non-Snappy Core) Ubuntu for it – as well as upgrading my cluster in the fullness of time.

1. Going back to this, the Pi 2 ships a JDK that is a couple of revs above what I had on the ODROID, but the release notes only mentioned security fixes, so I’m assuming they’re equivalent. ↩︎