Где APC хранит свой код операции и кеш переменной пользователя?

Причина, по которой я спрашиваю, заключается в том, что при использовании top я не вижу процесса для чего-либо вроде APC. Поэтому я предполагаю, что использование памяти будет учитываться в процессе apache.

Так ли это, и означает ли это, что APC памяти используется, реплицируется в каждом процессе apache, тем самым занимая потенциально гораздо больше памяти, чем то, что первоначально было назначено ему?

Если это так, memcache будет лучшим решением, даже если он не используется на нескольких серверах с балансировкой нагрузки?

Solutions Collecting From Web of "Где APC хранит свой код операции и кеш переменной пользователя?"

APC использует общую память для хранения кэша его операций. В случае mod_php эта память распределяется между всеми процессами Apache. Таким образом, кеш на 30 МБ занимает всего 30 МБ, даже если есть 5 процессов Apache.

Однако при использовании mod_php каждый процесс Apache тратит много ресурсов, поскольку каждый процесс содержит интерпретатор PHP. Таким образом, когда Apache обслуживает статический контент (html, css, js, файлы изображений и т. Д.), Он использует процесс с полным загрузчиком PHP-интерпретатора. Чтобы обойти это, некоторые люди используют FastCGI через mod_fastcgi или mod_fcgi. Использование кэша операций с FastCGI становится немного сложнее.

В настоящее время нет способа использовать memcache в качестве кэша операций операций. Даже если бы это было, это, вероятно, было бы медленнее, чем хотелось бы.

Помимо того, что он является кэшем операций операций, APC также обеспечивает разделяемую память. Это наводит на мысль, что у него есть собственная внутренняя система общей памяти, похожая на memcached.