Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Memcached замена текстовых файлов кэша.


Recommended Posts

Привет всем.В очередной раз решил заняться снижением нагрузки в магазине, так как товары добавляются (сейчас почте 50 тыс.), одно из узким мест это кэширование информации в текстовые файлы system/cache/, а так как товаров и категорий много решил использовать модное на сегодня решение nosql в виде memcachedb.Изменил в system/library/cache.php на работу в memcachedb.Итого, сайт заработал немного быстрее. Раньше при открытии страницы была задержка около 4-5 сек, сейчас ее практически нету.Есть у кого-то опыт по внедрению Memcached?

Link to post
Share on other sites

  • 11 months later...

тоже интересует вопрос снижения нагрузки, товаров 800, но процессор грузит на 11-15% в сутки, даже не знаю, что делать. я так понимаю для memcashe нужен отдельный mysql memcache сервер?

Link to post
Share on other sites

  • 2 years later...

Включит вчера Nginx+Memcache. Товары грузятся быстро, а категории - тормоза нереальные. Бывает 5 раз подряд мгновенно загруятся, а в следующий раз как в первый раз - 10 секунд.

ii  memcached                                1.4.5-1                          A high-performance memory object caching system
ii  nginx                                    0.7.67-3+squeeze3                small, but very powerful and efficient web server and mail proxy
ii  percona-server-server-5.5                5.5.35-rel33.0-611.squeeze       Percona Server database server binaries
ii  php5-cli                                 5.3.3-7+squeeze18                command-line interpreter for the php5 scripting language
ii  php5-memcache                            3.0.4-4+squeeze1                 memcache extension module for PHP5

 

С категориями как решить ситуацию - может кто-нибудь подскажет?

Link to post
Share on other sites

Все перепроверил - оказалось, что это все проделано в сборке ocStore-1.5.5.1.1, которую я скачал с https://myopencart.com/

Но все равно, мемкэш видит какие-то изменения при перезагрузке страницы и не хочет кэшировать даже те категории, в которых только есть ссылки на подкатегории и нету товаров. Да и товары у меня в течении дня не меняются.

 

Самое интересное, что для пользователей - тормозит страшно.

Для теста http://gtmetrix.com/ - как бы все отлично

Page load time: 3.75s
Total page size: 332KB
Total number of requests: 41

Link to post
Share on other sites

Поставил вот эту штуку:

https://opencartforum.com/files/file/786-db-log/

Мне по логам показало:

2013-12-29 11:52:59 - 6.65963 |     7 | /var/www/catalog/controller/module/journal_cp.php(597)

7 запросов - 6,65 секунд

2013-12-29 11:53:07 - 1.89151 |     2 | /var/www/vqmod/vqcache/vq2-catalog_controller_product_category.php(229)

2 запроса - 2 секунды

 

Везде показало строчки:

$product_total = $this->model_catalog_product->getTotalProducts($data);

 

Пойду искать, как их удалить. Хотя в админке выключен подсчет товаров в категории.

Link to post
Share on other sites

Убрал эти медленные запросы количества. Стало быстрее, но не совсем мгновенно. Выскочило 3 медленных запроса:

2013-12-29 12:58:07 - 0.50639 |    40 | /var/www/vqmod/vqcache/vq2-catalog_model_catalog_product.php(305)

$product_data[$result['product_id']] = $this->getProduct($result['product_id']);

2013-12-29 12:58:07 - 1.86444 |     2 | /var/www/vqmod/vqcache/vq2-catalog_controller_product_category.php(229)

$results = $this->model_catalog_product->getProducts($data);

Хотя..

 

 

Во многих контроллерах вызов методов getProducts и getTotalProducts происходит парно:
$product_total = $this->model_catalog_product->getTotalProducts($data);
$results = $this->model_catalog_product->getProducts($data);

Добравив к запросу (1) параметр SQL_CALC_FOUND_ROWS можно в одном запросе не только загрузить из базы N записей, ограниченных условием LIMIT, но и подсчитать все найденные записи. Тогда запрос (2) уже будет не нужен.

Это все я перепроверил. Все рекомендации применены. Но все равно тормозит второй запрос.

2013-12-29 12:58:07 - 1.92603 |     2 | /var/www/catalog/model/catalog/simonfilters.php(179)

$rows = $this->model_catalog_product->getProducts($data);

Фильтр товаров. Отключить не могу, т.к. он нужен )

Надо как-то ускорить. Есть рекомендации?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.