Hello all, not much happening here since June, but now this page come across some more internal changes than external. First of all I have managed to move the whole networkgeekstuff.com to a Raspberry PI system on chip. In this article some basic thoughts and performance information will be provided. First of all let me tell you that Raspberry PI is a nice piece of equipment, but as much as I adore it, it was unable to run the original NetworkGeekStuff.com without some significant performance tweaks to the site, and also caching and pages with PHP pre-loading. But now everything is done and this site is now fully operational from this little piece of HW.
On the picture you can see Raspberry PI when I unpacket it for the first time, this little thing now hosts this webserver. To summarize the parameters and performance of this little thing, let me use the words from the Raspberry PI FAQ page. If some of you are interested, the Raspberry is a big craze on the Internet(s) now so I encourage you to find more interesting projects that people run on it.
Raspberry PI hardware and performance summary.
Model B that I bought has 256Mb RAM, 2 USB ports and an Ethernet port. Also present is RCA Video and HDMI output ports. For home electronics there are universal GPIO pins present for all your home electronic tinkering. SD cart is used as a harddrive. Power input is via microUSB input, so this small PC can be run from USB power of another PC, quite weird.
The SoC is a Broadcom BCM2835. This contains an ARM1176JZFS, with floating point, running at 700Mhz, and a Videocore 4 GPU. The GPU is capable of BluRay quality playback, using H.264 at 40MBits/s. It has a fast 3D core accessed using the supplied OpenGL ES2.0 and OpenVG libraries.
From Raspberry PI FAQ on performance:
That is, graphics capabilities are roughly equivalent to Xbox 1 level of performance. Overall real world performance is something like a 300MHz Pentium 2, only with much, much swankier graphics.
Power usage: 2,5W idle (3W was showed by my measuring equipment, official specification is 5V input with 700mA maximum drain)
Services: Currently only networkgeekstuff.com webservice
CPU: ARM1176JZFS 700Mhz
Storage: 32GB A-Data SD card (class10, 30MB/s)
Networkgeekstuff.com web tests performances and caching solution overview
To be honest with all of you, when I first moved this web (apache/mysql/wordpress/etc..) directly to the RaspberryPI system, I was thinking that this is not the way, loading of the main page of networkgeekstuff.com took 25 seconds without optimization for Raspberry PI. I can imagine that no-one would wait 25 seconds for a webpage. Fortunately for me, the solution was to implement web caching system to my networkgeekstuff.com. This means that most of the pages are pre-computed as a static html webpage and when a user comes, nothing is computed anymore but visitor is served a pre-computed static html. And this method enabled Raspberry PI to support networkgeekstuff.com just fine.
There will be one more blogpost coming soon about how to run wordpress with apache and wordpress caching to completely speedup webpages by pre-computing all php pages.
Old ITX server vs. new Raspberry PI
So now the fun part, quick comparison of the old and the new Raspberry used as webserver. The old server was and ITX board with integrated Celeron 220 (running 1,2Ghz). This little thing I considered the best thing for home server since 2010 till today. The performance of an average desktop (in 2010) is enough for any home based or internet based services running from it.
The old ITX server however run various services including networkgeekstuff.com like NAT (network storage), torrents, home proxy and VPN service and sometimes also Counter-Strike Source server. I created DMZ on this box with using XEN virtualization and networkgeekstuff.com has run as a separate virtual server inside this physical host. From this you can imagine that this box was quite powerfull.
Old Intel ITX summary:
Power usage: 57W idle (65W under load)
Services: XEN virtualization (networkgeekstuff.com in virtual server), NAS (samba), torrents, OpenVPN, Syslog, mailserver, Counter-Strike Source server (sometimes).
CPU: Celeron 220
Storage: 1TB, 500GB (running RAID0 mirror with 500GB partition on the 1TB disk)
If I was a data center, I would buy hundred of these and make myself a GRID computer just because every HW unit only takes ~2W of power! Only the power consumption itself is insane for the amount of useful work a linux server can do on you home LAN, with the investment of 50 EUR (includes SD card) you can build yourself a home linux server (still with some limitations). When I think that I was running 10years back a pentium 2 that was eating 200W of power for a home server, this little thing is as green and cheap as you can get!
Highly recommended! I have already ordered a second unit to have another one for playing with electronics and also testing the HW/graphics capabilities.
UPDATE – October 2012:
As my first Raspberry PI became heavily used running NetworkGeekStuff.com, I was blocked from playing with it really hard so I immediately ordered a new one. Now I have a Raspberry PI “server farm” with power consumption under 4W (already tried doing web server loadbalancing via Mikrotik, .. works like a charm).
You can find my new tutorials about this parts here:
Load-Balancing network traffic on Mikrotik router tutorial with example configuration
Master-Master replication of Apache/MySQL tutorial with configuration example