Jump to content
Sign in to follow this  
Rotarymonkey

Оптимизация сайта под большое кол-во товаров

Recommended Posts

Добрый день.

Итак, имеем Opencart 1.5.6

Имеем хостинг с максимально разрешенной нагрузкой на БД в 5к секунд в сутки.

Очень долго ругались с хостером, в итоге проблема действительно на нашей стороне оказалась и оказалось, что сайт генерит слишком большОе кол-во запросов к БД, что перегружает сервер и сайт падает с 504 ошибкой. В итоге хостер поставил на нас кэширующий шаблон, что сломало мне мозг и сайт почти полностью, но после нашли откуда ноги растут.

На данный момент отключены все функции посчета общего кол-ва товаров на сайте, чтобы снизить нагрузку на БД. Как следствие, на сайте пропала пагинация.

Мне нужно оптимизировать движок магазина под наше кол-во товаров, вернуть пагинацию без лишней нагрузки на БД. Я надеюсь, что все эти действия приведут и к уменьшению времени загрузки страницы. Сейчас оно по данным gtmetrix.com 7.9 сек.

Общее кол-во товаров на данный момент около 2к.

Share this post


Link to post
Share on other sites

2000 товаров ?
Да это вообще "ничего" для нормального хостера

 

Смените хостера лучше. И установите кешировщик какой нибудь с форума. Boost к примеру, Lighting или еще какой

Share this post


Link to post
Share on other sites

так это совсем не количество )

поставьте https://opencartforum.com/files/file/786-db-log/

и скиньте мне лог запросов. будет думать что делать

При установке заменяю require_once(DIR_SYSTEM . 'library/db.php'); на require_once(DIR_SYSTEM . 'library/db_log.php');

И сайт перестает работать.

 

2000 товаров ?

Да это вообще "ничего" для нормального хостера

 

Смените хостера лучше. И установите кешировщик какой нибудь с форума. Boost к примеру, Lighting или еще какой

Хостер утверждает, что у нас идет очень большое количество запросов с сайта. Хостер beget. Плохого о нем не слышал. 

Share this post


Link to post
Share on other sites

ставьте этот

db_log(opencart1.5.6.4).zip

beget ни хороший и не плохой, но по моему мнению для ИМ не подходит. вот например, вы пишите что сайт перестал работать, я попытаюсь додумать, вы видите пресловутый белый экран.

а это значит хостер не побеспокоился включить вывод ошибок и неизвестно сколько времени уйдет что бы эти ошибки всё же включить.

Share this post


Link to post
Share on other sites

ставьте этот

db_log(opencart1.5.6.4).zip

beget ни хороший и не плохой, но по моему мнению для ИМ не подходит. вот например, вы пишите что сайт перестал работать, я попытаюсь додумать, вы видите пресловутый белый экран.

а это значит хостер не побеспокоился включить вывод ошибок и неизвестно сколько времени уйдет что бы эти ошибки всё же включить.

Сайт как бы не перестает работать, он продолжает открываться в 80% случаев, но время отрисовки страницы может доходить до 2-х минут или 504 ошибка.

Они мне собирали статистику запросов к БД в течении 5 часов из которых админ хостера увидел, что проблема в подсчете кол-ва товаров, закомментировал строки функций подсчета, в т.ч. функции пагинации. После чего нагрузка на БД упала в разы

Edited by Rotarymonkey

Share this post


Link to post
Share on other sites

ставьте этот

db_log(opencart1.5.6.4).zip

Да, я этот вариант и устанавливал. Вижу пресловутый белый экран, вместо главной)

Share this post


Link to post
Share on other sites

в общем проблема в хостере

Если снять комментарии с функций подсчета кол-ва товаров, то нагрузка возрастет.

Соответсвенно, если я сейчас верну все "в зад", как было) То у хостера поднимится нагрузка. Если нет, то была проблема в хостере о которой мне не сказали, но устранили. Так получается?

Share this post


Link to post
Share on other sites

в общем проблема в хостере

 

Однозначно причем!

Хостеры часто не правильно настраивают "очередь запросов"  (паранойики боятся DDoS)

DDoS фильтры тоже

 

Просто не умеют отражать атаки DDoS - поэтому решили примитивно все запросы в очередь ставить  и если она длинная удалять "конец"

 

2000 товаров - это "детский лепет" должен быть для любого хостера

Share this post


Link to post
Share on other sites

Однозначно причем!

Хостеры часто не правильно настраивают "очередь запросов"

 

2000 товаров - это "детский лепет" должен быть для любого хостера

Ну а если же нет?)

Share this post


Link to post
Share on other sites

Ну а если же нет?)

Хостеры часто не правильно настраивают "очередь запросов"  (паранойики боятся DDoS)

DDoS фильтры тоже

 

Просто не умеют отражать атаки DDoS - поэтому решили примитивно все запросы в очередь ставить  и если она длинная удалять "конец"

Причем они вообще офигели... если очередь больше определенного количества то они ставят задержку на этот запрос, в соответствии с тем  каким стоит в очереди запрос т е с коэффициентом задержки!

 

В итоге может быть на ваш запрос к серверу MySQL поставить задержку в секунду на каждый последующий запрос

 

Идиоты просто - низкая квалификация админов хостера

Share this post


Link to post
Share on other sites

если там вместо ошибки пользователю выводится "белый экран" о чем вообще можно дальше разговаривать?

Share this post


Link to post
Share on other sites

Поэтому db_log не показатель

Он может показать самый примитивный запрос с выполнением более 5 секунд даже

Что здесь "оптимизировать"

 

Да opencart генерит много запросов. Но они легкие! И гораздо легче одно "монстра"

 

Так что хостера менять

 

Но они это делают спецом, чтобы пользователи переходили на VPS

Короче что сказать - мудаки

Share this post


Link to post
Share on other sites

были произведены изменения в файлах

catalog/controller/module/category.php

catalog/controller/common/header.php

catalog/controller/product/category.php

Это писал хостер.

В файлах category.php я в обоих нашел закомментированные строки. Убрал комменты. Но в файле header.php комментов нет и понять, что он там менял мне не удается. Пагинации так и нет(((

Share this post


Link to post
Share on other sites

markimax, я и не говорю что db_log панацея, но он может дать представление о том что происходит. какие запросы выполняем магазин и как долго они выполняются.

Share this post


Link to post
Share on other sites

Это писал хостер.

В файлах category.php я в обоих нашел закомментированные строки. Убрал комменты. Но в файле header.php комментов нет и понять, что он там менял мне не удается. Пагинации так и нет(((

 

Офигеть - уже хостеры патчат файлы opencart!

Да к моНАХам такого хостера

Share this post


Link to post
Share on other sites

markimax, я и не говорю что db_log панацея, но он может дать представление о том что происходит. какие запросы выполняем магазин и как долго они выполняются.

Да я не имею ничего к db_log

Суть в том что он не поможет даже когда хостер [censored]

:)

 

Я видел когда SELECT * FROM oc_language выполнялся 10 секунд (так как его "поставили с задержкой в "очередь" хостер) :)

Где было две записи

Share this post


Link to post
Share on other sites

Товарищи, помогите вернуть пагинацию)

Хостинг буду менять, однозначно. Я с ними месяц воевал, чтобы хоть как-то понять в чем причина.

Share this post


Link to post
Share on other sites

Марк, этот хостер сломал паджинацию ))

https://opencartforum.com/topic/51629-оптимизация-сайта-под-большое-кол-во-товаров/?do=findComment&comment=452211

 

:ugeek: :-D

Я в шоке от таких хостеров

Share this post


Link to post
Share on other sites

Товарищи, помогите вернуть пагинацию)

Хостинг буду менять, однозначно. Я с ними месяц воевал, чтобы хоть как-то понять в чем причина.

А как ?!

 

Хостер то все там поломал

Как теперь искать то. :ugeek:

 

Бекап восстанавливайте до того момента как туда полезли дилетанты хостера

Share this post


Link to post
Share on other sites

А как ?!

 

Хостер то все там поломал

Как теперь искать то. :ugeek:

 

Бекап восстанавливайте до того момента как туда полезли дилетанты хостера

Файлы восстановил, посмотрю, что будет теперь с нагрузкой.

Почему подумал про оптимизацию. Тут наткнулся на тему, сейчас не найду уже где, что стандартный модуль категорий генерит слишком много запросов и это тормозит работу соответственно.

Share this post


Link to post
Share on other sites

Файлы восстановил, посмотрю, что будет теперь с нагрузкой.

Почему подумал про оптимизацию. Тут наткнулся на тему, сейчас не найду уже где, что стандартный модуль категорий генерит слишком много запросов и это тормозит работу соответственно.

Поставьте для начала кешировщик Boost или Lighting

Такой себе инструмент "бита" для  хостера вымогателя VPS

Share this post


Link to post
Share on other sites

Хостер то все там поломал

Как теперь искать то. :ugeek:

 

Бекап восстанавливайте до того момента как туда полезли дилетанты хостера

у beget-a это по хочу часто в последнее время.

На прошлой неделе тоже такая беда с одним сайтом...нашел кучу переименованных файлов, а они утверждали что ничего не делали

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.