Получение лучшего дескриптора в APC Cache Bins /code для settings.php

У меня есть APC и работает на моем VPS и установил модуль APC на моем Сайт Drupal 7. Я выполнил документацию здесь и добавил этот код в мой файл settings.php:

$conf['cache_backends'] = array('sites/all/modules/apc/drupal_apc_cache.inc');
$conf['cache_default_class'] = 'DrupalAPCCache';
//$conf['apc_show_debug'] = TRUE;  // Remove the slashes to use debug mode.

Однако на странице статуса моего сайта в APC говорится:

APC has been running for 3 min 54 sec. Currently caching 0 entries (0 bytes).

Мне «0 записей» указано, что не было создано /использовано кеширование. Я немного поработал, и похоже, что может быть добавлен дополнительный код, который мне нужно добавить, но не могу найти документацию в любом месте.

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

'page_cache_without_database' => TRUE,
        'page_cache_invoke_hooks'     => FALSE,
        'page_cache_maximum_age'      => 3600,
        'cache_lifetime'              => 0,
        /* my note -- noticed "cacherouter" in the path below 
         so I am guessing this needs to be adapeted to the path for APC?? */
        'session_inc'      => './sites/all/modules/cacherouter/session.inc',
            'cache_default_class'               => 'DrupalAPCCache',
            'cache_class_cache'                 => 'DrupalAPCCache',
            'cache_class_cache_block'           => 'DrupalAPCCache',
            'cache_class_cache_bootstrap'       => 'DrupalAPCCache',
            'cache_class_cache_content'         => 'DrupalAPCCache',
            'cache_class_cache_filter'          => 'DrupalAPCCache',
            'cache_class_cache_form'            => 'DrupalAPCCache',
            'cache_class_cache_menu'            => 'DrupalAPCCache',
            'cache_class_cache_page'            => 'DrupalAPCCache',
            'cache_class_cache_pathdst'         => 'DrupalAPCCache',
            'cache_class_cache_pathsrc'         => 'DrupalAPCCache',
            'cache_class_cache_session'         => 'DrupalAPCCache',
            'cache_class_cache_session_user'    => 'DrupalAPCCache',
            'cache_class_cache_update'          => 'DrupalAPCCache',
            'cache_class_cache_users'           => 'DrupalAPCCache',
            'cache_class_cache_views'           => 'DrupalAPCCache',
            'cache_class_cache_views_data'      => 'DrupalAPCCache',
      );

Любая помощь по этому вопросу будет оценена по достоинству.

Информация о расширении APC, возвращаемая из phpinfo(), является следующей.

screenshot

6 голосов | спросил Danny Englander 2 PMpMon, 02 Apr 2012 21:22:38 +040022Monday 2012, 21:22:38

2 ответа


7
  

"APC работает в течение 3 мин 54 с. В настоящее время кэширование 0 записей (0   байт) ".

Это сообщение предполагает, что ваш APC запускается для каждого запроса php отдельно, в конечном итоге не кэширует что-либо вообще.

У меня была похожая проблема , и она потребовала установить PHP еще раз, но в другом режиме.

APC отлично работает для нескольких процессов с apache /2 + php 5.3.x + php-fpm + fcgi в режиме FPM /FastCGI.

PHP 5.3.x настроен со следующими параметрами --enable-force-cgi-redirect --enable-fastcgi --enable-fpm

В разделе APC моей php-информации я вижу:

Поддержка APC = включена Поддержка Serialization = php MMAP File Mask = /tmp/apc.something | где что-то является случайной 6-символьной строкой

Пожалуйста, проверьте свой phpinfo

В PHP Configure Command вы должны иметь: '--enable-FastCGI' а также '--enable-FPM

В API сервера:   FPM /FastCGI

Проверьте, есть ли раздел cgi-fcgi, и если вы можете найти php-fpm установлено значение "active"

ПРИМЕЧАНИЕ. Может быть другое решение, если вы используете php 5.2.x или старше.

ответил Refineo 2 PMpMon, 02 Apr 2012 22:02:26 +040002Monday 2012, 22:02:26
3

APC следует использовать только для небольших частей кеша, которые не часто меняются. Так что, вероятно, не страницы, например. (фактические ячейки, в которых целесообразно использовать APC, могут различаться в зависимости от сайта ... например, vars или меню).

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

Вы должны использовать скрипт apc.php, чтобы узнать, сколько памяти было использовано для кеширования скриптов и убедитесь, что вы предоставили APC достаточную память (настройка по умолчанию - 32M в вашем случае не обязательно достаточно) - в противном случае кеш может быть еще хуже - замедление работы сайта с помощью повторного кэширования. Если вы ограничены в ресурсах, не бойтесь дать ему справедливую долю - он окупается (настроенный apc может получить вам меньше объема ОЗУ на просмотр страницы).

Я также играл с не кэшированием некоторых каталогов (например, сумасшедший модуль с большим количеством файлов или части частей администратора). Кроме того, помните, что в настройке по умолчанию он пытается кэшировать ЛЮБОЙ php-файл на VPS ... даже запуск двух drupals бок о бок может быть проблематичным (недавно загруженный код выталкивает старое из кеша) - поэтому я предлагаю ограничить это одному drupal.

это полезный ресурс, чтобы увидеть http://php.net/manual/en /apc.configuration.php и один по отношению к drupal: http://xerosphere.net/optimizing-apc-for-drupal

ответил mojzis 2 PMpMon, 02 Apr 2012 23:22:20 +040022Monday 2012, 23:22:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132