as per our architecture, we have a web server(Apache) running on one machine and my database(MySQL) running on different machine. The communication between these two machines in over internal network (without any firewall or any gateway).

We have a database heavy site with around 3000 products and the number is expected to grow. But the problem is that the site is taking too much of time to load (~30 sec). the waterfall diagram in browser shows that first response from server takes around 24-25 seconds and then the complete page loads in 30 seconds.

Images of the products are not heavy and also there is no need for CDN as the server location is in same geographical area.

the site is hosted on a private cloud

the score on GTMetrix is 96%

Any pointers to debug the issue will be much appreciated

  • GTMetrix measures site load performance, so how at 96% do you have load time issues??
    – suspectus
    Sep 3, 2019 at 10:11
  • Yes Load time issue on server Sep 3, 2019 at 10:19
  • Turn on the slowlog in the database. More details: mysql.rjweb.org/doc.php/mysql_analysis#slow_queries_and_slowlog
    – Rick James
    Sep 3, 2019 at 17:08
  • What is the complete url for the request taking 20+ seconds. You can feed the url to GTMetrix for scoring of the 'nasty' url. Scoring the HomePage of the website is a whole different story than a 'data retrieval' page. Sep 5, 2019 at 0:20

1 Answer 1


Your TTFB (time to first byte) is too high.

You need to profile the code and there are several options: new relic, tideways or a built-in profiler. I prefer tideways, it's free for the first 2 weeks as I remember correctly.

You can try disabling 3rd-party extensions one by one and see which plugin slows the site the most.

3k products is doable for Magento 2, I maintain sites with more than 200k SKUs and it runs great.

If interested, see my other 30 tips to make Magento 2 run faster.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .