so we are looking at more widespread adoption and usage of Moodle in the coming year... one of my main priorities is to make page load times 'responsive' so that the user experience is fluid.
On 1.9 ( we are running wamp, but other am interested in all stats..), what are expected/ normal / good page load times?
- front page
- course page
- gradebook (assume 50 students, 30 assignments)
we are running APC, but the performance footer never reports the cache hit etc - though APC admin page reports about 98% at the moment.
At the moment I am finding in general the frontpage seems to take 2 secs to load, the course page can take between 0.5-2 secs, and the gradeook in teacher view is about 4-7 seconds. Performance does seem to vary between these amounts. I have followed the instructions in the wiki on performance (http://docs.moodle.org/en/Performance).
This is on a pretty light load, (about 20 students in a class using it at the same time). At times CPU seems to spike 100%, but only for brief moments, memory usage seems to be healthy.
So... any way to get it faster (would love sub-second load times consistently!)? or is this normal / good? What are other people's experiences?
I am still left wondering what 'good' performance of moodle is generally perceived to be? I know it is dependent on configuration, hardware, and usage, but if anyone has some general ballpark figures to share - I am sure I am not the only one that would find it useful?
To put it in perspective - the performance docs talk about HOW to get better performance, but with no reference to actual performance stats...
so - if anyone is willing to share ballpark figures - I know it would help me (and I am sure others as well) know what performance to expect in general...
I'd agree with your original point that it's difficult to provide a comparison as everything depends on configuration issues. However, there *is* a value in providing a target/benchmark comparisons so that others can see what kinds of performance can be achieved. So, here's my contribution for a site that I've done some optimisation on .
Can you give an indication of the (broadly speaking) optimisations you did? Which ones gave you the largest improvement in speed?
If I am able to get those times... I will be quite happy - does the site sustain those speeds under load?
Your page load times are maybe a bit slow on an "empty" server, but quite ok if there is load on the server. We have similar page loads times with "medium" load.
- installed eAccelerator
- added more memory to the main server (from 4 Gb first to 8 Gb and then to 10 Gb)
- made sure that MySQL query cache is on
- allocated more memory to MySQL now that we had some to spare
- noticed that our DB was missing some indexes and added them
- upgraded the PHP version, ended up with less memory taken per thread
- tweaked Apache settings, like the KeepAliveTimeout to 2 seconds
Thankyou, that is helpful.
Of course with generalities there are always caveats, but... have you found the cumulative effect of the smaller tweaks to have made a noticeable / pleasing impact on performance? (i guess that means noticeable to you, or the users.. )
Aside from that, if Linux is an option you will find that your Moodle runs a lot faster on the same server hardware over the WAMP setup.
How long these pages take to load is also a factor of what you have on them. The other thing we have noticed is that as you scale up such as by adding a seperate DB server, that you will see these page load times increase a bit on average during off-peak testing do to the latency of taking the DB requests out over the network, but that the application will scale better in terms of the number of concurrent users.
I would say that the numbers you have posted are reasonable performance wise in my experience, but that it is also possible to tweak a system to perform faster as well.
I don't have experience with Linux, but have started experimenting to see what the learning curve will be. It seems manageable. Maintainability is a concern though.
ok - here is a question - you mentioned content of the pages playing a role in page load time, which is sensible... what is the role of caching in this circumstance, assuming that most of a page is cached data (either db query cache or APC etc)... does that become nearly a non-issue, or is it still significant in your experience?
I would not use the page load time as a criteria for course limiting course length. There are other factors such as instructional design that limit good course design more quickly than the likely impact on page load times on a well tuned server.
The other factor that limits caching of course is the amount of RAM. The more complex and larger your datasets the more RAM will be consumed to cache those. You will find a lot of posts on these forums discussing the importance of having adequate RAM in your system. This is especially true as you start to tune your server.
Basically the caching will have a dramatic impact on performance, but there is still no free lunch. Some resources will be used on the server with each page load. The tuning can lower the page building times on the server and or increase the number of concurrent users you can support, but each view costs a little bit of load on the server. Its just a lot less when optimized then when not optimized.
Excellent points, Jonathan. At larger numbers of users, it's also essential to provide dedicated skillsets in DBA and SysAdmin - these need to be people with skill in building and maintaining an LMS system - which type of system by it's nature does a much higher degree of database writes than systems that most general purpose web site sysadmins are used to.
This is for an LMS system in general - institutiuons who host their own large scale Angel or Blackboard installation also generally have several staff dedicated just to DBA/SysAdmin roles - actively tuning the database and the server on an ongoing basis. As the usage of the LMS grows it becomes an enterprise system on the scale of importance and complexity of the ERP/SIS system the institution uses. Institutions typically dedicate several staff per 10,000 users to their backend ERP system - just to maintaining the backend. An enterprise LMS needs similar dedication of both hardware and staff resources to run well for 10s of thousands of users.
A big pain point many folks I consult with have is when they move from an experimental, lightly used system that is staffed by volunteers or 1/2 or quarter FTEs to an increasingly more heavily used system relied on by large numbers of the faculty, staff, and students 24/7/365.
ERP/SIS implmenetations went through a similar sudden growth from lightweight use to being heavily used for online registration, self-service of various institutional functions (add/drop, password change, bill paying, etc.) in the last decade - so these database intensive, critically important systems can provide some baseline information for staffing levels, hardware costs, etc.