[IIAB] [UKids] Internet-in-a-Box speed profiling tips on different CPUs?

Richard Smith smithbone at gmail.com
Sun Jun 8 12:59:20 PDT 2014


On 06/07/2014 09:05 AM, Tim Moody wrote:

> Of course, the trick in all this is to make the tests repeatable so that
> comparisons are meaningful.  I agree with Tony that accessing select
> maps, wiki pages, and perhaps videos are good candidate load tests and I
> would add some collaborative tests that exercise ejabberd.

Just to set expectations, I highly doubt there will be some miracle 
change that makes the setup run like greased lightning.

Also, the scope of the testing I'm talking about doing is very limited 
in nature.  Specifically, I'm going to look at determining if the use of 
the indexing in IIAB to look up data is primarily an IO problem or if 
there are aspects of it that are CPU bound.

This knowledge will be useful in deciding where best to spend $$ on XS 
hardware designed to serve that content.

> Some efforts have been made in the past such as
> http://wiki.laptop.org/go/XS_Load_Testing

Thanks.  I'll take a look at that.

> Perhaps Adam can give us an idea of the situation at the deployments in
> Haiti.

+1 Adam or George? This would be useful information.

> Saint Jacob's represents a reasonable example of the deployments
> I am familiar with: three classrooms, 30-40 XOs per classroom, a total
> of 100 XOs connected to a single school server, one router per
> classroom, dhcp provided by the server (all laptops on the same LAN).

I fear that getting low-latency out of this setup will be a tall order 
for any low end server.  Consider the following:

A reasonable number for the throughput of a 802.11g wireless network 
with 40 nodes is 10Mbit/s.  If a search request involves 1k of data then 
all 40 nodes could issue a request in the space of 32ms.  Essentially 
all at once.  So there could be 40 search requests outstanding on the 
server.  I don't know what the multiplication factor of a search request 
to disk IO is but I'd be surprised if it was less than 50.  Lets be 
optimistic, assume I'm wrong and its 25.  So those 40 nodes can generate 
40*25 or 1000 IO requests.

A look at newegg shows that the best 7200 rpm 1T drives are giving 5ms 
as the average seek time.  Others are 15ms. That 5 to 15 seconds of just 
head-seek time.  Throwing in data transfer time into that could easy 
push it up into total latency of a minute.

Of course its just lies until I have data to back it up but I'm going to 
make a prediction that the latency performance correlates more with the 
amount of RAM and HD seek speed than it does with CPU speed.

That said there's a wildcard in the system.  I've only done a cursory 
look at the stuff that is on the IIAB disk Adam brought me but the 
indexing appears to use a python package called Whoosh that is pure 
python.

The Whoosh docs claim that just because its pure python does not 
automatically mean that it's slow.  The docs have a single point 
non-concurrent benchmark that shows that the searching is comparable to 
something non-python like xapian.  That benchmark though was on a pretty 
beefy machine.  In general python programs tend to thrash the CPU cache. 
  Better/faster (more $$) CPUs usually have more cache to keep the CPU 
fed so this could be an explanation if it turns out to correlate with CPU.

Also depending on how its done calling the searching implementation 
concurrently via the web server front end is ripe for having scaling 
problems.  If 40 search requests involve creating 40 python instances 
then thats going to be a massive increase the peak load.

> A class doing a research project on different types of reptiles using
> wikipedia for schools. Each student is to write a report of 50-100 words
> with an image of a reptile they select. Assume they search for reptiles.
> Go to the article. Select a reptile type, e.g. lizard and then download
> an image from the article.

Thanks.  This seems like a great workload to use as a baseline test.

-- 
Richard A. Smith



More information about the IIAB mailing list