Previously I examined whether the “speed class” of an SD card has a meaningful impact on Raspberry Pi performance. Unsurprisingly, the two classes of SD cards showed very different performance.
The good people over at the Raspberry Pi Foundation questioned whether class is the only meaningful metric. Based on their tests, there are variations in brands and other qualities/attributes of SD cards which can have a meaningful impact on Raspberry Pi IO performance. Therefore, I decided to buy a different class 10 card (albeit a better class 10 card) to see how it’s performance might be different from the class 10 card I tested.
The Raspberry Pi uses Secure Digital (SD) cards for non-volatile internal storage.
SD cards vary mainly on two factors:
- Size (GB)
The cost of SD cards is usually a function of their size and speed. There are many different levels of “speed” for SD card represented by a “class” rating of 2, 4, 6, and 10. The number is ideally (but not always) the maximum throughput of the card in MB/Sec.
I have a few Raspberry Pi computers and, as I have said before, they are amazing. I have a mix of ‘B’ models – some have 256 MB of RAM (r1) while others (r2) have 512 MB.
I had a spare r1 and r2 so I decided to try a Raspberry Pi SETI@Home test. I put SETI@Home on both to see how much the RAM impacted their average performance over the span of one month. Other than the RAM, both of these units were completely identical. The results were somewhat surprising.
Recently, I moved this blog from one micro EC2 instance to another. In the process, I switched from Nginx to Apache. I quickly realized that my instance was running out of memory (RAM) which was causing all of my Apache-hosted applications to fail. Therefore, I made a few tweaks to increase my micro EC2 performance. I want to share them in the hope they are useful to others.
To reduce the memory footprint of MySQL, I decided to reduce the Innodb memory pool size. This will impact MySQL performance; I am only using MySQL for this simple WordPress blog.
To date, I have owned every model of the Google Nexus phones, albeit briefly in every case. I just received my Nexus 4 yesterday and decided to run it through the Quadrant Standard benchmarks.
My Galaxy Nexus had a previous total score of 2120.
The Nexus 4 came in with the following results.
- CPU – 10597
- Mem – 6635
- I/O – 4407
- 2D – 327
- 3D – 2149
- Total – 4823
The Raspberry Pi is awesome. Given the unit’s price, expandability, and functionality it is a great value. The Raspberry Pi has two models – “A” and “B” with a few functional differences. The “B” model was released first and includes features like ethernet. Newer versions of the “B” model have more RAM; I wondered how this may impact the benchmarked performance figures.
Model “B” – 1.0
There are two versions of the “B” model – 1.0 and 2.0. The original version (1.0) included 256MB of ram; the newer version (2.0) includes 512MB of RAM. I have previously benchmarked the 1.0 version of the “B” model using the nbench Linux tool and compared it to AWS using the Photonix Test Suite with the pts/nginx test.
Earlier this year I ran a few tests comparing a Raspberry Pi (rev 1.0) to an Amazon AWS Micro instance. There were a few interesting and insightful comments in response to the post. I want to run through a few of the open comments and questions in a second post.
What about an AWS small instance?
The most common piece of feedback I received was that I should have used a small AWS instance. I know AWS well (I work for Amazon) and I know the micro instances are capped. I chose a micro instance based on the price. Let’s compare a small and micro instance.