We use cookies to improve your experience. No personal information is gathered and we don't serve ads. Cookies Policy.

ExpressionEngine Logo ExpressionEngine
Features Pricing Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University
Log In or Sign Up
Log In Sign Up
ExpressionEngine Logo
Features Pro new Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University Blog
  • Home
  • Forums

Channels performance

News and General

web-admin's avatar
web-admin
20 posts
6 years ago
web-admin's avatar web-admin

Hi guys,

I have very important - from my point of view - question.

On main page I have 3 sliders and section where I load 25 items from channel (via LowReorder). The sliders work the same way (channels via LowReorder) and there is max. 30 items inside each of them. So togheter I load max. 100 items (each with graphic) from 3 channels. Unfortunately, then the website slow down dramatically. NewRelic says that my main page is loading for 30-40 seconds!

Question is, why 100 people destroying my website? Why channels are so slow?

I use CDN, I use cache tags for channels .. EE debugger shows me the first load generates 91 queries and 8.1mb memory usage, the second one only 35 queries and 2.6mb memory usage. On the main page I’m loading also json file with 700 items or more. But this json is full cached by CloudFlare. Do channels work even in this case?

Thanks for your help.

       
Derek Jones's avatar
Derek Jones
7,561 posts
6 years ago
Derek Jones's avatar Derek Jones

Sounds more like an environmental problem to me. Is the 30-40 seconds including delivery and rendering? Or is ExpressionEngine reporting 30-40 seconds of PHP and MySQL execution? You might need to create some reduction template to further identify the problem, using only native features and adding things in one at a time until performance becomes a problem.

       
web-admin's avatar
web-admin
20 posts
6 years ago
web-admin's avatar web-admin

Thanks for your answer Derek.

I replaced all channels by SQL module and the number of queries dropped to 40 (2,9MB memory). With tag caching this number futher reduced to 35 queries and 2,7MB.

I think that’s all what I can do and for me that’s almost perfect. However I still don’t understand why channels has been designed that way and why they overload the page…

Thanks.

       
Derek Jones's avatar
Derek Jones
7,561 posts
6 years ago
Derek Jones's avatar Derek Jones

Your workaround should not be necessary on a properly configured server. The Channel Entries tag is the staple of the software and does not have performance problems like you describe. Your optimizations have effectively removed any advantage using a CMS has given you, and your site will be unmaintainable in the future. Why not look for the underlying problem instead of making an assumption (that the Channel module is at fault) and address that issue? Step back for a moment and realize that if what you assume you have found is true, that the tens of thousands of sites powered by ExpressionEngine for 15 years would have the same problem.

       
web-admin's avatar
web-admin
20 posts
6 years ago
web-admin's avatar web-admin

I totally agree. CMS like EE could not create issues like that. I’m thinking about server all time and from a long time but this part of job is not under my jurisdiction (administrator’s telling me all time that server is set up well etc.). For me that’s very strange when 100 people on the site at the same time completly overload the website and slow it down so dramaticaly.

So what is the most important if we’re talking about server configuration (other than I can find in documentation)? What should I ask administrators about?

       
Derek Jones's avatar
Derek Jones
7,561 posts
6 years ago
Derek Jones's avatar Derek Jones

Sounds like an issue with concurrency or total available resources. If you have authorization to, it might be a simple test to back a backup of your database and set up a staging server in another environment. Either somewhere with managed hosting like Nexcess, or if you are an experienced admin, maybe somewhere like DigitalOcean.

       
web-admin's avatar
web-admin
20 posts
6 years ago
web-admin's avatar web-admin

Yes, that’s good idea. And after that to make a performance test.

Thanks Derek, you confirmed my assumptions.

       

Reply

Sign In To Reply

ExpressionEngine Home Features Pro Contact Version Support
Learn Docs University Forums
Resources Support Add-Ons Partners Blog
Privacy Terms Trademark Use License

Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.