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 после долгого времени работы. Если ваш сайт получает много посещений, вы можете увеличить это число.