Цитата |
---|
Андрей написал: То есть даже если организовать через сокет, это будет медленнее чем файловый вариант? Не совсем понятно почему? |
Потому, что обращение к файлу посредством функции ядра ОС требует меньше ресурсов, чем обращение к сторонней службе, в которой к тому же будут произведены дополнительные вычисления.
Цитата |
---|
Андрей написал: Рекомендации Битрикса "В случае, если используется один сервер, то для улучшения производительности можно настроить работу с memcache через соке |
Почему это написали в битрикс - я не знаю, полагаю, что есть этому разумное объяснение.
Повторюсь, при наличии свободной памяти, ОС наиболее оптимально распределит ее, в том числе для файлового кеша в зависимости от потребностей всех запущенных процессов. Для memcached вы всегда указываете размер выделяемой памяти. Простой сценарий: в системе 16Гб памяти, при штатной нагрузке, для процессов веб-сервера и БД выделено 8Гб, 7,5Гб на файловый кеш, на сайт приходит масса ботов, т.е. нагрузка повышается - процессы веб-сервера и БД увеличивают потребление памяти, из файлового кеша в памяти вытесняются самые старые файлы - память высвобождается для процессов, что очевидно важнее чем кеш. В случае использования для кэширования memcaсhed, память в приведенном примере может попросту закончится, процессы будут вытеснятся в своп, если он есть или сработает OOM Killer, пользователи получат 504 или вообще не будут получать ответа.