A class of 30 students cannot use the system at the same time because of the apparent load on the MySQL server... Any ideas...
We ran a wireshark capture during several class attempts to logon and work and it seemed that the amount of traffic between the web and db server was high, but we don't have any old logs to compare it with.
|unicode||is required to be installed/enabled.||OK|
|database||mysql||version 4.1.16 is required and you are running 5.0.24||OK|
|php||version 4.3.0 is required and you are running 5.1.6||OK|
|php_extension||iconv||is recommended to be installed/enabled||OK|
|php_extension||mbstring||is recommended to be installed/enabled||OK|
|php_extension||curl||is recommended to be installed/enabled||Check|
|php_extension||openssl||is recommended to be installed/enabled||Check|
|php_extension||tokenizer||is recommended to be installed/enabled||OK|
- Installing the optional Curl library is highly recommended in order to enable Moodle Networking functionality.
- Installing the optional OpenSSL library is highly recommended -- it enables Moodle Networking functionality.
Have a read through the bug notes there, and you'll find instructions on how to get detailed performance profiling info. If you are seeing slow pages, we want to know the profiling numbers for those pages...
But this doesn't show me the query info. How do I turn on the DB stats that is talked about in the Tracker???
define('MDL_PERFDB' , true);in you config.php file (you can look at config-dist.php for more detailed information).
If I have a class of 30 students trying to access this at the same time wouldn't I have almost 7000 queries? I'm guessing that could slow down our site.
version:Moodle 1.8 + (2007021505)
We have final exams for these students starting next week and If I can't get this working by the end of the week I'm going to have to role back to 1.6.
You can find it here
I don't know if it is going to solve your issues, sorry.
We have just completed the upgrade to Moodle 1.8.1 (also upgraded php to 5.2.0 and Mysql to 5.0.37 and we have noticed a significant drop in speed. We are on a similar setup in that it is a Windows 2003 server but we are using Apache.
That script runs executes the mysql commands, CHECK TABLE, ANALYZE TABLE and OPTIMIZE TABLE (see http://dev.mysql.com/doc/refman/5.1/en/table-maintenance-sql.html). These are useful for keeping the Moodle database in good running condition and I remember reading on the MySQL website that they recommend running these every month or so - we do it during our half-term break and after each upgrade which requires a database change.
The script re-organises the indexes in the database, which can improve speed. However, the problem with speed may be related to missing indexes on the upgrade - which the script cannot help out on . Check for any of these by clicking Site Administration -> Miscellaneous -> XMLDB Editor -> Check Indexes. There may be an output produced which you should run against your Moodle database by pasting into your mysql client program.
Apart from this, be sure to use the cacheing that's included in Moodle 1.8.x. The settings are inside Site Administration -> Server -> Performance.
Then there is also the usual gotcha: incompatible blocks. Check in the Modules & Plugins database that all the blocks you've added are compatible with Moodle 1.8.
Does this improve things?
Wow - thanks for this. I shall work my way through it and see what happens. I have just brought up Site Administration -> Miscellaneous -> XMLDB Editor and I think I must have a language pack missing, lots of square brackets and no check indexes option.
With debugging turned on it gives me reams of closely packed type containing all kinds of strange looking symbols below the phrase 'MySql server has gone away'. Something tells me this isn't right.
At the end of the type there is a list of 42 normal looking statements about the database then the 43rd item saying MySQL server has gone away and then under that more of the debug code which says:
MySQL server has gone away
SELECT * FROM mdl_block_instance WHERE pageid = '0' AND pagetype = 'admin' ORDER BY position, weight
- line 677 of lib\dmllib.php: call to debugging()
- line 601 of lib\dmllib.php: call to get_recordset_sql()
- line 882 of lib\dmllib.php: call to get_recordset_select()
- line 907 of lib\blocklib.php: call to get_records_select()
- line 440 of lib\blocklib.php: call to blocks_get_by_page()
- line 2690 of lib\adminlib.php: call to blocks_setup()
- line 111 of admin\xmldb\index.php: call to admin_externalpage_print_footer()