As some of my personal/professional web hosting are to renewed, I was thinking of moving them to my Olimex A20.
Reasons why I think the A20 can be a solution:
- low power consumption , so I can leave it on
- my site have a small audience so performance is not a bottleneck ( I’m not sure a mutual hosting have better performance)
- I can control exactly services started, can be very formative and challenging
- Spend my money to buy something that I can use later instead of renting something
- For the price of one year of web hosting I can buy a new A20
- It’s challenging and I might learn a lot of things/li>
The other side of the coin
- Very difficult to configure (you have to configure a lot of thing DNS,Apache,open your internet connection)
- You are now responsible for the security of your system (you’re opening your system to Internet)
Starting from fresh installation
To decide first I must have an idea of the performance of an installed apache and I will remove all unused things (X-windows for instance)
Removing unecessay modukes and services
I started from a fresh installation and configure the network as I explained on a previous article.
I removed unnecessary X-windows lib, the box will start faster and I can keep data on the sd card.
Removing unnecessary modules
apt-get remove --auto-remove --purge libx11-.* apt-get autoremove --purge
Before:
/dev/root 3808912 2634612 980816 73% /
After that:
free -m total used free shared buffers cached Mem: 874 63 811 0 2 34 -/+ buffers/cache: 26 848 Swap: 0 0 0
I know I can win more memory by switching to mono-user and allow only one terminal. But I will do it in a later version.
You can also remove unnecessary modules:
lsmod Module Size Used by cpufreq_powersave 1207 0 cpufreq_userspace 3318 0 cpufreq_conservative 6042 0 cpufreq_stats 3699 0 g_ether 55821 0 pwm_sunxi 9255 0 gt2005 13408 0 nand 114172 0 sun4i_keyboard 2150 0 ledtrig_heartbeat 1370 0 leds_sunxi 3733 0 led_class 3539 1 leds_sunxi sunxi_emac 34009 0 sunxi_gmac 29505 0 8192cu 454131 0 free -m total used free shared buffers cached Mem: 874 63 811 0 2 34 -/+ buffers/cache: 26 848 Swap: 0 0 0
I can remove modules that handle video memory:
After that:
rmmod sun4i_csi0 videobuf_dma_contig videobuf_core ump lcd sunxi_cedar_mod gt2005
free -m
total used free shared buffers cached
Mem: 874 62 812 0 2 34
-/+ buffers/cache: 25 849
Swap: 0 0 0
<h3>Raw Performance</h3>
By default apache is installed, to test do
<div class=”wp_syntax”>
<table>
<tbody>
<tr>
<td class=”line_numbers”>
<pre>1
wget -O- http://192.168.1.171/
He will fetch index.html in /var/www
First step I try to know how much request this apache can handle. From my laptop I use a very useful command named ab that call concurent request and report time and how many request handled. From my console I type
1 |
ab -n 4000 -c 100 -g test_data_1.txt http://192.168.1.71/ |
with 4000 means how many request to use, 100 means number of client, test_data_1.tx is the gnuplot output and you can put the url you want to test.
1 2 3 4 5 6 7 8 9 10 11 12 |
Server Software: Apache/2.2.22 Document Length: 999 bytes Concurrency Level: 100 Time taken for tests: 3.426 seconds Complete requests: 4000 Failed requests: 0 Total transferred: 5104000 bytes HTML transferred: 3996000 bytes <strong>Requests per second: 1167.60 [#/sec] (mean)</strong> Time per request: 85.646 [ms] (mean) Time per request: 0.856 [ms] (mean, across all concurrent requests) Transfer rate: 1454.94 [Kbytes/sec] received |
To test in a more real example I did on the box
1 2 |
cd /var/www wget -r -O http://olinuxino.4pro-web.com/ |
From my laptop
1 |
ab -n 400 -c 100 -g test_data_1.txt http://192.168.1.71/olinuxino.4pro-web.com/index.html |
SELRES_0.5579080039592403SELRES_0.5579080039592403
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Document Path: /olinuxino.4pro-web.com/index.html Document Length: 48352 bytes Concurrency Level: 100 Time taken for tests: 1.756 seconds Complete requests: 400 Failed requests: 0 Total transferred: 19452800 bytes HTML transferred: 19340800 bytes <strong>Requests per second: 227.79 [#/sec] (mean)</strong> Time per request: 438.995 [ms] (mean) Time per request: 4.390 [ms] (mean, across all concurrent requests) Transfer rate: 10818.39 [Kbytes/sec] received It looks like that the A20, can support the number of request I expect. In the next article I will test with a running wordpress site, and I will explain how to configure and optimize Apache and put your website on Internet. |