175  /  230

Ручная настройка memcached

Просмотров: 5322 (Статистика ведётся с 06.02.2017)

Внимание! Для операций, описанных в данном уроке, необходимы знания администрирования *nix-систем. Перед началом проведения данных операций рекомендуется сделать полный бекап «Виртуальной машины».

В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.

Для этого необходимо:

  • в файле /etc/sysconfig/memcached задать следующие параметры:
    • MAXCONN = "1024" - количество одновременных подключений (по умолчанию 1024);
    • CACHESIZE="1024" - объем выделяемой памяти для кеша (по умолчанию 64MB);
    • OPTIONS="t 8" - количество потоков memcached (по умолчанию 4).
  • Примечание: Параметры MAXCONN, CACHESIZE и OPTIONS подбираются экспериментальным путем в зависимости от характера нагрузки и от имеющихся ресурсов.

    Оценить объем памяти, необходимой для кеширования (параметр CACHESIZE), можно по размеру вашего файлового кеша. Если у вас на проекте файловый кеш занимает 3 GB, то использование memcached c 256МБ памяти не будет эффективным за счет частого вытеснения.

  • После настройки memcaсhed необходимо перезапустить командой:
    service memcached restart
    
  • Далее подключить его в /bitrix/php_interface/dbconn.php:

    define("BX_CACHE_TYPE", "memcache");
    define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
    define("BX_MEMCACHE_HOST", "127.0.0.1");
    define("BX_MEMCACHE_PORT", "11211");
    

    И в файле /bitrix/.settings_extra.php (если его нет, то создать):

    <?php
    return array(
      'cache' => array(
        'value' => array(
          'type' => 'memcache',
          'memcache' => array(
            'host' => '127.0.0.1',
            'port' => '11211',
          ),
          'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
        ),
      ),
    );
    ?>
    

В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcached через сокет, т.е в файле /etc/sysconfig/memcached задать параметры:

  • USER="bitrix" - пользователь, от которого будет запущен memcached;
  • OPTIONS="-t 8 -s /tmp/memcached.sock" - количество потоков и путь к сокету.

Перезапустить memcached командой:

service memcached restart

После этого необходимо изменить настройки в /bitrix/php_interface/dbconn.php:

define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "unix:///tmp/memcached.sock");
define("BX_MEMCACHE_PORT", "0");

И в файле /bitrix/.settings_extra.php (если его нет, то создать):

<?php
return array(
  'cache' => array(
    'value' => array(
      'type' => 'memcache',
      'memcache' => array(
        'host' => 'unix:///tmp/memcached.sock',
        'port' => '0',
      ),
      'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
    ),
  ),
);
?>


14
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии