Не переносите сайты на Drupal!

    Начну свой первый пост с маленькой заметочки о Drupal, который я недавно начал использовать, а также в который я влюбился и одновременно разочаровался. Влюбился по причине наличия необъятной широты возможностей, которые дает этот движок. Куча модулей, приятная архитектура для программиста (чтобы доработать напильником или написать свой модуль), невероятная гибкость — все это не оставит равнодушным, как, в прочем, и то, как все это хозяйство начинает тормозить при разрастании!

    Был у меня сайт и решил я его освежить при помощи современного комьюнити-ориентированного движка, которым и является Drupal. Сайт был самописный, простой. Работал быстро, т.к. использовал кэширование в статику и отдачу этой статики на nginx. Было у него достоинство — человекопонятные URL-адреса (ЧПУ). При переводе на Drupal потребовалось использовать модуль Path, входящий в стандартную поставку, для воссоздания ЧПУ на сайте. Это привело к тому, что при формировании страницы происходит: — для главной 400-600 запросов в базу; — для вложенной 200-400 запросов в базу. Drupal ищет для каждого тэга таксономии свой алиас в базе URL-адресов.

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

    Дополнительные проблемы появляются у Drupal'а при обрастании модулями. На виртуальном хостинге может не хватить лимита в 16Мб для PHP. Если кто знает виртуальный хостинг с лимитом в 32Мб, дайте знать! На VPS разросшийся Drupal работает медленно из-за болтающейся на том же VPS базе MySQL. Выйти из положения можно разнесением Drupal и MySQL на разные хосты (MySQL можно держать на виртуальном хостинге — там под нее обычно выделен отдельный сервер). Кто-то скажет, что надо брать отдельный сервер, но для этого проект должен хотя бы окупаться, а на Drupal обычно делают любительские проекты, иной раз вовсе не приносящие прибыль, а существующие для души.

    Резюме на последок
    На Drupal лучше всего делать проекты с нуля, сохраняя его внутреннюю человеконепонятную адресацию. Заранее нужно продумать структуру сайта, чтобы понять, какие модули необходимо будет использовать. Если Вы планируете проект с высокой посещаемостью, то рассмотрите вариант «написать свой движок», т.к. на оптимизацию Drupal в последствие Вы потратите времени уж точно не меньше.

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 15

      +5
      "Написать свой движок" - подход, который погубил немало хороших идей...
        0
        Для быстрого старта Drupal - самое то. Но если, даст Бог, проект станет популярным, то только свой движок! Сколько из последних 2.0 проектов вы знаете на чем-то готовом?
          0
          popsugar.com - работает на Drupal, посещаемость более 100 000 уников в сутки. Серьезнейший проект.
          0
          В догонку как раз топик в тему: http://habrahabr.ru/blog/webdev/28395.ht…
          +1
          Думаю, Drupal не при чем...
            0
            друпал при поиске алиасов дает много простых запросов, но очень просто сделать что-бы он давал один побольше - тут все зависит как у провайдера ограничения стоят - что ему лучше один большой или много мелких
            в друпале кстати очень все продумано и даже очень сложный модуль views работает со своим внутренним кешированием
            так-же очень просто можно звалить друпал неправильным выводом шаблона - когда блоки будут просчитываться по многу раз даже если они не должны быть показаны или node_load в цикле где-то зациклится.
            для разбирательства что где тормозит есть модуль devel
            0
            Полностью согласен с автором - у меня был сайт на Seditio перевел его на Drupal для расширении функционала... Но Друпал не захотел работать на моем хостинге пришлось покупать под него VPS хостинг. Да и глюков с ним немало вылезло.
            Опять же пробовали оптимизировать на что мне трое совершенно разных программистов сказали мне легче с нуля нужный функционал написать, чем оптимизировать Drupal.
              0
              "не переносите сайт на symfony! там тормозной yaml propel и куча кода!"
              "не переносите сайт на ruby! их оо модель ама-аба тормозная"
              "все это ТОРМОЗИТ! и, о боже мой, требует намного больше ресурсов чем моя самописная системо!"

              Ничего просто так не бывает. Фичи и удобство бесплатно не даются, как это ни грустно.
                0
                а на Drupal обычно делают любительские проекты, иной раз вовсе не приносящие прибыль, а существующие для души.

                Вот проект для души на Drupal: Газета The New York Observer.

                Если кто-то сомневается, что это Drupal (и практически без напильника), читаем http://drupal.org/nyobserver
                  0
                  Автор топика не использовал модуль advcache.
                  Ничего, с этими граблями сталкиваются все.
                  Успехов в освоении Drupal, это одна из лучших бесплатных CMS.
                    0
                    все тарифные планы виртуального хостинга с PHP5 на .masterhost сейчас имеют лимит 32Mb.
                      0
                      Ну а проблема производительности Drupal - общеизвестна.
                      Возможно, помогут эти ссылки:
                      http://drupal.org/project/fastpath_fscache
                      http://drupal.org/node/80887
                      0
                      .masterhost даёт 32Мб на виртуальном хостинге
                        0
                        Про плохую масштабируемость Drupal'а предупреждали уже не раз. Но лучше его все равно нет CMS.
                        Это не недостаток Drupal'а, это этого конструктивная особенность =)))

                        Про память: Servage давал мне около года назад 64 метра. Но, честно говоря, больше 32 метров я не использовал =)
                          0
                          Сделал сайт на Drupal 7 с большой базой гостов.
                          Несколько словарей таксономии два из них просто огромные. Каждый термин в словаре содержит еще 10-ок полей.
                          Документы (госты) тоже с приличной кучей полей.
                          Само собой использовал в связке с Drupal кеш в Memcache и Xcache (только для акселерации php скриптов).
                          Встроенный поиск тормозной его отключил и вместо него использовал поиск при помощи Apache solr.
                          Сайт вполне шустро работает. Хоть с переписанными чпу путями, хоть с дефолтными.

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

                          Самое читаемое