[Part II] How to Understand and Improve Your Moodle LMS Performance

How to Understand and Improve Your Moodle LMS Performance part 2

In the first part of ‘Moodle performance’ blogs, we’ve expounded on what it means and how to understand it.  Along the same lines, we’ve spent some time digging deep into the subject. And knew what goes into this performance-thing.

In this second blog, we will look into the software side of Moodle performance. Let’s look at the first of the five software areas which have a real impact on your Moodle performance.

Before moving forward to the subject, here is a small tip. Like how you tune your musical instrument to sound melodious, you have to tune various software for the best Moodle performance.

Now, let’s move to the subject.


The regular updates in Moodle core and its efficient use enhance Moodle performance.

There are two ways it happens:

  • Technical side. It is nothing but code improvements.
  • Non-technical side. It is something how efficiently you use your Moodle LMS.

To understand the subject from the software point of view (let’s say a technical side), you have to ask a few questions. “How far does Moodle application influence Moodle performance?” is one of them.

Any application, including Moodle, is a type of software. They undergo performance testing before and monitoring afterward. So the performance is innately proportional to the application’s code and multiple other factors.

What changes in Moodle application will improve its performance then? Simple. Address the fixes such as bugs and others. This fixing happens in two ways: one at your end and the other at Moodle HQ. When Moodle HQ does, they release the improvements as ‘Moodle versions’ – which is not in your hand.

The Moodle LMS has been getting better and better over the years. Through the contributions of Moodle HQ and its community. With its evolution through Moodle versions.

These versions come up with improvements in the source code. Hence, update your Moodle to its latest version to experience better Moodle performance.

Coming to the non-technical side of Moodle performance, it’s all about how efficiently you administer your Moodle LMS. To understand this phenomenon, let me illustrate it with an example.

Think of Moodle as a house with its many compartments (= modules). To make your house look beautiful and lovely to behold, avoid unnecessary compartmentalization. In other words, remove/de-activate unnecessary modules.

As it is mentioned in a plethora of sources, do not go for high-resolution images unless it requires. And also, care should be taken when you enable filters. Enable those only required.

There may be other factors, but they involve technical jargon. Let us leave them to tech folks and move on.

#Scripting Language

Here is a very general question to ask. “Does the performance of Moodle depend on the scripting language an LMS uses for its software?”

There’s a common myth about the programming language Moodle uses, the PHP language.  The myth is that PHP performs weakly. (Hence, they think, Moodle performance depends on the scripting language)!

But the hard truth is that it partly depends on persons who write the code using a programming language. Good coders know the ropes and get the Moodle LMS to do what they want it to do at best.

Note the following points:

  • Like any other programming language, PHP updates through its versions, are released at regular intervals. From version to version, the performance of the language improves.
  • Likewise, Moodle releases its versions by fixing things in its software
  • They (Moodle HQ) follow a code of standards to write software for its LMS and for its plugins. Developers have to adhere to those standards. That’s Hobson’s choice.

If you observe the points, one way or the other, they relate to the Moodle performance (from the software side). So keeping your Moodle updated to the latest version is one solution.

Or use the latest version of the scripting language for any Moodle development.


Will your database influence the performance of your Moodle LMS? Yes, a database will. But the performance of your Moodle directly depends on the resources of a database. Ignore the type of database aside for a moment.

Why is it so? Let’s see here.

A database is where you store information (or, data of the website and the users alike) in a sequential manner.  There’s a Moodle support for MySQL and pgSQL databases in general.

There are two ways to affect the performance of your Moodle by a database:

  1. By adding more resources to it. It’s nothing but hardware.
  2. By (properly) configuring it

By adding more resources to a database, you drastically improve Moodle’s performance. That means you add more storage (more CPUs) to it. This adding of resources is quite an expensive thing to do to improvise the performance.

Then what’s the best thing to do?

By configuring your database properly, you will improve the performance of your Moodle. That’s an inexpensive thing to do irrespective of the databases. Your tech folks will know what it means when we say, ‘Properly.’

And the latest version of your database, when you install Moodle LMS, is recommendable. Check the database recommendations for your Moodle version from the documents of Moodle.


Let’s look at this illustration. For suppose you have 10, 000 learners at your organization. And some 5,000 students sign in to your Moodle at the same time (that is, Moodle concurrency). How does your Moodle LMS respond? Is it quick or slowly buffering before getting their requests done?

Consider another simple illustration.

A server serves the requests of customers or visitors. When the number of visitors increases, there’ll be some amount of delay in serving them. The same thing happens with a webserver as well. So basically a web server serves web customers with their requests.

Similarly, when the load (= the number of courses or the number of students) increases, the performance of Moodle slows down. One surest way to your Moodle performance is to improve the performance of the webserver. That is by adding more memory and CPUs to its capacity. (That’s nothing but adding more hardware!).

But, you can improve a webserver’s performance by adding caches like Redis or Memcache.

Since Moodle LMS goes with the LAMP stack in general. Apache is the most widely used web server for hosting Moodle sites.  There’re some other web servers such as Nginx, IIS from Microsoft, and more in the market.

The community support for the Apache webserver has been stopped since 2018. (Yet that server is the most widely used for a quarter chunk of the websites on the internet). That’s a sort of a drawback.

#Server OS

So, which Operating System (OS) works well for the Moodle platform? Is it Linux or Windows or still something else? How different is Moodle’s performance with Linux than with Windows (or with any other OS)?

By default, Moodle goes with the LAMP (Linux, Apache, MySQL, and PHP) stack. Because the stack is open source. And it is well-supported by a community of developers and quality analysts.

Talking about the performance of the server OS, Linux fares far better than Windows. (If you put aside the UI aspects). The best part of Linux OS is that it supports multi-users, multi-threads, and multi-processes. That’s exactly why Linux is good for boosting Moodle performance.

(Slightly inclined towards Linux? Nay. But Moodle pairs with anything open source by and large.)

Since Linux OS is an open source as well, there’s a host of developing communities to support technically. That means there will be a constant improvement of the OS, which boosts the performance.

Yet, for the sake of user convenience—not performance, people go with the WAMP stack. Windows (the server OS) is more user-friendly than Linux. There are others like macOS and Ubuntu OS. We’ll cover all servers in a separate blog.

That’s it about Moodle performance.

Read through other resources on the subject available on the internet. Plus, check out our other blogs for anything about Moodle LMS. And about custom Moodle development from us.