WordPress LearnDash is arguably one of the most successful e-learning platforms in the WordPress LMS world. It offers advanced features for course creation, monetization through payment gateway integration, and administration for user profiles, groups, and course assignments. It works on mobile too.
Although LearnDash is a leading player, it is very resource-intensive. By nature, applications that need to dynamically render real-time personalized content such as an LMS (Learning Management System) will require content to be largely uncached and users to be logged in to the backend. LearnDash is no exception to this inherent problem.
In this post, we’ll see why there isn’t a lot that WordPress hosting providers can do, besides matching the CPU power that is needed for LearnDash to properly function, and how Pressidium addresses these general performance issues.
How is WordPress LearnDash resource intensive?
No matter if you have a low or high traffic e-learning site you will experience technical problems once you start placing demands on it. This might be through the number of registered users, the number of courses, number of simultaneously active users, or any combination of these. These problems can range from full hardware utilization and throttling, database write problems to users experiencing severe slow-downs, even interruptions during course time.
Database throttling and transaction conflicts
LearnDash executes some long sets of SQL queries. For example, if you have a large number of users, say 20,000, LearnDash will fetch all of them even if you just want to select one profile to edit.
Basic server clustering solutions are also of little help in this case. Almost every action performed in LearnDash updates the database. When the server cluster that is serving your LearnDash e-learning site is under heavy load, the cluster server nodes are constantly writing to the database. This can lead to transaction conflicts.
In high-traffic situations, these can often result in database table locks, or a full database-lock, disallowing write access to everyone. This of course, is disastrous.
Peak CPU utilization
WordPress LearnDash by nature is a dynamic application that does not cooperate well with caching strategies. This is not LearnDash’s fault as we said in the beginning, but it does mean that you can’t simply accelerate its performance, just by caching HTTP responses.
This is so because there are logged-in users, that are in the middle of multiple-choice tests, with timers & content that needs to be uniquely rendered for them, and simply there is very little that can be cached.
So having almost all content uncached, means that each LearnDash user that is taking a test, will spawn at least, 1 backend PHP process. Imagine what will happen, if 50 users log-in nearly simultaneously!
In general, for a user to experience a smooth LearnDash session, they will need dedicated CPU resources. However, CPU demand is not constant, as each user may spend some idle time online, while doing the test. If the total amount of the backend PHP processes waiting to be served is a multiple of your total CPU pool resources, and you don’t do something drastic to lessen the load (for example, shut down some of them), an avalanche will start and you will lose the entire server.
To sum up, simple VPS setups and WordPress hosting plans that are not Enterprise will only be able to handle a few dozen of logged-in users at best. In those cases where all of the users perform some action nearly simultaneously, you’ll hit a peak, and everything will start failing.
Enterprise Architecture for WordPress LearnDash
Now that we’ve briefly touched on some of LearnDash’s performance challenges and painted a slightly disconcerting picture, we’d like to show you how we address them at Pressidium, and why our Enterprise Architecture is considered by the LearnDash community as one of the best, if not the best, platforms to run LearnDash on.
The truth is, the majority of our competitors simply discourage large LMS sites as they can not cope with the demands it places on their infrastructure. As we’ve mentioned earlier, simple VPS setups, or even basic clustering systems simply cannot deal with high traffic or with a high amount of concurrent users. This is why we do not recommend nor encourage its use on our standard plans in these cases. The only exception being for development or very small setups.
We generally recommend Pressidium Enterprise as the best option for large production sites running LearnDash. We successfully manage and operate Enterprise LearnDash installations with thousands of concurrent users.
To solve the database-throttling problem, we’ve developed certain database optimization techniques that accelerate LearnDash while maintaining High Availability (LearnDash is unfortunately inherently incompatible with multi-master High Availability databases). We call them affectionately “our secret sauce” since these techniques are highly customized and tailored exactly to our unique Enterprise Architecture.
Have in mind though, that these customizations can only be applied on Enterprise Plans since they offer a dedicated enterprise server cluster at your disposal. They can also be applied to other LMS plugins, in case you are not using LearnDash in your classroom.
Our solution to the peak CPU problem, on the other hand, is much more straightforward: add more raw CPU horsepower. This is the reason we did not use general-purpose cloud computing providers such as Google Cloud or AWS, but built our platform from the ground-up by ourselves. The result is cost efficiencies that translate to significantly more resources for our customers at similar or even lower pricing levels to our competitors:
2N+1 High Availability configuration in a load balanced 5 node dedicated server cluster with higher factors of isolation and redundancy. These enable your WordPress LearnDash site to auto-scale during traffic spikes and slashdot effects, and be highly-available and fault-tolerant.
We are proud of our platform’s LearnDash performance capabilities, since it completely alleviates the stress of LearnDash site owners, having to deal with technical problems in the middle of a session. But we are even more proud because our Enterprise Architecture supports the learning dreams and needs of LearnDash users, from all over the world.
Join Pressidium and transform your LearnDash site into a high-performance e-learning center. Share your LearnDash challenges with our engineers and request an enterprise quote by clicking the button below!
Host your WordPress Website with Pressidium!