Понимание поведения OPCache - PullRequest
1 голос
/ 22 апреля 2019

Даже если веб-сайт находится за CDF CloudFlare, мы решили использовать OPCache, чтобы уменьшить нагрузку на сервер, поскольку максимальная (пиковая) активность составляет ~ 400 активных пользователей в секунду (в большинстве случаев это 50-100 ед / с).).

Но большинство страниц имеют разные данные для каждого пользователя, например, обзор панели пользователя, большинство данных одинаковые, но для каждого пользователя требуется несколько разных номеров, которые должны быть актуальными.

Мои вопросы:

  1. Разумно ли использовать OPCache для такого веб-сайта?
  2. Как он будет обрабатывать страницы с уникальными запросами?это займет больше ОЗУ (кэширование нескольких страниц для каждого пользователя), чем работа без OPCache?
  3. Повлияет ли это на производительность на таких страницах, как регистрация / вход и т. д.?
  4. I read что все приложения PHP должны использовать OPCache, это правильно?

PS Сайт работает на PHP 7.3.4

Ответы [ 4 ]

5 голосов
/ 29 апреля 2019
  1. Да, это приведет к улучшению производительности
  2. Если объем используемой оперативной памяти увеличился, и вы обеспокоены этим, вы можете точно настроить потребление памяти с помощью opcache.memory_consumption
  3. Влиять на их значениебудет быстрее
  4. Да, на самом деле нет причин не использовать OPCache, кроме крайних случаев (например, когда исходный код вашего приложения изменяется с очень высокой скоростью или тестируется).

TLDR: в рабочем коде всегда должен быть включен OPCached.

4 голосов
/ 29 апреля 2019

OPcache кэширует только внутреннее представление кода операции PHP-скрипта, но не его вывод.Выполненные запросы или содержимое, отображаемое страницей, не влияет на поведение OPcache.

Это кэширование повысит производительность всех веб-страниц PHP.Как таковой, он всегда должен быть включен на производственных сайтах.

2 голосов
/ 04 мая 2019

Каждый PHP-скрипт компилируется во время выполнения, Чтобы преобразовать читаемый человеком код в код, понятный для машины, требуется время.

OpCache - это механизм кэширования байт-кода, он скомпилирует скрипт в скрипт байт-кода только один раз - так вы сэкономите время - тогда предварительно скомпилированный скрипт будет сохранен в памяти, что должно привести к повышению производительности в ваших PHP-приложениях.

Что я думаю, что вам не хватает, так это то, что opcache НЕ кеширует результат скрипта, а просто компилирует скрипт.

Обратите внимание, что этот метод не подходит, если сам скрипт php меняется для каждого пользователя. или, если он загружен из -let скажем, например, базы данных

0 голосов
/ 03 мая 2019

Как общее представление для этого подхода, кэширование Php, каким бы оно ни было, кеш APC или opcache, или же это удивительная стратегия, должно увеличить производительность php в целом на 50%. Как это работает следующим образом. Когда исполняется скрипт php, это включает три основных шага

1-синтаксический анализ сценария

2-компиляция сценария

3-output

Кэш APC или же выступать в качестве посредника при сохранении сценария php вскомпилированная форма, так что php будет запускаться непосредственно на этапе вывода, и это не повлияет на запросы, но увеличит его скорость в качестве запроса для MySQL или не только для оператора SELECT или чего-либо еще, но включает в себя выполнение расширений, таких как PDO, поэтому он станетбыстрее

Вы можете классифицировать расширение следующим образом

APC или Xcache для php 5

В новой версии php используйте opcache

Все они имеют одинаковый принципНекоторым разработчикам нравится APC, другим - opcache. В качестве примера X-cart популярная платформа для покупок использует xcache.

...