NetworkGeekStuff.com running now on Raspberry PI!
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
5 comments ...
Webserver running 24/7 on Raspberry? With the power bill going up every year this make a nice solution. I also refreshed your page to get the feeling what is the performance. Is this the single web running on the Raspberry now? Or do you think it can host multiple sites at once?
I do not believe Raspberry would be a target platform for any webserver farm. It can take care for maybe 3-5 low traffic blogs. But even then I could only run networkgeekstuff.com with caching the front page to static html as wordpress heavy php is not running smoothly on it and you can get 30sec page generation sometimes without web caching 🙁
If one day however someone makes an apache server that can use the graphics chip processing power, then you have a super beast for web as Raspberry graphics chip is much more powerful than its general purpose arm cpu.
Couldn’t you setup a memory split
Hi, I’m more interested in the things you mention in the “update”. How did you get the Raspberry Pi’s to work together as a webserver? Are they load distributing traffic of the same site? I have two Pi’s and am interested in doing this as well. Information on how you did that would be appreciated. Thanks!
These tutorials are already created, I have updated this blogpost to point to them in the “UPDATE”, alternativelly please see the front-page or go here:
I hope this helps you 😉
Comments are closed.