Размещение /wa-cache/ в оперативной памяти

Озадачился я, еще чуть ускорить проекты на шоп-скрипте, для больших магазинов и решил попробовать разместить wa-cache в оперативной памяти, ее все равно у ВДС девать некуда, при правильных настройках пару гигабайт всегда найти можно.

В файле /etc/fstab - добавил такую строчку:

tmpfs /полный_путь/путь_до_сайта/wa-cache tmpfs size=2G 0 0

Чтобы все это работало и после перезагрузки системы. Проверил на трех проектах, идея рабочая, но с размером раздела в 2 Гб, может чуть многовато. Так то одни пруфы от такого решения, при замерах система, которая крутиться на NVMe - прирост составил 20-25% в скорости, снижается нагрузка с NVMe или SSD, а если HDD то прирост скорости, будет просто космическим.

Один из сайтов где это уже применено, новый проект lablamp.ru - сайт по освещению...

Хотелось бы +кармы, и экспертное мнение, что не так в таком подходе.

27 ответов

  • 2
    NAiL 9 января 2023 18:13 #

    Имхо, бессмысленная затея.

    Часто используемые файлы Linux и так хорошо кеширует в оперативе.


    • +1

      Уважаемый Nail, вы сами то поняли что написали? Как он может кэшировать, то что создается "на лету" в Smarty? Я просто удивляюсь, такому подходу, даешь народу готовое решение, уже проверенное, пишут гадости, для чего вы это делаете? Как в таком случае можно обмениваться нормальной полезной информацией?

      • +1
        NAiL NAiL 9 января 2023 18:35 #

        Если вас что-то оскорбило - извиняюсь. Но где вы увидели про написание гадостей?

        Если не ошибаюсь smarty компилирует готовые скрипты/шаблоны для исполнения в этой папке.

        И они очень редко меняются - при сбросе кеша большая часть.

        Ну держат там некоторые плагины еще свои данные.

        Я просто такое же пробовал реализовывать несколько лет назад - на SSD/NVME дисках выигрыша от этого нет. Только на HDD имеет смысл, наверное.

  • 1
    NAiL 9 января 2023 18:21 #

    Не заметил, у вас папка wa-cache под 2 гигабайта?!

    Не многовато?

    Не встречал размер этой папки больше 50 Мбайт.

    Что там у вас кешируется в огромных масштабах? )

    • +2

      Извините сейчас разбираю один проект там + 100 гигов за 3 дня, эта папка растет как на дрожжах, файлы от Jde, Search_pro, и общий агрегатор доставок. Может у вас просто не было проектов, где 100 тысяч товаров и посещалка 1000-1500 уников в день?

      • +1
        NAiL NAiL 9 января 2023 18:55 #

        Были.

        Но там тяжелых плагинов используются по минимуму.

        Нет там search pro и seo фильтров.

        Скорее всего эти плагины и генерируют огромный кеш. 

        Но нужен ли кеш в таких объемах - сопоставимый с папкой эскизов изображений?

        Надо бы разобраться все-таки - что генерируется в таких масштабах.

      • +2


        эта папка растет как на дрожжах

        Вот и ответ на ваш вопрос: чтобы уверенно это использовать, надо гарантированно знать что кеш не вылезет за установленные рамки. Если есть вероятность что вылезет - всё приляжет.

        Я бы такой гарантии не дал ни на одном проекте.

  • 1
    ВЕтал Разработчик 9 января 2023 19:09 #

    Memcache и Redis подобную задачу не решают?

    • +2

      Memcached только результаты php скриптов, если у кого то иначе, поделитесь настройками... , у меня есть только подобное решение для ВА.

      ==========================================================
      Включение кэша для ВА \wa-config\cache.php - namespace - уникальный идентификатор
      ===============
      <?php
      return array(
          'default' => array(
              'type' => 'memcached',
      	'namespace' => 'market',
              'servers' => array(
                  array(
                      'host' => '127.0.0.1', //укажите нужное значение
                      'port' => 11211, //укажите нужное значение
                  ),
              )
          )
      );

      • +1
        ВЕтал ВЕтал Разработчик 9 января 2023 22:49 #

        Я на хостинге подключил услугу "memcached" и далее этот плагин https://www.webasyst.ru/store/... с настройками по умолчанию. всё работает.

        • +1

          и папка /wa-cache/ - пустая?

          • +1
            sitennov sitennov 10 января 2023 08:08 #

            Произвел настройку, перезагрузил сервер. Изменений по скорости не увидел. Сервер на HDD. Можно как то протестировать (работает или нет)?

            • +2

              где вы в 23м году нашли сервер на HDD? Хорошо не на "скази"...

              • +1
                sitennov sitennov 10 января 2023 09:11 #

                Собственно вот, https://firstvds.ru/storage-vd...

                • 0
                  replicant replicant 10 января 2023 09:53 #

                  Зачем VDS Storage под производительный хостинг конфигурировать с лимитом в 2 CPU и 4 Гб памяти? Оно надо? Это же для других задач и тариф и сервер. Не надо смешивать одно с другим.

                  Такие тарифы есть, когда ещё в строю у компании остаются E5-2630v2 2013 года выпуска, куча мат.плат, корпусов и вагон с тележкой HDD SATA Raid. Это всё ещё в строю, но надо как-то конвертировать наличие железа в деньги. Вот и сдают под недорогие хранилища.

                  • +1
                    sitennov sitennov 10 января 2023 10:00 #

                    Работает тестовый проект. Нагружаем под 100%. Смотрим как себя ведет этот тариф на 200000 товарах. Что можно оптимизировать в настройках, в том числе нагрузку на mysql. Настраиваем Memcached и т.д. По объему места сейчас изображения занимают 100Gb. Посмотрим также вынос базы на отдельный тариф (более производительный). 

                    • -1
                      replicant replicant 10 января 2023 10:09 #

                      Есс-но работает. Мы в свое время собирали под хостинг железки намного менее мощные, но то было в конце 90-х и начале 2000-х. Так что хостится на относительно современном Storage времен 2013 года вполне можно, но до определенного предела.

                      Когда можно взять пачку CPU, побольше памяти и более быструю дисковую подсистему, то почему бы и не взять?

                      Оптимально как раз выносить хранилище графики на storage, а БД и скрипты движка оставлять на быстром железе с меньшим дисковым объемом.

                      На совсем крупных проектах уже и БД отделяют.

                      • +1
                        sitennov sitennov 10 января 2023 10:11 #

                        Да, все верно видите. В планах дойти до 500000 товаров и вынос базы. Она как раз съедает все ресурсы процессора.

                        • +1

                          обращайтесь все расскажу покажу, есть огромный опыт, но советую начать с хостинга (VDS) таймвеба, там NVMe. Под совсем большие из дешевых отдельные дэдики, то можно и таймвеб, можно рассмотреть https://1dedic.ru/, на распродаже попадаются экземпляры, более менее цена / производительность. Но они какая то дочка от ФёстВДС, но и их и их дочку, рассматривать надо аккуратно, используют старое или б/у шное железо и очень часто попадается жесткие диски (SSD, NVMe) не отвечают той скорости что нужна. По заявкам колдуют чтото меняют по факту - тормоза, но все можно проверить!

                        • +2

                          Также по БД, если она лежит на том же носите что и сайт, очень выгодно при наличии оперативы, кинуть чтобы временные таблицы создавались в оперативке, настройки MySQL

                          tmpdir = /dev/shm

                          Но также важен переход на InnoDB с добавкой индексов вручную по анализу логов медленных запросов.

                          для примера в таблице shop_product

                          CREATE INDEX `url` ON shop_product (url(10));

                          это позволяет строить индекс по запросу URL ссылки сайта, и сильно ускорять запрос.

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

                          slow-query-log = 1
                          slow-query-log-file = /var/log/mysql-slow.log

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

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

                          log-queries-not-using-indexes

                          Но нужен тот же файл описанный выше 

                          mysql-slow.log
                  • +1

                    Извините, но у моих клиентов в основном 6-8 ядер 2,4-3.3, 16 гигов оперативы, и дискового в основном NVMe, 160-240Гб.

                • +1

                  это файловое хранилище - большое и с малой нагрузкой. Для ИМ с 500К товаров нужны другие технологии.

  • 1

    lablamp.ru  - это боевой проект? Или топик создан для seo ссылочки? Если боевой, то мне реально страшно за бизнес..

    • +1

      человек попросил, я установил сам сайт и настроил, что там не так? в плане работоспособности? Я знаю они его еще только запускают, они как раз ушли от фёствдс.

      • -3
        replicant replicant 10 января 2023 11:11 #

        Ну пусть запускают. Бог, как говорится, в помощь. За счет производительного VDS вывезет как-нибудь. Тема дизайна хорошая, но работы с ней много будет, если хотите скорости с плагинами. Компрессию html, js, css включите, а то немного толстовато.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите