Справление с нагрузкой на Modx


Здравствуйте Василий.
Существует сайт на modx, везде где можно включено кэширование. Формирование одной страницы занимает 7-12 Мб, время генерации из кэша 0,6 секунды. При относительно частой загрузке страниц 5-8 запросов станиц в секунду (то есть php, а не статика), память сервера забивается напрочь. Сайт ложится. Даже если использовать кэширование скриптов в Xcache и хранить кэш данных в Memcache, ситуацию это сильно не меняет. Сайт все-равно ложиться.
Как вы решаете эту проблему на своих сайтах? Может быть как-то уменьшаете использование оперативной памяти скриптами сайта или еще какие-то настройки?
23 september 2012, 14:01    Евгений   
0    598 0

Comments (11)

  1. Василий Наумкин 23 september 2012, 14:15 # 0
    У меня не было таких проблем.

    Покажите график с loadimpact.com, распишите что за сервер, какое ПО?

    Вот тест моего сайта — loadimpact.com/load-test/bezumkin.ru-ca54855db4934e5b67f77af51aad33a1
    1. Евгений 23 september 2012, 18:06 # 0
      К сожалению графиков привести не могу, так как сайт развернут на локальной машине и не размещен для общего доступа пока что.
      Конфигурация машины, на которой работает сайт:
      процессор 2х1.7 ГГц
      2 Гб оперативной памяти
      ПО: Ubuntu 12.04, Apache/2.2.22, MySQL 5.1, PHP 5.3

      Параметры при генерации страницы из БД:
      время запросов к базе данных — 0.0000 s
      количество запросов к базе данных — 0
      время работы PHP скриптов — 1.8248 s
      общее время генерации страницы — 1.8248 s
      источник содержимого (база или кэш) — database
      память — 14.27, пик памяти — 14.45)

      Параметры при генерации страницы из кэша:
      время запросов к базе данных — 0.0000 s
      количество запросов к базе данных — 0
      время работы PHP скриптов — 0.5877 s
      общее время генерации страницы — 0.5877 s
      источник содержимого (база или кэш) — cache
      память — 12.83, пик памяти — 13.01)

      При обращении 10 и более запросов в секунду в течении 30 секунд и более память компьютера заполняется процессами Apache и сайт не откликается.
      1. Василий Наумкин 23 september 2012, 19:15 # 0
        Скорее всего, виноват Apache2, как обычно.

        Нужен nginx + php5-fpm, как настроить — тут bezumkin.ru/blog/2012/06/18/13/. У меня сервер легко выдерживает 50 одновременных клиентов, по тестам.

        Ну и реальные хабраэффекты держит без проблем.
        1. Valentin Rasulov 24 september 2012, 04:40 # 0
          блин — ну когда пишете, хоть задумываетесь о цыфрах которые приводите?
          ***********
          Параметры при генерации страницы из БД:
          время запросов к базе данных — 0.0000 s
          количество запросов к базе данных — 0
          ********
          и сайт ложиться :) Откуда вы данные берёте? Ведь нету на Рево этих фигнюшек как на Ево.
          1. Василий Наумкин 24 september 2012, 06:57 # 0
            Переменные то есть, но они всегда = 0.

            Реальная только одна — 0.2477 s. Память тоже не понятно, как считается — функцией memory_get_usage(), или там еще какая-то переменная есть?
          2. Василий Наумкин 24 september 2012, 07:22 # 0
            Что то у вас такие не закэшированно\оптимизированно.

            У меня на главной страницу, где почти все кэшированно вот такие данные (см. в футере):

            Первый раз, без кэша:
            render time: 1,2719 s
            memory: 12,34 Mb

            Второй, с кэшем:
            render time: 0,2784 s
            memory: 9,8 Mb

            Разница в памяти и времени гораздо больше, чем у вас. Значит — кто-то у вас работает без кэша и жрет ресурсы.
            1. Николай 24 september 2012, 12:11 # 0
              ссылку б на страничку глянуть)
              1. Василий Наумкин 24 september 2012, 12:22 # 0
                На этом сайте, внизу каждой страницы.
              2. Максим Франц 25 september 2012, 13:51 # 0
                Можете показать как у Вас в футере память выводится?
                1. Василий Наумкин 25 september 2012, 14:33 # 0
                  Сниппет с return round(memory_get_usage() / 1024 / 1024, 2).' Mb';

                  Оно не покажет прям всю память, ибо вызывается не в парсере. Но зато видна относительная разница между разными страницами и кэш/некэш.
            2. Denys Butenko 29 september 2012, 18:37 # 0
              Развернул локальную копию сайта.
              Прирост производительности минимум в 2 раза.
              Страницы начали грузится как у Василия до 0.3с кешированые.
              Вот теперь ищу причину почему на селектеле так медленно работает сайт.
              Проверил конфиги nginx,php5-fpm — одинаковые. Но разница не вооруженным глазом заметна…
              You need to login to create comments.