Перейти к содержанию
l.slava

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

Рекомендуемые сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я для своих проектов использую связку Nginx+Memcache+APC. Все это дело крутится на среднем VPS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Включит вчера 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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все перепроверил - оказалось, что это все проделано в сборке 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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);

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Убрал эти медленные запросы количества. Стало быстрее, но не совсем мгновенно. Выскочило 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);

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.