[Server-devel] Datastore & backup - request for help
Martin Langhoff
martin.langhoff at gmail.com
Thu May 22 00:16:35 EDT 2008
On Thu, May 22, 2008 at 3:43 PM, John Watlington <wad at laptop.org> wrote:
> That question was asked at the school server presentation
> today, by someone from Teaching Matters (IIRC) who knew
> of you. They commented that 1GB seemed very low for 100
> students where Moodle was involved.
That's for an untuned setup. Once you get rid of synchronous stuff
(moodle-based chat) usage of Moodle is very async (forums, wikis)
except for a few cases:
- "everyone do this mod/quiz exercise/exam... clock starts counting now!"
- everyone download this now
- everyone do this mod/scorm exercise now
Which are all variations on a theme. The "everyone" above is a group
that I assume will max at around 40 (a classroom), so our interesting
"simultaneous users" scenarios are in multiples of 40.
For moodle and similar webapps, the main problem is apache/php memory
footprint, which some back-of-the-envelope numbers say are:
- A fixed footprint for PostgreSQL. I'd like to tune Pg to use 10% of
phys RAM (~100MB in a 1GB machine). But we might be able to drop that
to 5% as we know our data sizes won't be large. (Of course, Pg lean on
kernel buffers for indexes and such.) I need to test Pg perf with
various tunings there.
- Apache/PHP shared mem will be ~5MB, unshared will be anywhere
between 12 and 25MB each process. Even with 40 "simultaneous" users
logged in, I doubt we'll have more than 20 apache processes busy at
any given time (we will need a memory-efficient reverse proxy in front
to offload serving to slow clients).
Memory *is* tight for the "we all now click on the big red button"
scenario, and I'll do some hard-nosed tuning to help cope with that.
For normal usage... we're way overpowered.
And here I have to agree with jg, a proxy (reverse and fwd) that is
smart wrt memory mgmt will save the day. My former colleages @
Catalyst are doing more tuning of Moodle's caching headers, so the
reverse proxy can serve more stuff without even looking at Apache.
As a side note - many parts of our infrastructure (of _any_ network
infrastructure) break in the "we all now click" scenario. In the past,
when I had opportunities to do train-the-trainer sessions, I used them
to explain how bad that is for network services, and how a little bit
of indirection - tell users to "read the instructions and click on the
button", for example - staggers the clicks enough that "everything
just works".
Modern networks aren't built to deal with thundering herds, unfortunately.
> I pointed out that you were on the case, and they were mollified.
:-)
> Out of curiosity, what is the testing procedure for this ?
I usually do a mix of
- ab on some "heavy" URLs
- use jmeter to collect a few real sessions and then replay them on
load-test mode
cheers,
m
--
martin.langhoff at gmail.com
martin at laptop.org -- School Server Architect
- ask interesting questions
- don't get distracted with shiny stuff - working code first
- http://wiki.laptop.org/go/User:Martinlanghoff
More information about the Server-devel
mailing list