APC продолжает вспыхивать

Смотрите мой APC здесь: http://www.animefushigi.com/apc.php

Если вы продолжаете нажимать кнопку "Обновить" в левом верхнем углу, следите за количеством значений "Хиты" и "Время начала" и "Время работы". Все они идут вверх и вниз.

Я нахожу это довольно странным, обычно все 3 из этих значений должны только увеличиваться с течением времени, а не уменьшаться (за исключением времени начала - которое должно остаться прежним)

Мое единственное предположение, что кэш очищается каждую секунду.

Я искал вокруг и попытался несколько вещей, чтобы исправить это

  • отключен suEXEC
  • установить apc.mmap_file_mask /dev/zero
  • пробовал PHP 5 обработчик fcgi и cgi

также когда я иду в / TMP / на SSH и делаю -ls Я не вижу ничего, связанного с apc.

Какие-либо предложения?

Сервер Linux и использует WHM / Cpanel

* edit: у меня есть подозрение, что проблема может быть связана с apc.mmap_file_mask. В настоящее время установлено /tmp/apc-animefus.XXXXXX но на странице apc.php кажется, что xxxxxx заменяется при каждом обновлении на что-то другое

1 ответ

Некоторые заметки о APC и различных режимах:

  • Кэш APC по существу для каждого процесса.
  • Если вы используете CGI, процесс создается, APC создает свой кэш, а затем процесс завершается, и кэш очищается. (из того, что я могу найти, suPHP, похоже, похож на CGI).
  • Если вы используете FastCGI, Apache запускает один процесс для каждого одновременного запроса. Это удерживает их на случай, если они будут использованы снова. Каждый процесс имеет свой собственный кэш APC.
  • Если вы используете обработчик mod_php, он разделяет кеш между всеми процессами apache, но не запускает его как пользователь.

Замечания:

  • Кэш не сбрасывается при каждом обновлении страницы, я вижу несколько, которые используются повторно, и им уже пять минут. Любая перенастройка сервера сбросила бы это.
  • Единственный способ узнать, что вы получаете тот же процесс FastCGI, - это быть единственным клиентом.
  • На вашем сайте может быть так много запросов, что используется несколько процессов FastCGI.

Вещи, которые должны быть правдой:

  • В режиме CGI или SUPHP значения никогда не увеличиваются.
  • В режиме fcgid значения увеличиваются и уменьшаются.
  • В режиме mod_php/DSO значения верны.

Вещи, которые я бы проверил (не в каком-то определенном порядке):

  • Смотрите процессы PHP под вашим пользователем (используя top или аналогичный). Посмотрите, как долго они обычно бегут и выходят ли они.
  • Проверьте файлы журнала, чтобы увидеть, сколько запросов попадает в PHP.
  • Создайте сценарий для проверки идентификатора процесса, в котором выполняется сценарий, если вам нравится записывать их в базу данных / файл, чтобы вы могли легко отслеживать их. Продолжайте загружать эту страницу, чтобы собрать информацию о том, как долго выполняется процесс.
  • Проверьте конфигурацию FastCGI, я не уверен, как cPanel настраивает ее по умолчанию, потому что у меня всегда было несколько проблем с некоторыми веб-сайтами, когда я пытался это сделать. Есть несколько вариантов, которые контролируют, как долго процесс должен оставаться в живых. PHP по умолчанию завершает работу после 500 запросов в режиме FastCGI. Это целесообразно, так как некоторые сообщают об утечке памяти в PHP после долгого времени работы. Если ваш сайт получает много посещений, вы можете увеличить это число.
Другие вопросы по тегам