На что расходуется оперативная память в Битриксе? Кеширование умного фильтра мы рассматривать не будем.
Вопрос касается необходимого объема оперативной памяти на физическом сервере и как она расходуется. Это нужно считать.
Итак, если по-порядку, то это сам кеш (его размер оставим за скобками, так как он индивидуален), далее, при включенном композите кешируется, насколько я понимаю статика (индекс, компонент, то есть все, кроме динамической области), далее вопрос, который я не совсем понимаю и могу точно напутать - кеширование ядра, это папка bitrix и папка local, все это должно уверенно влезть в оперативку, но как подгружаются например, картинки, другие файлы, если они прикреплены к элементу например, а элементов определенно много. Как это все, подскажите у кого есть реальный опыт.
Я понимаю о чем мы говорим, но поскольку нет реального опыта работы с этим, то, могу и задавать вопросы для "общего развития".
Вопрос касается только сайтов на Битрикс.
Что такое вообще "кэширование ядра"? Ядро это по сути скрипты модуля main, а в широком смысле всех модулей. Причем тут кэширование и что там можно кэшировать?
Да и вообще как связан кэш с расходом оперативки?
Буквальный же ответ на ваш вопрос - ни на что. Битрикс написан на PHP у которого нет прямого доступа к памяти. Память расходует интерпретатор PHP, а не битрикс.
Александр Маджугин, тут вообще ничего на мой взгляд не понятно, Битрикс это вся система, объединяющая все задокументированные значения и выводятся они посредством php, js и всего другого, кроме того Битрикс сам много чего имеет. Битрикс это как раз весь тот "самолет", который мы пытаемся затащить в оперативку целиком чтобы он работал оттуда. Вопрос - целиком это только рабочие компоненты, индексы и вся система должна быть я так думаю в RAM (или в файле кэша), а все остальное типа картинок нет. Мне кажется именно так устроен композит (правда речь сейчас не о нем).
Если это так, то наверно, выход - веб-кластер?
Битрикс это как раз весь тот "самолет", который мы пытаемся затащить в оперативку целиком чтобы он работал оттуда.
Что значит работал оттуда?
Битрикс - это набор PHP скриптов. Как и все CMS (ну подавляющее большинство) они не работает как таковые, а запускаются на время хита, формируют страничку и умирают.
Вам не нужно заботится об оперативке и что туда и как попадает - все эти вопросы решаются на уровне ОС и интерпретатора PHP - у них для этого есть дисковые буферы и опкэш. Это все не имеет отношения к Битрикс, и, поверьте, туда не стоит лезть - оно само с дефолтными настройками лучшим образом распорядится оперативкой вашего сервера.
Дальше перейдем к самим скриптам - они представляют саобой api Bitrix Framework и компоненты БУС написанные поверх этого api. Последние используют стратегию кэширования данных и готовых кусков html - вам тоже не стоит заботится о работе этих элементов системы - настройте кэш в файлах или мэмкешед, в зависимости от своего вероисповедания и забудьте. В RAM оно или не в RAM вас волновать не должно - это решит мекэшед или ОС в зависимости от того что вы используете.
Композитный кэш - это отдельная история используемая системой композитного сайта. И опять же вас не должно волновать хранятся ли данные этого кэша в оперативке.
Что вы называете рабочими компонентами и индексами и причем тут картинки я даже боюсь спрашивать. Честно говоря некоторые ваши утверждения/вопросы лишены смысла и похоже вы употребляете отдельные слова не совсем в их значениях. Вопрос который вы ставите вам рано задавать. Правда. Когда чуть больше разберетесь он отпадет сам-собой.
Кешируются не папки. Их не зачем кешировать. Кешируются результаты работы скриптов. В случае Битрикса это, в основном, результаты выполнения компонентов. Т.е. итоговый html.
Оперативка для Кеша вам понадобиться только в случае, например, memcached.
Измерить можно так: запускаем сайт на файловом Кеше. Ждём пока сайт "обрастет" кешем. Смотрим размер директории cache, принимаем решение о количестве оперативной памяти.
memcached доступен только на Enterprise, смотрел, да, интересно. Но вот пример, который они привели в описании Веб-кластера меня немного смутил, ведь непонятно же, отчего 16Гб оперативки на мемкэше, если это его профильная работа (этого сервера), или я чего-то не понимаю?
Примерные рекомендации по "железу"
Интернет-магазин с посещаемостью примерно 150 человек за 10 минут, папка сайта весит 700ГБ, БД 10ГБ.
Конечно странно может быть, но все же.
А почему странно, потому что машины позволяют спокойно например 3Тб воткнуть того же DDR4, и зачем тогда, чтобы был кластер? Энтерпрайз? Ну допустим. Ну в принципе да, тогда ты можешь использовать эту емкость. В файловом кэше-то...нет..? А с чем работает этот файл, в котором кэш?
Ну сам кеш, + ещё же нужно для мускуля и PHP. Они тоже оперативы хотят.
В файловом кэше-то...нет..? А с чем работает этот файл, в котором кэш?
Не понял вопрос. Что значит "с чем работает файл". Кешевый файл ни с чем не работает. Это просто посчитанные данные. Наоборот Битрикс работает с этим файлом. Если кеш живой - читает данные из файла и отдает пользователю готовый html ( или данные, в зависимости от Кеша).
no_one_safe, ну, в вопросе "с чем работает этот файл кэша" я имел ввиду, что кеш - это быстрая память, данные о загруженных динамических данных на странице, так значит он по сути не имеет никакого там протокола и не ест оперативку, а наподобие глобальных данных просто "висит" пока не закончится сессия, нагружая что, какую железку?
А при memcached эта функция уходит в оперативку сервера memcached....
По поводу что memcached доступеен везде, скиньте может будьте добры! Я нашел упоминание о мемкэше в Веб-кластере, так как мемкэш представляет собой отдельный сервер, значит по идее он без веб-кластера не должен быть доступен. Я поищу.
Ну а по поводу того, что 16 Гб оперативки на мемкэше, так я считаю что это мало, это в принципе мало, и почему не 64 Гб например, ведь это профильная работа этого сервера - держать в оперативке кэш.