Nota: Pendiente de Traducir. ¡Anímese a traducir esta página!.     ( y otras páginas pendientes)

Moodle can be made to perform very well, at small usage levels or scaling up to many thousands of users. The factors involved in performance are basically the same as for any PHP-based database-driven system, and Moodle's design (with clear separation of application layers) allows for strongly scalable setups. See Grandes Instalaciones for some large Moodle installations.

Large sites usually separate the web server and database onto separate servers, although for smaller installations this is typically not necessary.

It is possible to load-balance a Moodle installation, for example by using more than one webserver. The separate webservers should query the same database and refer to the same filestore area, but otherwise the separation of the application layers is complete enough to make this kind of clustering feasible. Similarly, the database could be a cluster of servers (e.g. a MySQL cluster).

Rendimiento del servidor

  • La cantidad de RAM del servidor web es el factor más importante del rendimiento del serviridor - cuanto más posible mejor (por ejemplo, 4GB)
  • Linux o Unix son los sistemas operativos recomendables para un servidor. Trabajan mucho mejor que los servidores Mac OSX o Windows ante cargas voluminosas.
  • Es muy recomendable usar un Acelerador PHP para aligerar el trabajo de la CPU, como Turck MMCache o PHPA.
  • El rendimiento de PHP mejora si está instalado como un módulo Apache (mejor que como CGI).
  • En un sistema Unix/Linux, el rendimiento puede mejorar mucho si se prepara para poder utilizar la compresión y descompresión de ficheros accediendo a los comandos zip/unzip (mejor que utilizar librerías basadas en PHP para el tratamiento de ficheros zip) - vaya a Admininstración/Configurar/Variables e indique el camino de los ejecutables relacionados con las operaciones. (Semejantemente, indicando el camino hacia du mejorará la velocidad de Moodle al presentar los contenidos de los directorios.)
  • Observe que usar conexiones web seguras (https ante http) lleva consigo un trabajo más intenso, tanto para el servidor como para el cliente - especialmente porque el sistema de /caché/ no se puede utilizar con la misma eficacia, y el número de peticiones a ficheros aumenta drásticamente. Por esa razón, no es recomendable usar https para todas las páginas Moodle. Puede activar https para la pantalla de identificación de usuarios, simplemente desde la página de configuración de Moodle.
  • Puede mejorar el rendimiento usando un servidor light-weight lighttpd combinado con PHP en modo fastCGI en lugar de Apache, debido al uso mucho menor de la memoria. Un proceso de Apache necesita más memoria RAM que lighttpd con todos sus procesos fastCGI juntos. Piense que eso podria no ser una buena solució si puede procurarse un servidor muy completo y poderoso, porque la administración requiere un poco más de tiempo
  • Piense en la posibilidad de reducir MaxRequestsPerChild en httpd.conf hasta reducirlo a 20-30 (si

if you set it any lower the overhead of forking begins to outweigh the benefits). Además compruebe el parámetro Also check the memory_limit en php.ini, redúzcalo al menos a 16M. (Sugerencias de Rory Allford)

Database performance

Performance of different Moodle modules

Moodle's activity modules, filters, and other plugins can be activated/deactivated. If necessary, you may wish to deactivate some features (such as chat) if not required - but this isn't necessary. Some notes on the performance of certain modules:

  • The Chat module is said to be a hog in terms of frequent HTTP requests to the main server. This can be improved if you're using a Unix-based webserver by running the chat in daemon mode.
  • Brief report on performance for 55 students simultaneously using Quiz
  • The Moodle cron task is triggered by calling the script cron.php. If this is called over HTTP (e.g. using wget or curl) it can take a large amount of memory on large installations. If it is called by directly invoking the php command (e.g. php -f /path/to/moodle/directory/admin/cron.php) efficiency can be much improved.

See also