В каких случаях нужен OpCache и как его правильно настраивать?

  • 17 Ответов
  • 1455 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Пробовал найти в сети информацию на эту тему — ответов на свои вопросы так и не получил. Хотелось бы спросить опытных товарищей, в каких случаях нужен OpCache, эффективно ли его использовать вообще, и какие настройки лучше выставить для его эффективной работы.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг


*

Оффлайн ChaosHead

Он нужен теперь всегда, про APC, xcache и eaccelerator забудьте. По скорости он делает их все, ну и плюс нативное решение.
Работает хорошо из коробки, эффект увидите моментально.

Если очень(!) много оперативки и много сайтов, то можно увеличить в php.ini
Цитировать
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 512
opcache.interned_strings_buffer = 64

ChaosHead, спасибо.
А что по поводу времени кэширования? По умолчанию там вроде 90 секунд, через это время, если на сайт не заходят посетители, весь кэш очищается. Что будет, если я увеличу это значение до 15 минут, может ли это привести к каким-либо проблемам?
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

Обидно за тему: не заслужила она перемещение во "флудилку" :)
« Последнее редактирование: 15.03.2016, 23:37:26 от Филипп Сорокин »
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг


*

Оффлайн ChaosHead

ChaosHead, спасибо.
А что по поводу времени кэширования? По умолчанию там вроде 90 секунд, через это время, если на сайт не заходят посетители, весь кэш очищается. Что будет, если я увеличу это значение до 15 минут, может ли это привести к каким-либо проблемам?
На сколько я понимаю, раз это кэширование операционного кода php, то там идёт проверка не изменился ли php файл, а это время. Если выложить сайт в работу и изменить настройку, чтобы проверка изменился ли php файл и код не делалась, то можно ускорить работу этого кэширования чуть ли не в двое, но возникает проблема, что тогда нужно менять настройку перед обновлением Joomla или изменениями на сайте.
Похожий тип кэширования есть в nginx - кэшировать путь к файлам и держать самые часто запрашиваемые файлы в оперативке в течении заданного времени. Это тоже чертовски быстро, но нужно отключать перед изменениями на сайте, что не очень удобно, если не предусмотреть быстрый способ переключения этих настроек.
« Последнее редактирование: 16.03.2016, 02:25:20 от ChaosHead »

*

Оффлайн ChaosHead

Обидно за тему: не заслужила она перемещение во "флудилку" :)
Ну эта тема по настройке серверов. Информация не секретная, она доступна в мануалах по настройке этих серверных компонентов, но это больше для админов.

Но в случае с OpCache эта технология мне нравится тем, что она даёт отличный эффект, даже ничего не настраивая. Просто ваши страницы начинают открываться быстрее и негативных эффектов нет. Разве что оперативка нужна для кэша.
« Последнее редактирование: 16.03.2016, 02:23:35 от ChaosHead »

*

Оффлайн flyingspook

OpCache нужен практически везде где требуется кеширование, nginx  на фронте конечно лучше, но как ChaosHead написал есть не большие неудобства если проект растет и редактируется. APC еще рано списывать, eaccelerator сами разработчики списали.

*

Оффлайн ChaosHead

Из APC сейчас сделали APCu - это такая штука, которая теперь только кэширует файлы в оперативке. Там можно хранить кэш Joomla. Кэширование операционного кода php вырезали и теперь их можно использовать параллельно с OpCache.
Ну imho эта штука нужна если у вас медленные диски на сервере (не ssd) и тоже очень много свободной оперативки.

APC рекомендуют использовать с версиями PHP ниже 5.6, поэтому рано конечно списывать, т.к. многие ещё используют.


*

Оффлайн ChaosHead

Именно, я и пишу, что можно использовать параллельно! ;)

*

Оффлайн vitzer

Он нужен теперь всегда
На данный момент сайт (включено стандартное кэширование Joomla) по нагрузке и скорости полностью устраивает, просто хотел поэкспериментировать.
Попробовал включить opcache на VPS (4х2 ГГц, 2 Гб Оперативки), но прироста в скорости не заметил. Увеличилось время ответа сервера и незначительно увеличилось время загрузки страниц.
Если очень(!) много оперативки и много сайтов, то можно увеличить в php.ini
Поигрался с настройками. При таких:
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 512
opcache.interned_strings_buffer = 64
Субъективно скорость загрузки увеличилась, но ответ сервера по-прежнему был высок. Кроме того, стал ловить 500 Internal Server Error. 500-ка ушла при 4000, 256 и 64 соответственно. Но время ответа сервера и загрузки не впечатляли. Только оперативки стало потребляться больше.
В итоге, плюнул, и отключил opcache.
Прошу подсказать, что не так или железо фуфловое?
« Последнее редактирование: 15.01.2017, 21:50:34 от vitzer »


*

Оффлайн dmitry_stas

апну тему.

имеем: nginx + php-fpm7.1 + joomla3.7.2 . время ответа сервера с отключенным opcache примерно 180ms. при включении opcache со следующими настройками
Спойлер
[свернуть]
наблюдаю следующее: первый раз обращение к сайту - время ответа примерно 300ms. повторные - примерно 80ms. все на первый взгляд красиво, но как всегда есть но :) после примерно минуты бездействия, т.е. в течении 60 секунд никаких действий с сайтом не производим, все начинается с начала: первое обращение 300ms, потом опять 80. т.е. я так понимаю почему то сбрасывается кеш после минуты. какая может быть причина этому? никаких настроек по этому поводу не вижу, в статистике opcache тоже на первый взгляд все ровно: http://prntscr.com/fdc62t
никто не сталкивался?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Оффлайн ChaosHead

Параметр opcache.force_restart_timeout нужен, чтобы кешер автоматически перезапустился в случае проблем. Он как раз у вас 180

*

Оффлайн dmitry_stas

не, то в случае проблем, да. а тут другое было, уже разобрался. ручки у кого то кривенькие :) по логам нашел, что php-fpm рестартует каждую минуту. оказалось, что прописали неправильное имя службы в Мониторе служб в Исп Менеджере, и каждую минуту (время проверки живучести служб) был ресет службы. opcache само собой тоже сбрасывался.

P.S. кстати opcache.force_restart_timeout насколько я понимаю значение стоит уменьшить, да? 3 минуты на выявление проблем имхо как-то многовато...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Оффлайн ChaosHead

Не знаю, у меня по дефолту стоит, я его не менял :/