Установка Memcached для увеличения скорости доступа к веб-сайту WordPress выполняется медленно и требует решения для оптимизации LCP.
Установите расширение Memcached. Оптимизация LCP LCP — это индикатор оценки веб-сайта, запущенный Google в последние годы. Два наиболее важных индикатора LCP (Largest Contentful Paint): один — LCP, а другой — CLS. Если вы оптимизируете LCP в течение 2 секунд, вы можете выполнять поиск. за это в гугле будет больше возможностей отображать сайт. Оптимизация LCP имеет много популярных плагинов кэширования в WordPress, вы можете установить плагины кэширования. Независимо от того, как вы оптимизируете кеш, вам все равно нужно сократить время отклика исходного сервера.Перед оптимизацией LCP вам нужно сначала настроить кеш сервера.
Конкретная ссылка на LCP:Оптимизировать рисование максимального содержимого с наибольшим содержанием Contentful Paint
Легенда о том, почему URL-адреса не считаются хорошими URL-адресами.
Инструмент кэширования на стороне сервера
Кэширование (или кэширование содержимого) — это широко используемый метод хранения копий данных во временных хранилищах (также называемых кэшами), позволяющий легко и быстро получить доступ к данным по сравнению с извлечением их из исходного хранилища. В зависимости от типа и назначения кеша данные, хранящиеся в кеше, могут включать файлы или фрагменты файлов (такие как файлы HTML, скрипты, изображения, документы и т. д.), операции или записи базы данных, вызовы API, записи DNS и т. д.
Существует много отличных инструментов кэширования с открытым исходным кодом для инструментов кэширования серверов Linux, таких как Memcached и Redis, Ниже в основном рассказывается, как использовать Memcached.
Memcached
Memcached — это бесплатная, простая, но мощная система кэширования объектов с распределенной памятью с открытым исходным кодом. Это хранилище ключей и значений в памяти, используемое для хранения небольших фрагментов данных, таких как результаты вызовов базы данных, вызовов API или рендеринга страницы. Он работает в Unix-подобных операционных системах, включая Linux и OS X, а также в Microsoft Окназапускать на.
Что такое кэш памяти Memcached
Бесплатная, с открытым исходным кодом, высокопроизводительная, распределенная система кэширования объектов в памяти, общего назначения по своей природе, но предназначенная для ускорения динамических веб-приложений за счет разгрузки баз данных.
Memcached — это хранилище ключей и значений в памяти для хранения произвольных небольших фрагментов данных (строк, объектов) из результатов вызовов базы данных, вызовов API или рендеринга страницы.
Memcached прост и мощен. Его простая конструкция способствует быстрому развертыванию, простоте разработки и решает многие проблемы, с которыми сталкиваются большие кэши данных. Его API доступен для большинства популярных языков.
Официальный сайт Memcached :http://memcached.org
Последняя стабильная версия: memcached-1.6.18.tar.gz (2023-1-10)
Установка Memcached
Debian/Ubuntu: apt-get install libevent-dev Redhat/Centos: dnf install libevent-devel
Загрузите исходный код, скомпилируйте и установите
wget http://memcached.org/latest tar -zxvf memcached-1.6.18.tar.gz cd memcached-1.6.18 ./configure && make && make test && sudo make install
Нужно запустить после установки
# проверить, установлен ли кэш памяти ls -al /usr/local/bin/mem* # запустить службу кэша памяти /usr/local/bin/memcached -d -m 200 -u www -p 11211 -c 256 -P /tmp/memcached .pid
Описание параметра Memcache:
- Опция -d запускает процесс демона,
- -m — объем памяти, выделенный для Memcache, единица измерения — МБ, здесь 10 МБ
- -u — пользователь, запускающий Memcache, здесь root
- -l — IP-адрес прослушивающего сервера.Если адресов несколько, я указал IP-адрес сервера 202.207.177.177.
- -p - установить порт, который Memcache слушает. Я установил здесь 11211, предпочтительно порт выше 1024.
- Параметр -c - это максимальное количество одновременных подключений, по умолчанию 1024, здесь я установил 256, устанавливайте в соответствии с нагрузкой вашего сервера.
- -P настроен на сохранение pid-файла Memcache, здесь я сохраняю его в /tmp/memcached.pid
Установить через репозиторий ПО
dnf установить libevent-devel memcached
После установки ставим загрузку на старт
# start systemctl start memcached # set boot start systemctl enable memcached # просмотреть текущий статус systemctl status memcached
Memcached изменить размер кеша
После завершения установки измените размер кеша memcached, значение по умолчанию — 64 МБ, и измените размер кеша на 1024 МБ.
Открыть /etc/sysconfig/memcached файл, измените CACHESIZE на:1024
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="1024" OPTIONS="-l 127.0.0.1,::1,контроллер"
После модификации,systemctl перезапустить memcached
перезапустить службу
ps -ef | grep memcached
Проверьте, эффективна ли конфигурация
После установки Memcached, если вы хотите, чтобы Memcached нормально работал на веб-сайте, вам также необходимо установить расширение Memcached в PHP.
Установите расширение Memcached.
Примечание: Перед установкой Memcached вам необходимо понять, что существует два типа расширений PHP: расширение Memcache и расширение Memcached.Расширение Memcached представляет собой обновленную версию расширения Memcache и поддерживает больше функций. Производительность лучше. Будьте осторожны, чтобы не установить его неправильно.
- memcache — версия библиотеки расширения pecl, поддерживает собственный php и относится к первому поколению кеша;
- memcached — это версия libmemcached, это кэш нового поколения, поэтому он более совершенен, рекомендуется использовать memcached.
Путь установки и расположение конфигурации PHP8.0, установленного через DNF, следующие:
- Пакет RPM устанавливает путь установки PHP: /usr/bin/php-config
- Файл конфигурации PHP: /etc/php.ini
Ниже приведен метод установки расширения Memcache и расширения Memcached.Если нет необходимости в установке расширения Memcache, вы можете напрямую перейти к методу установки расширения Memcached.
Исходная установкаКэш памятирасширять
Зависимости, необходимые для установки расширения Memcache.
dnf установить zlib zlib-devel
Шаг 1: Откройтеhttps://pecl.php.net/package/memcacheЗагрузите установочный пакет расширения Memcache для php8.
Примечание. Различные версии php имеют разные установочные пакеты расширения Memcache, поэтому найдите соответствующую версию для установки.
Пакет установки расширения Memcache для php8: https://pecl.php.net/get/memcache-8.0.tgz
Шаг 2: Войдите на сервер, загрузите и распакуйте установочный пакет расширения Memcache.
wget https://pecl.php.net/get/memcache-8.0.tgz tar -xvf memcache-8.0.tgz cd memcache-8.0
Шаг 3: Установите расширение Memcache
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
После успешной установки отобразится место установки Установка общих расширений: /usr/lib64/php/modules/
Шаг 4: Измените файл php.ini, включите расширение Memcache и добавьте следующее содержимое в конец файла php.ini.
расширение = кэш памяти
Проверьте правильность конфигурации PHP, затем перезапустите службу PHP.
php-fpm -t systemctl перезапустить php-fpm
Просмотрите файл зонда php, расширение запускается нормально
Исходная установкаMemcachedрасширять
Шаг 1: Откройтеhttps://pecl.php.net/package/memcachedскачать php8Расширение MemcachedИнсталляционный пакет.
Примечание. Версия php отличается,Расширение MemcachedУстановочный пакет тоже отличается, найдите соответствующую версию для установки.
Пакет установки расширения Memcached для php8:memcached-3.2.0.tgz
Шаг 2: Войдите на сервер, загрузите и распакуйте установочный пакет расширения Memcached.
wget https://pecl.php.net/get/memcached-3.2.0.tgz tar -xvf memcached-3.2.0.tgz cd memcached-3.2.0
memcached, для этого расширения требуется клиентская библиотека libmemcached, иначе произойдет следующая ошибка:
ошибка: для поддержки memcached требуется libmemcached.Используйте --with-libmemcached-dir= чтобы указать префикс, где расположены заголовки и библиотека libmemcached
dnf установить libmemcached libmemcached-devel remi-libmemcached-awesome
Примечание: Если на складе программного обеспечения нет libmemcached-devel, вы можете скачать и установить его
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/libmemcached-devel-1.0.18-15.el8.x86_64.rpm dnf --enablerepo=powertools установить libmemcached-devel
Шаг 3: Установите расширение Memcached
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
После успешной установки отобразится место установки Установка общих расширений: /usr/lib64/php/modules/
Шаг 4: Измените файл php.ini, включите расширение Memcached и добавьте следующее содержимое в конец файла php.ini.
расширение = memcached
Проверьте правильность конфигурации PHP, затем перезапустите службу PHP.
php-fpm -t systemctl перезапустить php-fpm
Просмотрите файл зонда php,Расширение MemcachedНормальный запуск
Вы можете использовать команду pecl для установки расширения memcached без загрузки исходного кода.
pecl установить memcached
Очки знаний:Если вы не можете использовать dnf для установки расширения php в хранилище программного обеспечения, вы можете использовать команду pecl для его установки в официальной библиотеке расширений php.
После установки расширения Memcached вам необходимо подключить WordPress к Memcached.Если вы не подключите серверную часть к WEB-стороне, кеш Memcached не будет работать.
Конфигурация WordPress Кэш Memcached
Добавьте следующее содержимое в wp-config.php.
global $memcached_servers; $memcached_servers = array( array( '127.0.0.1', // IP-адрес сервера Memcached 11211 // порт сервера Memcached) );
Если установлено многосайтовое кэширование, см. следующее:
глобальные $memcached_servers, $memcached_servers = массив (массив ('1.2.3.4', 11211), массив ('1.2.3.5', 11211));
memcached прослушивает IP и порт, вы можете проверить это с помощью следующей команды:
netstat -nutlp | кэш памяти grep
Настройка memcached с помощью плагинов кеширования в WordPress
В настоящее время W3TC может настроить кэш памяти memcached в интерфейсе подключаемого модуля без сложной конфигурации или модификации кода и т. д. W3TC имеет мощные функции и различные параметры конфигурации кэша, которые можно сопоставить сWP МетеорИспользование плагина.
Как контролировать, нормально ли работает Memcached
Нажмите, чтобы скачать файл мониторинга memcache.php
После загрузки файла memcache.php загрузите его в каталог WordPress на сервере, перед загрузкой измените пароль пользователя доступа в файле.
$VERSION='$Id$'; определить('ADMIN_USERNAME','Установить имя пользователя'); // Имя пользователя администратора определить('ADMIN_PASSWORD','Установить пароль'); // Пароль администратора определить('DATE_FORMAT','Y/ m /d H:i:s'); определить('GRAPH_SIZE',200); определить('MAX_ITEM_DUMP',50); $MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // добавить больше в виде массива // $MEMCACHE_SERVERS [] = 'mymemcache-server2:11211'; // Если это многосайтовый кеш памяти, установите здесь
После загрузки посетите URL-адрес файла memcache.php, и вы увидите рабочую страницу кеша памяти.
Конфигурация Zend OPcache
Используйте Opcache для оптимизации ускорения компиляции кода PHP. Повышение эффективности выполнения кода Мы можем использовать OPcache для повышения эффективности выполнения PHP-кода и уменьшения накладных расходов на загрузку и синтаксический анализ PHP-скриптов каждый раз. OPcache включен по умолчанию в php8.
Конфигурация PHP JIT, PHP 8 добавляет JIT-компилятор к ядру PHP, что может значительно повысить производительность. Более сильная обработка процессора, возможно, в будущем PHP также сможет правильно анализировать сложные протоколы.
Во-первых, JIT работает, только если включен opcache, что является значением по умолчанию для большинства установок PHP, но вы должны убедиться, что opcache.enable имеет значение 1 в вашем файле php.ini. Установите JIT через opcache.jit_buffer_size.
Просто настройте php.ini и добавьте в конце php.ini:
opcache.enable=1 opcache.jit_buffer_size=100M opcache.jit=1255 opcache.revalidate_freq=0 opcache.validate_timestamps=0 opcache.max_accelerated_files=7963 opcache.memory_consumption=192 opcache.interned_strings_buffer=16 opcache.interned_strings1buffers_buffer.=16_ opcache.interned_strings_buffer=16_opcache. opcache.interned_strings_buffer=16
opcache.revalidate_freq
Эта опция используется для установки времени истечения срока действия кеша (в секундах).Когда это время будет достигнуто, opcache проверит, изменился ли ваш код.Если PHP изменился, он перекомпилирует его, сгенерирует новый код операции и обновит кеш. Значение «0» означает, что каждый запрос будет проверять, обновлен ли ваш код PHP (это означает, что будет добавлено много системных вызовов stat, примечание перевода: системный вызов stat предназначен для чтения состояния файла, здесь в основном для получения время последней модификации, этот системный вызов A выполняет дисковый ввод-вывод, поэтому он должен потреблять некоторое время ЦП, и, конечно, сам системный вызов потребляет некоторое время ЦП). Вы можете установить его на 0 в среде разработки, но не беспокойтесь об этом в производственной среде, потому что ниже будет представлен другой вариант настройки.
opcache.validate_timestamps
Когда эта опция включена (установлена на 1), PHP будет проверять метку времени файла после того, как наступит время, установленное opcache.revalidate_freq.
Если этот параметр отключен (установлен в 0), opcache.revalidate_freq игнорируется и файлы PHP никогда не проверяются. Это означает, что если вы измените свой код, затем обновите его на сервере, а затем запросите соответствующую функцию обновленного кода в браузере, вы не увидите эффекта обновления, вам придется перезагрузить свой PHP (используйте kill -SIGUSR2 для принудительной перезагрузки).
Эта настройка немного болезненна, но я настоятельно рекомендую вам использовать ее в производственной среде, почему? Потому что при обновлении кода сервера, если кодов много, операция обновления несколько задерживается. Во время этой задержки будет неизбежно будет смесь старого кода и нового кода, и в это время должна быть неуверенность в обработке запросов пользователей.
opcache.max_accelerated_files
Этот параметр используется для управления максимальным количеством файлов PHP, которые могут быть кэшированы в памяти.Этот параметр должен быть достаточно большим, больше, чем сумма всех файлов PHP в вашем проекте. В моей кодовой базе около 6000 файлов PHP, поэтому я установил это значение в простое число 7963 (Аннотация: я не знаю, почему этот приятель установил это число, 7963 не является наименьшим простым числом больше 6000), вы можете запустить " find . -type f -print | grep php | wc -l", чтобы быстро подсчитать количество файлов PHP в вашей кодовой базе.
opcache.memory_consumption
Значение по умолчанию для этой опции — 64 МБ, я установил 192 МБ, потому что мой код большой. Вы можете получить общий объем памяти, используемый opcache, вызвав opcachegetstatus().Если это значение велико, вы можете увеличить эту опцию.
opcache.interned_strings_buffer
Это полезная опция, но кажется, что она совершенно недокументирована. PHP использует метод интернирования строк для повышения производительности. Например, если вы используете строку «foobar» 1000 раз в своем коде, PHP выделит неизменяемую область памяти для хранения этой строки только при первом использовании, а остальные 999 применений будут указывать непосредственно на эту память. область. Эта опция поднимает эту функцию на ступеньку выше.
По умолчанию эта неизменяемая область памяти будет существовать только в одном процессе php-fpm, если эта опция установлена, она будет совместно использоваться всеми процессами php-fpm. В относительно больших приложениях это может быть очень эффективным для экономии памяти и повышения производительности приложений.
Значение этой опции указывается в мегабайтах (мегабайтах).Если установлено значение 16, это означает 16 МБ. По умолчанию установлено значение 4 МБ, что является относительно небольшим значением.
opcache.fast_shutdown
Еще один полезный, но тоже недокументированный вариант. Буквально означает «разрешить более быстрое завершение работы». Его функция заключается в обеспечении более быстрого механизма вызова деструктора в коде в конце одного запроса, тем самым ускоряя скорость ответа PHP и скорость повторного использования ресурсов процесса PHP, чтобы приложение могло ответить на следующий запрос. быстрее . Установите его в 1, чтобы использовать этот механизм.