2009-11-20 4 views
3

Я запускаю поле LAMP с PHP, работающим как fcgid. APC установлен и работает хорошо. Тем не менее, каждый процесс PHP получает свой собственный кеш. Это проблема, потому что было бы гораздо разумнее иметь 10 PHP-процессов с общим кэшем APC объемом 300 Мбайт, чем 10 PHP-процессов, каждый из которых имеет избыточный 30-мегабайтный кеш без APC.Может ли кэш APC использоваться совместно несколькими процессами PHP, работающими как fastcgi/fcgid?

Прошла тема на эту тему 8 месяцев назад (How to share APC cache between several PHP processes when running under FastCGI?), и мне интересно, были ли какие-либо события в этой области с тех пор.

ответ

1

Насколько я знаю, до сих пор невозможно использовать кэш разделяемой памяти с любым PHP-кэшем среди множества процессов ... в любом случае, если вы не находитесь в чрезвычайно большой нагрузке, вы должны быть в порядке с отдельными кэшами, я полагаю, поскольку они будут заполнены довольно быстро. И эй, ОЗУ дешево в наши дни!

+0

Из-за этой проблемы я могу кэшировать код операции с кодом N * 30 МБ меньше мегабайта, где N - количество процессов fcgid/PHP. Вместо того, чтобы кэшировать мои наиболее часто используемые файлы N раз, я бы предпочел кэшировать N раз столько файлов, чтобы попасть на диск еще меньше. Причина, по которой я забочусь, это то, что мы находимся под большой нагрузкой ;-) RAM дешево, а не бесплатно! – carbocation

0

Оказалось, что это по-прежнему невозможно, если вы действительно используете разные процессы: http://pecl.php.net/bugs/bug.php?id=11988 (обновлено 11/13/2009 автором соответствующей части APC).

+0

Вопрос был закрыт ?! – mgutt

1

Я читал об этом несколько минут назад в ошибке отслеживания PHP https://bugs.php.net/bug.php?id=57825 это фиксированная, но вы должны использовать spawnfcgi или PHP-FPM http://php-fpm.org/

Цитируется из Рамус

Он отлично работает, если вы используете spawnfcgi или php-fpm. Любой диспетчер процессов , который запускает родительский процесс и запускает дочерние процессы с этого , будет работать нормально.