So your webshop seems to be significantly slower than it used to be and you have no idea what's going on.
There could be tons of reasons why the shop is suddenly a lot slower than expected. Most often this is due to a high load on the Hypernode, which in turn can be caused by a number of reasons. Below you will find some initial checks one can do in this case.
TABLE OF CONTENTS
- Check if the Caches Are Enabled
- Check if Magento 2.x Is Running in Production Mode
- Run htop to See What Is Causing the High Load
- Check Modules and Extensions
- Unable to Find a Cause?
Check if the Caches Are Enabled
# Quickly check if caches are enabled, run this command from Magento root folder magerun cache:list #Magento 1 version magerun2 cache:list #Magento 2 version
If the caches are enabled proceed to the second check.
If not enable the caches.
# To enable all caches, run this command from Magento root folder magerun cache:enable #Magento 1 version magerun2 cache:enable #Magento 2 version
Now wait for a bit to see if the high load is dropping with the command
Check if Magento 2.x Is Running in Production Mode
# To check whether Magento 2.x runs in Application Mode 'production', run the following command from the Magento root folder magerun2 sys:info
When you run this command the fourth or fifth line of the output will tell you in what Application Mode Magento is running. Since the developer and default modes will log more debug information, these modes are significantly slower than production mode. When you see that the Magento installation runs in one of the slower modes, simply change this to production.
htop to See What Is Causing the High Load
In this example
mysqld seems to be causing a significant load:
mytop to check the current running queries:
In the above example there seem to be quite some queries stuck. Restarting MySQL might be a fix in this case. You can do this by running the command below:
hypernode-servicectl restart mysql
Most of the queries in the example above, "INSERT INTO `search_tmp`", are a known bug. Restarting MySQL is a quick fix, but the issue could reoccur any time.
php-fpm: pool www seems to be causing the high load. Proceed with running
lifefpm to check the live feed of incoming traffic.
- Is all the traffic legit?
- Check if there are any modules/plugins enabled or installed, this might cause extra load
- Do you have a sale or sent out emails about the sale? An upgrade might be the best solution here
- Do you notice non-valid traffic, for example from several countries you don't sell to? Here's how to block specific countries.
livefpm aren't the cause, check for other processes in
htop. It could be also be the following:
- Stuck cronjobs
- Composer processes
- Custom processes
Check Modules and Extensions
Please note that a slower performance is not always caused by a high load on the Hypernode. There is a number of other reasons which may affect the performance.
Some modules/extensionswill connect to external services. These services might not be reachable causing all processes on the Hypernode to hang/or slow down (e.g. Kiyoh reviews). It may be worth checking the
php-slow.log to spot such issues. Check this article from our support documentation for more information on this.
Some will use an extravagant amount of database queries, which slows down the whole website. Unfortunately this isn't easy to spot without analysing the what a
php-fpm process is actually doing.
Unable to Find a Cause?
Did you check everything mentioned above? Please feel free to contact Support so we can take another look.