[Building Sakai] How does Sakai respond to an overloaded database?
R.P. Aditya
rpaditya at umich.edu
Thu Dec 17 07:29:59 PST 2009
On 2009-12-17, John Bush <john.bush at rsmart.com> wrote:
> Well, we've been finishing up some load testing over the last few
> weeks and our traction with oracle has been very different than
> mysql. Here's what I'd recommend.
so what does the test do and what are the stats of the test with and
without 3cp0 -- db response time, hits per second, how many connections
used in Sakai versus Active/idle connections in Oracle?
we give each of our 5 appservers 50 connections to the db and at peak
DBCP reports only about 8 in use per appserver (and Oracle much less
since it doesn't count the time used sending the data back to the client
as "ACTIVE"/on-cpu time) -- furthermore we see db cpu entirely
proportional to activity so whatever overhead DBCP has is "fixed"
Adi
> #1 switch to using 3cp0
> #2 give yourself gobs of connections per app server, like at least 100
>
> We saw a dramatic drop in database load and solved connection
> exhausted problems by switching from dbcp to 3cp0. I attribute this
> to c3p0's statement pooling, but am not certain. I believe there is a
> way to enable that with dbcp, but I don't think thats setup by
> default, and we haven't tried it out. For MySQL we haven't needed
> this, and I think because the MySQL driver supports caching prepared
> statements ootb, but I'm guessing. Empirically, I can tell you, test
> bad with dbcp, good with 3pc0, using roughly the same connection
> properties. The theorists can debate it all they want, but I saw it
> help when it was the only change made. Play it safe, switch to 3cp0.
>
> For the load testing we've done with Oracle and MySql, we've needed
> way more connections than what I hear some people recommend. Bump up
> the ulimit on the database and app servers, and beef up the
> connections. FYI, we are running high load tests (3k concurrent users
> pounding for extended amounts of time).
>
> If you want some specifics on 3cp0 tuning, let me know, I'll share
> whats working for us, I can also tell you how to configure it using
> the sakai-configuration.xml vs modifying any components.xml, which is
> super handy. Many thanks to Ray Davis, see http://confluence.sakaiproject.org/display/REL/More+Flexible+Sakai+Configuration
> , this is my favorite feature of 2.6.
>
> On Dec 9, 2009, at 1:49 PM, Joshua Swink wrote:
>
>> We had a near-outage recently when the database server got heavily
>> loaded. We had an unprecedented number of users on Sakai. Sakai was
>> behaving like this:
>>
>> - very slow page loads (up to 10 minutes)
>> - system load factor very high (10-15)
>> - database connection pool being exhausted (one tomcat did exhaust it
>> and needed to be restarted; the others survived)
>>
>> Obviously we need to add better hardware.
>>
>> What I want to know is whether the application's behavior can be
>> attributed to the user load alone, or if the database's increased
>> response time could be responsible. One hypothesis is that the
>> application servers would have been fine if the database had been
>> responding in a timely fashion. Another is that the usage would have
>> led to Sakai bogging down even if the db had been fine.
>>
>> Any thoughts?
>>
>> Josh
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org
>> with a subject of "unsubscribe"
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"
>
More information about the sakai-dev
mailing list