Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Производительность системы //

    Использование memcached


    Статья предназначена для опытных системных администраторов.

    Общая информация

    Memcached - это специализированный сервер, позволяющий хранить в памяти пары ключей и значений. Twilight CMS умеет класть в memcached готовые сгенерированные веб-страницы точно таким же образом, каким она кладет их в файловый кэш в Cache. Веб-сервера типа nginx умеют обращаться к memcached и если искомый контент находится в кэше - экономится обращение ко всей остальной цепочке кэшей и веб-серверов. Использование memcached увеличивает быстродействие системы в несколько раз, позволяя вообще исключить обращение к диску для части запросов.

    Memcached серверов может быть много, что позволяет легко масштабировать ту часть веб-сайта, которая генерирует условно статический контент, хотя на текущий момент Twilight CMS поддерживает только один memcached сервер.

    Пример схемы работы связки для выделенных серверов:

    запрос пользователя -> nginx -> memcached -> apache -> Twilight CMS

    Установка

    Для работы необходимы: установленный memcached сервер и модуль Cache::Memcached::Fast или Cache::Memcached (pure-perl).

    К сожалению, на NT платформе использование memcached осложнено тем, что для Perl 5.6 отсутствует модуль Cache::Memcached (из-за String::CRC32 надо полагать), а для Perl 5.8 - через раз удается подключить ImageMagick (нужно ставить отдельно билд, в котором лежит ppd для ручной установки под конкретную версию Perl или править внутри ppd версию руками и надеяться что заработает). Для Perl 5.10 есть и IM и модуль, так что рекомендуется использовать с системой именно эту версию Перла. С остальными мучайтесь сами.

    Также на NT нам не удалось установить Cache::Memcached::Fast без компиляции из сорцов, только Cache::Memcached, соответственно кто умеет компилировать модули и кто не умеет - выбирайте соответствующий вариант.

    Установка memcached на Unix производится обычным для конкретной операционной системы образом. Например, для SuSE Linux:

    # установка
    yast2 -i memcached

    # автозапуск
    chkconfig -a memcached

    # запуск
    rcmemcached start

    # в файле конфигурации (для SuSE /etc/sysconfig/memcached) добавить в строку параметров верхний предел используемой памяти (limit_maxbytes):
    MEMCACHED_PARAMS="-d -l 127.0.0.1 -m 256"    # 256Mb, как пример

    Установка модуля для Perl на всех платформах одинакова:

    cpan -i Cache::Memcached::Fast

       либо

    cpan -i Cache::Memcached

    Настройка

    Подключение memcached к сайту на Twilight CMS производится в два этапа:

    1. Нужно прописать адрес memcached сервера и его порт в preferences.xml, например так:
    <memcached>localhost:11211</memcached>

    Это позволит системе управления писать в memcached данные по ключам, которыми является uri вида www.sitename.com/query_with_params_unescaped.

    2. В конфигурации nginx нужно указать обращение вида:

    server {
        location / {
            if ($request_method = POST) {
                return 405;
            }

            set $memcached_key "$host$request_uri"; # Ключ для проверки в memcached
            memcached_pass     127.0.0.1:11211; # Параметры подключения
            error_page         404 405 502 504 = @fallback; # 404 - данные в кеше не найдены, 405 - обязательно, чтобы проходил POST!
        }
        location @fallback {
            proxy_pass http://backend; # Бэкэнд
        }
    }

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

    Проверка работоспособности связки

    Система пытается сначала подключить модуль Cache::Memcached::Fast, если это не удается, то Cache::Memcached. Если и это не удается, то система не будет ничего писать в memcached. Но время на попытки записи тратить будет. Поэтому прежде чем оставлять на боевом сервере включенным режим memcached в preferences.xml обязательно убедитесь в том, что в memcached пишутся нужные значения.

    Войти на сервер memcached можно так:

    telnet localhost 11211

    команда stats выведет статистику по использованию кэша, памяти и другие данные. Если количество операций записи = 0, то очевидно система не пишет ничего в memcached, а значит проверяйте настройки сервера и порт в preferences.xml, возможность подключения с веб-сервера к memcached серверу и корректность установки Perl модулей.

    « к списку

    версия для печати

     
    © 2003-18 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: