Задать вопрос
@rv9ufz
Кратко о себе

А где opcache хранит кэш?

Подскажите пожалуйста, а где при дефолтной схеме (mmap) хранятся кэшированные данные?
Дело в том, что объем потребляемой памяти процессами apache никак не меняется, даже когда в кэше уже более 500 Мб данных.
При shm понятно, можно самому просмотреть сегменты и их заполненность, а вот с mmap не понятно.
P.S. php работает как модуль apache.
  • Вопрос задан
  • 1006 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
mmap - что то вроде файла в оперативной памяти (memory-mapped files) вот исходники

Подскажите пожалуйста, а где при дефолтной схеме (mmap) хранятся кэшированные данные?

В оперативной памяти.

Дело в том, что объем потребляемой памяти процессами apache никак не меняется, даже когда в кэше уже более 500 Мб данных.

Память выделяется одним большим куском при старте php. У вас 500Мб использована из доступного объема.
Ответ написан
Комментировать
@rv9ufz Автор вопроса
Кратко о себе
В программировании, увы, не силён.
Т.е. всё же процессы apache должны хранить этот кэш, если PHP как модуль?
Мастер (тот который от root) при старте кушает 33 Мб физической памяти, все воркеры (spare) от www-дата около 17 Мб.
Процесс, запускаемый непосредственно при выполнении какого-то скрипта, памяти потребляет пропорционально тяжеловесности самого скрипта, а hit в кэше засчитывается (т.е. данные откуда-то берутся).
Собственно, как всё же можно увидеть этот кэш на уровне системы, не используя shm?

Посмотрел процессы с помощью pmap, есть один сегмент, по размеру равный размеру кэша.
На мастере:
Kbytes RSS Dirty Mode Mapping
524288 6012 6012 rw-s- zero

На воркерах вообще пустой:
524288 0 0 rw-s- zero

В статистике opcache показывает что заняты все 512 Мб.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы