Процессы mod_fcgid и время жизни XCache

Я использую 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 секунд Но когда я проверяю top этот процесс работает для 0:07.07.

Так же как и PID 14827 живет 7 минут или 27 секунд. Что является правильным, или я что-то упускаю из-за внутренней работы XCache?

Это лучший вариант, чтобы изменить /etc/httpd/conf.d/fcgid.conf и продлить срок службы каждого процесса? Или это плохая идея изменить значения по умолчанию.

Какую оптимизацию я могу сделать больше, чтобы сделать XCache а также mod_fgid работать лучше? (Я не предпочитаю менять свой сервер на nginx и переходить на mod_fastcgi)

1 ответ

Я не знаю 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 не имеет initCacheTime, потому что он еще не используется.

Другие вопросы по тегам