Как оптимизировать работу PHP?

Все о скриптах

Модераторы: Art.i, vasya

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 9:59 pm

После установки в файл /etc/php5/conf.d/20-opcache.ini следует добавить следующую строку для загрузки модуля
Установил 7.0.5. Не образовалось никаких новых ini файлов в /etc/php5/conf.d/ Я сам должен создать там 20-opcache.ini и вписать туда?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 10:06 pm

Должно было образоваться /usr/lib/php5/20******/opcache.so,
а в /etc/php5/(apache2|cli)/conf.d самому symlink на /etc/php5/mods-available/opcache.ini
В opcache.ini одна строка zend_extension=opcache.so
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 10:18 pm

Код: выделить все
а в /etc/php5/(apache2|cli)/conf.d самому symlink на /etc/php5/mods-available/opcache.ini

/etc/php5/mods-available/opcache.ini тоже самому?

Почему именно в /etc/php5/(apache2|cli)/conf.d, а не в /etc/php5/conf.d? Вообще, для чего нужны apache2/conf.d и cli/conf.d и просто conf.d?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 10:25 pm

в conf.d просто хранится конфиг, который уже используется в
( php для apache | для php-cli консольного )
он одинаковый, но например для php-cli разовых скриптов opcache может и не нужен совсем и не надо его подключать.

>> /etc/php5/mods-available/opcache.ini тоже самому?
не помню, вроде должен был создаваться pecl. opcache.so появился?
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 10:45 pm

swg писал(а):для php-cli разовых скриптов opcache
Кстати, а сколько времени хранится кешированный байт код, если его не выполнять? Не нашел параметр, который за это отвечает.

swg писал(а):>> /etc/php5/mods-available/opcache.ini тоже самому?
не помню, вроде должен был создаваться pecl. opcache.so появился?
Появился
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 10:53 pm

Точно, развлекайтесь:
http://php.net/manual/ru/opcache.configuration.php
Не более столько opcache.max_accelerated_files файлов и не более стольки opcache.memory_consumption МБ памяти.

Значит ini файл сами напишите.
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 10:58 pm

swg писал(а):Точно, развлекайтесь:
http://php.net/manual/ru/opcache.configuration.php
Не более столько opcache.max_accelerated_files файлов и не более стольки opcache.memory_consumption МБ памяти.

Значит ini файл сами напишите.
Я же про время, а не про размеры интересуюсь.

Пусть
opcache.validate_timestamps=1
opcache.revalidate_freq=3
Если я выполнил скрипт и забыл о нем на день, сколько времени его кешированный байт код будет храниться в памяти? opcache сам его выкинет из памяти через 3 сек или как?

И как будет, если
opcache.validate_timestamps=1
opcache.revalidate_freq=0
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 11:01 pm

Начните читать. Эти параметры не повлияют на выкидывание скрипта из памяти. это только проверка, а не обновился ли скрипт, чтобы обновить байткод. Частота в авторежиме или при каждом запуске. Если скрипты на 100% статичны, можно отменить, еще ускорит работу, а при обновлении перезапускать. Пока есть память, так и будет хранится, если выполнялся - переходит "вверх", те, что "внизу", редковыполняемые, выкидываются. Грубо так.
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 11:10 pm

И что, если задать opcache.memory_consumption=128, то 128МБ оперативной памяти всегда будут заняты под хранение давно неиспользуемого хлама?

Как посмотреть список закешированных файлов и их размер в кеше, чтоб не выделять лишнюю память?

Попробую opcache_get_status
Последний раз редактировалось ijkl Пн апр 20, 2015 11:21 pm, всего редактировалось 1 раз.
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 11:17 pm

Да (если столько памяти сможет быть потрачено на ваши скрипты). Так именно в этом и смысл :-) Жертвуем памятью для производительности.
Если нет обращений opcache.force_restart_timeout, тогда всё рестартанёт.
Точно такой же вопрос можно и про mysql задать, но там это что-то никого не напрягает, что в памяти полно неиспользуемого "хлама".
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 11:24 pm

swg писал(а):Если нет обращений opcache.force_restart_timeout, тогда всё рестартанёт.
Я думал, это аварийная перезагрузка при возникновении проблем.
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 11:29 pm

Да, и для этого. Но там нет ни слова про "аварийную". Причина отсутствия обращений не важна.
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Пн апр 20, 2015 11:51 pm

Параметры opcache.* можно задавать как opcache.ini, так и в .htaccess?

Если вызываемый скрипт содержит много include, они считаются отдельными файлами?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Re: Как оптимизировать работу PHP?

Сообщение swg » Пн апр 20, 2015 11:55 pm

Не надейтесь :) там есть PHP_INI_SYSTEM
http://php.net/manual/ru/opcache.configuration.php (столбец "меняемо")
http://php.net/manual/ru/configuration. ... .modes.php (его расшифровка)

При дефолтных настройках и изменении файла в котором много include будут проверены на изменения все подключаемые файлы, если для них был создан байткод, иначе, пока не будет обращения. Т.е. if(false) { include ... } - обращения к include никогда не будет и этот файл не попадёт в кэш. Не так просто, хоть php и становится немного "компилируемым".
swg
флудит форум
 
Сообщений: 2386
Зарегистрирован: Сб окт 07, 2006 9:09 am
Откуда: NNov

Re: Как оптимизировать работу PHP?

Сообщение ijkl » Вт апр 21, 2015 12:10 am

иначе, пока не будет обращения.
Боюсь неправильно понять, поэтому уточню. Конкретнее: У меня практически все обращения обрабатывает один скрипт index.php, в котором уже подключаются разные модули. Если я изменю подключаемый файл, при дефолтных настройках кеш при обращении к index.php обновится?

Почему-то раньше казалось, что php как модуль Апача делает какое-то кеширование. За счет чего php как модуль Апача быстрее, чем как cgi?
ijkl
 
Сообщений: 215
Зарегистрирован: Чт окт 03, 2013 5:42 pm

Пред.След.

Вернуться в CGI, Perl, PHP

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1