News:

Support the VirtueMart project and become a member

Main Menu

Very slow store - 10,000 categories

Started by Nick Hatzinikolaou, December 07, 2013, 21:38:32 PM

Previous topic - Next topic

Nick Hatzinikolaou

Hey guys. I'm trying to set up a store and I have come across an issue with extremely slow speed in loading virtuemart pages.

The store is set up with almost 10,200 categories of bike models [make-model-year].

As you can see the page takes almost 20sec to load!
http://gtmetrix.com/reports/www.3pracing.com/CEvZLD3b

I did all the normal optimizations [gzip, css optimization on the template etc] but the speed is still horrible.

At the moment there are only 8 products, so this is not an issues. The 99% percent of the time is spent waiting on the server.
Is this strictly a server side issue or the queries executed on such a large number of categories bog down the traffic?

I'm at a loss here, any ideas before trying some code hacks I saw on other topics?

Thanks!

jjk

Quote from: Nick Hatzinikolaou on December 07, 2013, 21:38:32 PM
The store is set up with almost 10,200 categories of bike models [make-model-year].
Currently I can see only 8 VirtueMart shop categories on your site. However, are you trying to assign each product it's own category?

QuoteI did all the normal optimizations [gzip, css optimization on the template etc] but the speed is still horrible.
Using a lot of compression on a shared server sometimes slows down the site instead of making it faster. Note that Google PageSpeed don't measure your actual loading times in seconds. If you are using the Firefox browser, I would recommend to install the 'Firebug' plugin and use it's 'Net' tab to locate your time consuming features.

A few things I noticed:
- The slideshow has 3 huge images which the browser loads one after the other and which are approximately 600 kb in total. Try to use smaller ones.
- Your template loads webfonts from Google, which sometimes is very slow.
- Also, your template (I think it uses the T3 framework) loads a lot of unnecessary javascript. Try to limit that to the absolutely required stuff.
- You may also try one of the latest VM releases. The 2.0.24c and 2.0.25+ versions use cache to speed up loading the categories and unlike earlier versions you can (usually) enable the Joomla conservative cache without running into problems.
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

Nick Hatzinikolaou

Thank you for the reply.

Those are just sample products. The categories are all set-up in the back end.

I didn't notice much difference in the speed with gzip enabled or disabled, it just slimmed down the size of the page.

Excluding the first page which does have the slider, going straight to a category page http://www.3pracing.com/el/motosykletes-dromou/aprilia/af1-50 or a product page http://www.3pracing.com/el/store/motosykletes-ektos-dromou/yamaha2013-11-27-01-37-31977849119/yzf-450/yzf-450---2003/prox-steel-intake-valve-detail is very slow...

Each product will need to be associated with multiple (tens of) categories (make-model-year) and I'm worried that that will slow the site even more.

I tried some plugins to merge and compress the template's JS but it brakes the site.

I can pm you the admin codes to check it out if you want.

jjk

On your intake valve link in your above post, there is an error when the product details page loads:
Timestamp: 08.12.2013 10:42:54
Error: ReferenceError: stLight is not defined
Source File: ...3pracing.com/el/store/motosykletes-ektos-dromou/yamaha2013-11-27-01-37-31977849119/yzf-450/yzf-450---2003/prox-steel-intake-valve-detail
Line: 2868

I don't know if that one is contributing to your speed problem, but it would be a good idea to eliminate any javascipt error (I suppose its related  to a facebook button).
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

GJC Web Design

You could try giving this a whorl - It makes a big difference on all my sites

http://forum.virtuemart.net/index.php?topic=120309.msg409850#msg409850

never tested with 10,000 cats though

Google says "There are 69 static components without a far-future expiration date."

smartoptimizer will fix any on server header expires

What are the server specs?

after the intiial cache it is only a 83,6 KB download but the server response time is horrendous for the first GET - 16 sec (cat page)
25 sec prod page

the jcomments is taking a huge amount of time - doing POSTS and dowmnloading each emoticon etc etc

but it is the old rule - the more you stick on there the more resources are required - just for a product page you have 62 requests / 25sec on load /15.8 sec for first GET!!!

try here: http://test.gjcwebdesign.com/vm2t8/buy-test  36 requests / 3.6 sec onload / 0.9sec first GET

if you have a heavy resource requirement you need heavy resources (at a minimum a decent host)

http://www.3pracing.com/el/about-us 12 requests / 7.3 onload / but 4.5esc for the first GET !!!!!!  on a tiny 8kb page with no VM

If a simple Joomla content page is slow then VM will be far slower

All the signs of a crappy host..



GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

Nick Hatzinikolaou

#5
Thank you for the replies :)

I deactivated jcomment plugin for virtuemart but not much difference.
(Where did you see the waiting time on it?)

The waiting time from the server is huge! I don't know the specs (yet) since I only got the account to upload the site for testing etc, but it supposed to be a VPS...

I know the page loads way to many scripts, that's the way the template was set-up I guess, but beyond any optimization there, what's causing the server to react so slow? Bad specs or inefficient queries given the number of existing vm categories? [although that's not explaining the big waiting time for a tiny page...]



[attachment cleanup by admin]

GJC Web Design

because the waiting time is consistently bad for the first GET (it should be in the 100s of mSec - not seconds) it is to my mind the server.. lack of resources -
Sadly all hosts are not created equal and after 15 years in the business I've learnt you get what you pay for...

18 months ago I discovered a European server host that has never let me down - what ever the site I build it is quick and responsive - I never have to think about all this stuff in the post - it just works..
I always use the Smartoptimiser which often doubles the Google Speed index mainly because of the header expiry writing

No amount of tweaking imho is going to change your server..

Complain to host but first concentrate on a simple Joomla article page - then start worrying about VM and 10,000 cats
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

Nick Hatzinikolaou

I'm going to give the script a go and talk to the server guys.

Thanks for the tips! :)

FidelGonzales

I also work in powersports and have used Virtuemart for product databases of 10,000-plus products. I place products in three types of categories, including vehicle specific (Yamaha YZ450F), manufacturer specific (JE Pistons), and component category (Engine Parts). Although I have long considered creating a secondary year level for the vehicle specific category, I was concerned for the amount of categories needed.

I just started a site that will cover powersports and off-road automotive (trucks/SUV/4X4). I was considering the use custom fields for additional make/model/year functionality but would prefer the method you've used for most cases. It will be interesting to see how yours develops and whether the amount of categories adversley affects performance. Keep up the good work.