Я использую mod_fcgid и Xcache 3.0.3, PHP 5.4.18. Я знаю, что из-за дизайна mod_fcgid я не могу использовать общую общую память, поэтому каждый процесс php-cgi использует свой собственный кеш в течение своей жизни.
Когда я открываю top
и проверяю процессы php-cgi
я вижу следующее:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14827 examplecom 20 0 230m 34m 18m S 11.0 3.4 0:07.07 php-cgi 14840 examplecom 20 0 242m 45m 18m S 0.7 4.6 0:02.74 php-cgi 14802 examplecom 20 0 237m 41m 18m S 6.3 4.2 0:11.39 php-cgi 14816 examplecom 20 0 232m 36m 18m S 1.7 3.7 0:07.75 php-cgi 14824 examplecom 20 0 231m 34m 18m S 8.6 3.5 0:06.12 php-cgi 14838 examplecom 20 0 229m 33m 17m S 0.7 3.3 0:00.89 php-cgi 14841 examplecom 20 0 228m 32m 18m S 2.0 3.3 0:01.71 php-cgi 14839 examplecom 20 0 228m 32m 18m R 8.6 3.2 0:01.58 php-cgi
Затем я проверяю панель администрирования XCache. Каждый раз, когда я обновляю страницу администратора, я вижу другие данные процесса. Например, я вижу следующее:
XCache Cacher XCache Cacher Module enabled Readonly Protection disabled Page Request Time 2013-09-04 21:59:32 Cache Init Time 2013-09-04 21:59:05 Cache Instance Id 14827 Opcode Cache enabled, 12,582,912 bytes, 1 split(s), with 8192 slots each Variable Cache enabled, 1,048,576 bytes, 1 split(s), with 8192 slots each Shared Memory Schemes mmap
Кажется, что процесс 14827
живет в течение 27 секунд. Но когда я проверяю, что этот процесс работает 0: 07.07.
Таким образом, PID 14827
живет в течение 7 минут или 27 секунд. Что правильно или мне что-то не хватает с внутренней обработкой XCache?
Лучше ли вы изменить /etc/httpd/conf.d/fcgid.conf
и продлить срок службы каждого процесса? Или это плохая идея изменить значения по умолчанию .
Какую оптимизацию я могу сделать, XCache
mod_fgid
работу XCache
и mod_fgid
? (Я не предпочитаю менять свой сервер на nginx и переходить на mod_fastcgi)
Я не знаю XCache, но …
скажем, у нас есть 1 процесс apache 3 php-процессов
все 3 php-процесса запущены. Все 3 имеют одинаковое время работы. // время 0000
Вы запрашиваете страницу. Apache подключается к процессу # 1, начинается кеш. // время инициализации кэша 0001
вы обновляете страницу. Apache подключается к процессу №2, инициируется кеш. // Время инициализации кэша 0033
Теперь у вас есть 3 процесса, все 3 работают со времен 0000, но
процесс №1 имеет initCacheTime 0001
процесс №2 имеет initCacheTime 0033
процесс №3 не имеет initatedCacheTime, потому что он еще не используется.